comparison autogenJB2.py @ 48:460d5b6c5d98 draft

planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit 3a43e9e0ffce0966101203102e769d1ced28618a-dirty
author fubar
date Wed, 06 Mar 2024 10:37:49 +0000
parents 4181e97c70a7
children ae12977c0e5e
comparison
equal deleted inserted replaced
47:3e53204c2419 48:460d5b6c5d98
88 "default_off": [], 88 "default_off": [],
89 }, 89 },
90 "style": {}, 90 "style": {},
91 "style_labels": {}, 91 "style_labels": {},
92 } 92 }
93 93 track_conf = {}
94 listtracks = trackList 94 listtracks = trackList
95 # foo.paf must have a foo_paf.fasta or fasta.gz to match 95 # foo.paf must have a foo_paf.fasta or fasta.gz to match
96 tnames = [x[2] for x in listtracks] 96 tnames = [x[2] for x in listtracks]
97 texts = [x[1] for x in listtracks] 97 texts = [x[1] for x in listtracks]
98 for i, track in enumerate(listtracks): 98 for i, track in enumerate(listtracks):
99 tpath, trext, trackname = track[:3] 99 tpath, trext, trackname = track[:3]
100 track_conf["dataset_id"] = trackname
100 if trext == "paf": 101 if trext == "paf":
101 refname = trackname + "_paf.fasta" 102 refname = trackname + "_paf.fasta"
102 refdat = [x[2] for x in listtracks if x[2] == refname] 103 refdat = [x[2] for x in listtracks if x[2] == refname]
103 if not refdat: 104 if not refdat:
104 jc.logging.warn( 105 jc.logging.warn(
105 "!! No reference file %s corresponding to paf file %s found. Not building - there must be a corresponding fasta for each paf" 106 "!! No reference file %s corresponding to paf file %s found. Not building - there must be a corresponding fasta for each paf"
106 % (refname, trackname) 107 % (refname, trackname)
107 ) 108 )
108 sys.exit(3) 109 sys.exit(3)
109 else: 110 else:
110 track_conf = { 111 track_conf.update({
111 "conf": { 112 "conf": {
112 "options": { 113 "options": {
113 "paf": {"genome": refdat, "genome_label": trackname} 114 "paf": {"genome": refdat, "genome_label": trackname}
114 } 115 }
115 } 116 }
116 } 117 })
117 elif trext == "bam": 118 elif trext == "bam":
118 ipath = track[3] 119 ipath = track[3]
119 if not os.path.exists(ipath): 120 if not os.path.exists(ipath):
120 ipath = os.path.realpath(os.path.join(jc.outdir, trackname + '.bai')) 121 ipath = os.path.realpath(os.path.join(jc.outdir, trackname + '.bai'))
121 cmd = ["samtools", "index", "-b", "-o", ipath, os.path.realpath(track[0])] 122 cmd = ["samtools", "index", "-b", "-o", ipath, os.path.realpath(track[0])]
122 sys.stdout.write('#### calling %s' % ' '.join(cmd)) 123 sys.stdout.write('#### calling %s' % ' '.join(cmd))
123 jc.subprocess_check_call(cmd) 124 jc.subprocess_check_call(cmd)
124 track_conf = {"conf": {"options": {"bam": {"bam_index": ipath}}}} 125 track_conf.update({"conf": {"options": {"bam": {"bam_index": ipath}}}})
125 elif trext == "cram": 126 elif trext == "cram":
126 ipath = track[3] 127 ipath = track[3]
127 if not os.path.exists(ipath): 128 if not os.path.exists(ipath):
128 jc.logging.info('calling %s' % ' '.join(cmd)) 129 jc.logging.info('calling %s' % ' '.join(cmd))
129 ipath = os.path.realpath(os.path.join('./', trackname + '.crai')) 130 ipath = os.path.realpath(os.path.join('./', trackname + '.crai'))
130 cmd = ["samtools", "index", "-c", "-o", ipath, os.path.realpath(track[0])] 131 cmd = ["samtools", "index", "-c", "-o", ipath, os.path.realpath(track[0])]
131 sys.stdout.write('#### calling %s' % ' '.join(cmd)) 132 sys.stdout.write('#### calling %s' % ' '.join(cmd))
132 jc.subprocess_check_call(cmd) 133 jc.subprocess_check_call(cmd)
133 track_conf = {"conf": {"options": {"cram": {"cram_index": ipath}}}} 134 track_conf.update({"conf": {"options": {"cram": {"cram_index": ipath}}}})
134 else: 135 track_conf["path"] = tpath
135 track_conf = {}
136 track_conf["format"] = trext 136 track_conf["format"] = trext
137 track_conf["name"] = trackname 137 track_conf["name"] = trackname
138 track_conf["label"] = trackname 138 track_conf["label"] = trackname
139 useu = tpath.startswith('http://') or tpath.startswith('https://') 139 useu = tpath.startswith('http://') or tpath.startswith('https://')
140 useuri = 'no' 140 useuri = 'no'
141 if useu: 141 if useu:
142 useuri = 'yes' 142 useuri = 'yes'
143 track_conf["trackfiles"] = [ 143 track_conf["trackfiles"] = [
144 (tpath, trext, useuri, trackname, {}), 144 (tpath, trext, useuri, trackname, {}),
145 ] 145 ]
146 track_conf["category"] = "Autogenerated" 146 track_conf["category"] = "Autogenerated"
147 keys = jc.process_annotations(track_conf) 147 keys = jc.process_annotations(track_conf)
148 148
149 if keys: 149 if keys:
150 for key in keys: 150 for key in keys: