Mercurial > repos > fubar > jbrowse2
comparison autogenJB2.py @ 57:94264fe60478 draft
planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit 4b5df41484f6bdf316edaf95b53c92d328ec1674-dirty
author | fubar |
---|---|
date | Thu, 21 Mar 2024 08:01:42 +0000 |
parents | bdfa6a7c4543 |
children | 81d535970196 |
comparison
equal
deleted
inserted
replaced
56:c0097a584a8a | 57:94264fe60478 |
---|---|
59 if len(listgenomes) > 0: | 59 if len(listgenomes) > 0: |
60 genome_paths = [x[0] for x in listgenomes] | 60 genome_paths = [x[0] for x in listgenomes] |
61 genome_names = [x[2] for x in listgenomes] | 61 genome_names = [x[2] for x in listgenomes] |
62 guseuri = [] | 62 guseuri = [] |
63 for x in genome_paths: | 63 for x in genome_paths: |
64 if x.startswith('http://') or x.startswith('https://'): | 64 if x.startswith("http://") or x.startswith("https://"): |
65 guseuri.append('yes') | 65 guseuri.append("yes") |
66 else: | 66 else: |
67 guseuri.append('no') | 67 guseuri.append("no") |
68 jc = jbC( | 68 jc = jbC( |
69 outdir=args.outdir, | 69 outdir=args.outdir, |
70 jbrowse2path=args.jbrowse2path, | 70 jbrowse2path=args.jbrowse2path, |
71 genomes=[ | 71 genomes=[ |
72 { | 72 { |
73 "path": x, | 73 "path": x, |
74 "label": genome_names[i], | 74 "label": genome_names[i], |
75 "useuri": guseuri[i], | 75 "useuri": guseuri[i], |
76 "meta": {"name": genome_names[i], | 76 "meta": { |
77 "dataset_dname": genome_names[i] | 77 "name": genome_names[i], |
78 } | 78 "dataset_dname": genome_names[i], |
79 }, | |
79 } | 80 } |
80 for i, x in enumerate(genome_paths) | 81 for i, x in enumerate(genome_paths) |
81 ], | 82 ], |
82 ) | 83 ) |
83 | 84 |
97 for i, track in enumerate(listtracks): | 98 for i, track in enumerate(listtracks): |
98 track_conf = {"trackfiles": [], "category": "autogenerated"} | 99 track_conf = {"trackfiles": [], "category": "autogenerated"} |
99 tpath, trext, trackname = track[:3] | 100 tpath, trext, trackname = track[:3] |
100 track_conf["dataset_id"] = trackname | 101 track_conf["dataset_id"] = trackname |
101 useuri = "no" | 102 useuri = "no" |
102 if tpath.startswith('http://') or tpath.startswith('https://'): | 103 if tpath.startswith("http://") or tpath.startswith("https://"): |
103 useuri = "yes" | 104 useuri = "yes" |
104 if trext == "paf": | 105 if trext == "paf": |
105 refname = trackname + "_paf.fasta" | 106 refname = trackname + "_paf.fasta" |
106 refdat = [x[2] for x in listtracks if x[2] == refname] | 107 refdat = [x[2] for x in listtracks if x[2] == refname] |
107 if not refdat: | 108 if not refdat: |
109 "!! No reference file %s corresponding to paf file %s found. Not building - there must be a corresponding fasta for each paf" | 110 "!! No reference file %s corresponding to paf file %s found. Not building - there must be a corresponding fasta for each paf" |
110 % (refname, trackname) | 111 % (refname, trackname) |
111 ) | 112 ) |
112 sys.exit(3) | 113 sys.exit(3) |
113 else: | 114 else: |
114 track_conf.update({ | 115 track_conf.update( |
115 "conf": { | 116 { |
116 "options": { | 117 "conf": { |
117 "paf": {"genome": refdat, "genome_label": trackname} | 118 "options": { |
119 "paf": { | |
120 "genome": refdat, | |
121 "genome_label": trackname, | |
122 } | |
123 } | |
118 } | 124 } |
119 } | 125 } |
120 }) | 126 ) |
121 elif trext == "bam": | 127 elif trext == "bam": |
122 ipath = track[3] | 128 ipath = track[3] |
123 if not os.path.exists(ipath): | 129 if not os.path.exists(ipath): |
124 ipath = os.path.realpath(os.path.join(jc.outdir, trackname + '.bai')) | 130 ipath = os.path.realpath( |
125 cmd = ["samtools", "index", "-b", "-o", ipath, os.path.realpath(track[0])] | 131 os.path.join(jc.outdir, trackname + ".bai") |
126 sys.stdout.write('#### calling %s' % ' '.join(cmd)) | 132 ) |
133 cmd = [ | |
134 "samtools", | |
135 "index", | |
136 "-b", | |
137 "-o", | |
138 ipath, | |
139 os.path.realpath(track[0]), | |
140 ] | |
141 sys.stdout.write("#### calling %s" % " ".join(cmd)) | |
127 jc.subprocess_check_call(cmd) | 142 jc.subprocess_check_call(cmd) |
128 track_conf.update({"conf": {"options": {"bam": {"bam_index": ipath}}}}) | 143 track_conf.update( |
144 {"conf": {"options": {"bam": {"bam_index": ipath}}}} | |
145 ) | |
129 elif trext == "cram": | 146 elif trext == "cram": |
130 ipath = track[3] | 147 ipath = track[3] |
131 if not os.path.exists(ipath): | 148 if not os.path.exists(ipath): |
132 ipath = os.path.realpath(os.path.join('./', trackname + '.crai')) | 149 ipath = os.path.realpath( |
133 cmd = ["samtools", "index", "-c", "-o", ipath, os.path.realpath(track[0])] | 150 os.path.join("./", trackname + ".crai") |
151 ) | |
152 cmd = [ | |
153 "samtools", | |
154 "index", | |
155 "-c", | |
156 "-o", | |
157 ipath, | |
158 os.path.realpath(track[0]), | |
159 ] | |
134 jc.subprocess_check_call(cmd) | 160 jc.subprocess_check_call(cmd) |
135 track_conf.update({"conf": {"options": {"cram": {"cram_index": ipath}}}}) | 161 track_conf.update( |
162 {"conf": {"options": {"cram": {"cram_index": ipath}}}} | |
163 ) | |
136 track_conf["path"] = tpath | 164 track_conf["path"] = tpath |
137 track_conf["format"] = trext | 165 track_conf["format"] = trext |
138 track_conf["name"] = trackname | 166 track_conf["name"] = trackname |
139 track_conf["label"] = trackname | 167 track_conf["label"] = trackname |
140 track_conf["trackfiles"].append((tpath, trext, useuri, trackname, {})) | 168 track_conf["trackfiles"].append((tpath, trext, useuri, trackname, {})) |