forked from goeckslab/hub-archive-creator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBedSimpleRepeats.py
70 lines (56 loc) · 2.68 KB
/
BedSimpleRepeats.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/python
import os
import tempfile
from Datatype import Datatype
from Track import Track
from TrackDb import TrackDb
from util import subtools
class BedSimpleRepeats( Datatype ):
def __init__(self, input_bed_simple_repeats_false_path, data_bed_simple_repeats):
super(BedSimpleRepeats, self).__init__()
self.input_bed_simple_repeats_false_path = input_bed_simple_repeats_false_path
self.name_bed_simple_repeats = data_bed_simple_repeats["name"]
self.priority = data_bed_simple_repeats["order_index"]
self.track_color = data_bed_simple_repeats["track_color"]
# TODO: Think about how to avoid repetition of the group_name everywhere
self.group_name = data_bed_simple_repeats["group_name"]
sortedBedFile = tempfile.NamedTemporaryFile(suffix=".sortedBed")
# Sort processing
subtools.sort(self.input_bed_simple_repeats_false_path, sortedBedFile.name)
# bedToBigBed processing
# TODO: Change the name of the bb, to tool + genome + .bb
trackName = "".join( ( self.name_bed_simple_repeats, '.bb' ) )
myBigBedFilePath = os.path.join(self.myTrackFolderPath, trackName)
auto_sql_option = os.path.join(self.tool_directory, 'trf_simpleRepeat.as')
with open(myBigBedFilePath, 'w') as bigBedFile:
subtools.bedToBigBed(sortedBedFile.name,
self.chromSizesFile.name,
bigBedFile.name,
typeOption='bed4+12',
autoSql=auto_sql_option)
# Create the Track Object
self.createTrack(file_path=trackName,
track_name=trackName,
long_label=self.name_bed_simple_repeats, track_type='bigBed 4 +', visibility='dense',
priority=self.priority,
track_file=myBigBedFilePath,
track_color=self.track_color,
group_name=self.group_name)
# dataURL = "tracks/%s" % trackName
#
# trackDb = TrackDb(
# trackName=trackName,
# longLabel=self.name_bed_simple_repeats,
# shortLabel=self.getShortName( self.name_bed_simple_repeats ),
# trackDataURL=dataURL,
# trackType='bigBed 4 +',
# visibility='dense',
# priority=self.priority,
# )
#
# self.track = Track(
# trackFile=myBigBedFilePath,
# trackDb=trackDb,
# )
print("- Bed simple repeats %s created" % self.name_bed_simple_repeats)
#print("- %s created in %s" % (trackName, myBigBedFilePath))