Mercurial > repos > rmarenco > hubarchivecreator
comparison Datatype.py @ 11:d05236b15f81 draft
planemo upload for repository https://github.com/goeckslab/hub-archive-creator commit 3760d0c8353b924ecf994131a5c2eb381aa81fb2
author | rmarenco |
---|---|
date | Wed, 27 Jul 2016 10:10:49 -0400 |
parents | acc233161f50 |
children | 25809f699cb3 |
comparison
equal
deleted
inserted
replaced
10:acc233161f50 | 11:d05236b15f81 |
---|---|
7 | 7 |
8 import os | 8 import os |
9 import tempfile | 9 import tempfile |
10 | 10 |
11 from util import subtools | 11 from util import subtools |
12 from Track import Track | |
13 from TrackDb import TrackDb | |
12 | 14 |
13 | 15 |
14 class Datatype(object): | 16 class Datatype(object): |
15 | 17 |
16 twoBitFile = None | 18 twoBitFile = None |
23 myTrackFolderPath = None | 25 myTrackFolderPath = None |
24 | 26 |
25 twoBitFile = None | 27 twoBitFile = None |
26 chromSizesFile = None | 28 chromSizesFile = None |
27 | 29 |
30 track = None | |
31 | |
28 def __init__(self): | 32 def __init__(self): |
29 | 33 |
30 not_init_message = "The {0} is not initialized." \ | 34 not_init_message = "The {0} is not initialized." \ |
31 "Did you use pre_init static method first?" | 35 "Did you use pre_init static method first?" |
32 if Datatype.input_fasta_file is None: | 36 if Datatype.input_fasta_file is None: |
33 raise TypeError(not_init_message.format('reference genome')) | 37 raise TypeError(not_init_message.format('reference genome')) |
34 if Datatype.extra_files_path is None: | 38 if Datatype.extra_files_path is None: |
35 raise TypeError(not_init_message.format('track Hub path')) | 39 raise TypeError(not_init_message.format('track Hub path')) |
36 if Datatype.tool_directory is None: | 40 if Datatype.tool_directory is None: |
37 raise TypeError(not_init_message.format('tool directory')) | 41 raise TypeError(not_init_message.format('tool directory')) |
42 | |
38 | 43 |
39 | 44 |
40 @staticmethod | 45 @staticmethod |
41 def pre_init(reference_genome, two_bit_path, chrom_sizes_file, | 46 def pre_init(reference_genome, two_bit_path, chrom_sizes_file, |
42 extra_files_path, tool_directory, specie_folder, tracks_folder): | 47 extra_files_path, tool_directory, specie_folder, tracks_folder): |
64 def getShortName( self, name_to_shortify ): | 69 def getShortName( self, name_to_shortify ): |
65 # Slice to get from Long label the short label | 70 # Slice to get from Long label the short label |
66 short_label_slice = slice(0, 15) | 71 short_label_slice = slice(0, 15) |
67 | 72 |
68 return name_to_shortify[short_label_slice] | 73 return name_to_shortify[short_label_slice] |
74 | |
75 # TODO: Better handle parameters, use heritance mecanism | |
76 # TODO: Use default parameters for some, like visibility | |
77 def createTrack(self, | |
78 file_path=None, | |
79 track_name=None, long_label=None, thick_draw_item='off', | |
80 short_label=None, track_type=None, visibility=None, priority=None, | |
81 track_file=None): | |
82 | |
83 # TODO: Remove the hardcoded "tracks" by the value used as variable from myTrackFolderPath | |
84 data_url = "tracks/%s" % file_path | |
85 | |
86 if not short_label: | |
87 short_label = self.getShortName(long_label) | |
88 | |
89 # Replace '_' by ' ', to invert the sanitization mecanism | |
90 # TODO: Find a better way to manage the sanitization of file path | |
91 long_label = long_label.replace("_", " ") | |
92 short_label = short_label.replace("_", " ") | |
93 | |
94 track_db = TrackDb( | |
95 trackName=track_name, | |
96 longLabel=long_label, | |
97 shortLabel=short_label, | |
98 trackDataURL=data_url, | |
99 trackType=track_type, | |
100 visibility=visibility, | |
101 thickDrawItem=thick_draw_item, | |
102 priority=priority, | |
103 ) | |
104 | |
105 # Return the Bam Track Object | |
106 self.track = Track( | |
107 trackFile=track_file, | |
108 trackDb=track_db, | |
109 ) |