Mercurial > repos > jjohnson > mothur_toolsuite
comparison mothur/tools/mothur/mothur_wrapper.py @ 27:49058b1f8d3f
Update to mothur version 1.27 and add tool_dependencies.xml to automatically install mothur
author | Jim Johnson <jj@umn.edu> |
---|---|
date | Tue, 04 Dec 2012 11:05:19 -0600 |
parents | 5c77423823cb |
children | 7238483c96fa |
comparison
equal
deleted
inserted
replaced
26:5c77423823cb | 27:49058b1f8d3f |
---|---|
2 | 2 |
3 """ | 3 """ |
4 http://www.mothur.org/ | 4 http://www.mothur.org/ |
5 | 5 |
6 Supports mothur version | 6 Supports mothur version |
7 mothur v.1.24.0 | 7 mothur v.1.27.0 |
8 | 8 |
9 Class encapsulating Mothur galaxy tool. | 9 Class encapsulating Mothur galaxy tool. |
10 Expect each invocation to include: | 10 Expect each invocation to include: |
11 Here is an example call to this script with an explanation before each param : | 11 Here is an example call to this script with an explanation before each param : |
12 mothur_wrapper.py | 12 mothur_wrapper.py |
193 cmd_dict['classify.otu'] = dict({'required' : ['list','taxonomy'],'optional' : ['name','cutoff','label','group','probs','basis','reftaxonomy']}) | 193 cmd_dict['classify.otu'] = dict({'required' : ['list','taxonomy'],'optional' : ['name','cutoff','label','group','probs','basis','reftaxonomy']}) |
194 cmd_dict['classify.seqs'] = dict({'required' : ['fasta','reference','taxonomy'],'optional' : ['name','search','ksize','method','match','mismatch','gapopen','gapextend','numwanted','probs','save','processors']}) | 194 cmd_dict['classify.seqs'] = dict({'required' : ['fasta','reference','taxonomy'],'optional' : ['name','search','ksize','method','match','mismatch','gapopen','gapextend','numwanted','probs','save','processors']}) |
195 cmd_dict['classify.tree'] = dict({'required' : ['taxonomy','tree'],'optional' : ['name','group','cutoff']}) | 195 cmd_dict['classify.tree'] = dict({'required' : ['taxonomy','tree'],'optional' : ['name','group','cutoff']}) |
196 #clear.memory ## not needed in galaxy framework | 196 #clear.memory ## not needed in galaxy framework |
197 cmd_dict['clearcut'] = dict({'required' : [['phylip','fasta']],'optional' : ['seed','norandom','shuffle','neighbor','expblen','expdist','ntrees','matrixout','kimura','jukes','protein','DNA']}) | 197 cmd_dict['clearcut'] = dict({'required' : [['phylip','fasta']],'optional' : ['seed','norandom','shuffle','neighbor','expblen','expdist','ntrees','matrixout','kimura','jukes','protein','DNA']}) |
198 cmd_dict['cluster'] = dict({'required' : [['phylip','column']] , 'optional' : ['name','method','cutoff','hard','precision','sim','showabund','timing']}) | 198 cmd_dict['cluster'] = dict({'required' : [['phylip','column']] , 'optional' : ['name','count','method','cutoff','hard','precision','sim','showabund','timing']}) |
199 cmd_dict['cluster.classic'] = dict({'required' : ['phylip'] , 'optional' : ['name','method','cutoff','hard','sim','precision']}) | 199 cmd_dict['cluster.classic'] = dict({'required' : ['phylip'] , 'optional' : ['name','count','method','cutoff','hard','sim','precision']}) |
200 cmd_dict['cluster.fragments'] = dict({'required' : ['fasta'] , 'optional' : ['name','diffs','percent']}) | 200 cmd_dict['cluster.fragments'] = dict({'required' : ['fasta'] , 'optional' : ['name','diffs','percent']}) |
201 cmd_dict['cluster.split'] = dict({'required' : [['fasta','phylip','column']] , 'optional' : ['name','method','splitmethod','taxonomy','taxlevel','showabund','cutoff','hard','large','precision','timing','processors']}) | 201 cmd_dict['cluster.split'] = dict({'required' : [['fasta','phylip','column']] , 'optional' : ['name','count','method','splitmethod','taxonomy','taxlevel','showabund','cutoff','hard','large','precision','classic','timing','processors']}) |
202 cmd_dict['collect.shared'] = dict({'required' : ['shared'], 'optional' : ['calc','label','freq','groups','all']}) | 202 cmd_dict['collect.shared'] = dict({'required' : ['shared'], 'optional' : ['calc','label','freq','groups','all']}) |
203 cmd_dict['collect.single'] = dict({'required' : [['list', 'sabund', 'rabund', 'shared']], 'optional' : ['calc','abund','size','label','freq']}) | 203 cmd_dict['collect.single'] = dict({'required' : [['list', 'sabund', 'rabund', 'shared']], 'optional' : ['calc','abund','size','label','freq']}) |
204 cmd_dict['consensus.seqs'] = dict({'required' : ['fasta'], 'optional' : ['list','name','label','cutoff']}) | 204 cmd_dict['consensus.seqs'] = dict({'required' : ['fasta'], 'optional' : ['list','name','label','cutoff']}) |
205 | 205 |
206 cmd_dict['cooccurrence'] = dict({'required' : ['shared'], 'optional' : ['iters','metric','matrixmodel','groups','label']}) | 206 cmd_dict['cooccurrence'] = dict({'required' : ['shared'], 'optional' : ['iters','metric','matrixmodel','groups','label']}) |
207 | 207 |
208 cmd_dict['corr.axes'] = dict({'required' : [['shared','relabund','metadata'],'axes'], 'optional' : ['label','groups','method','numaxes']}) | 208 cmd_dict['corr.axes'] = dict({'required' : [['shared','relabund','metadata'],'axes'], 'optional' : ['label','groups','method','numaxes']}) |
209 cmd_dict['count.groups'] = dict({'required' : ['group','shared'], 'optional' : ['accnos','groups']}) | 209 cmd_dict['count.groups'] = dict({'required' : [['group','shared','count']], 'optional' : ['accnos','groups']}) |
210 cmd_dict['count.seqs'] = dict({'required' : ['name'], 'optional' : ['group','groups']}) | 210 cmd_dict['count.seqs'] = dict({'required' : ['name'], 'optional' : ['group','groups','large']}) |
211 | 211 |
212 cmd_dict['create.database'] = dict({'required' : ['list, repfasta','repname','contaxonomy'], 'optional' : ['group','label']}) | 212 cmd_dict['create.database'] = dict({'required' : [['list','shared'],'repfasta','repname','contaxonomy'], 'optional' : ['group','label']}) |
213 | 213 |
214 cmd_dict['degap.seqs'] = dict({'required' : ['fasta']}) | 214 cmd_dict['degap.seqs'] = dict({'required' : ['fasta']}) |
215 cmd_dict['deunique.seqs'] = dict({'required' : ['fasta','name'], 'optional' : []}) | 215 cmd_dict['deunique.seqs'] = dict({'required' : ['fasta','name'], 'optional' : []}) |
216 cmd_dict['deunique.tree'] = dict({'required' : ['tree','name'], 'optional' : []}) | 216 cmd_dict['deunique.tree'] = dict({'required' : ['tree','name'], 'optional' : []}) |
217 cmd_dict['dist.seqs'] = dict({'required' : ['fasta'], 'optional' : ['calc','countends','output','cutoff','oldfasta','column','processors']}) | 217 cmd_dict['dist.seqs'] = dict({'required' : ['fasta'], 'optional' : ['calc','countends','output','cutoff','oldfasta','column','processors']}) |
236 cmd_dict['indicator'] = dict({'required' : [['tree','design'],['shared','relabund']], 'optional' : ['groups','label','processors']}) | 236 cmd_dict['indicator'] = dict({'required' : [['tree','design'],['shared','relabund']], 'optional' : ['groups','label','processors']}) |
237 cmd_dict['libshuff'] = dict({'required' : ['phylip','group'],'optional' : ['groups','iters','form','sim','step','cutoff']}) | 237 cmd_dict['libshuff'] = dict({'required' : ['phylip','group'],'optional' : ['groups','iters','form','sim','step','cutoff']}) |
238 cmd_dict['list.seqs'] = dict({'required' : [['fasta','name','group','list','alignreport','taxonomy']]}) | 238 cmd_dict['list.seqs'] = dict({'required' : [['fasta','name','group','list','alignreport','taxonomy']]}) |
239 | 239 |
240 cmd_dict['make.biom'] = dict({'required' : ['shared'] , 'optional' : ['contaxonomy','matrixtype','groups','label']}) | 240 cmd_dict['make.biom'] = dict({'required' : ['shared'] , 'optional' : ['contaxonomy','matrixtype','groups','label']}) |
241 cmd_dict['make.contigs'] = dict({'required' : ['ffastq','rfastq',], 'optional' : ['align','match','mismatch','gapopen','gapextend','threshold','oligos','bdiffs','pdiffs','tdiffs','processors']}) | |
241 | 242 |
242 cmd_dict['make.fastq'] = dict({'required' : ['fasta','qfile'] , 'optional' : []}) | 243 cmd_dict['make.fastq'] = dict({'required' : ['fasta','qfile'] , 'optional' : []}) |
243 cmd_dict['make.group'] = dict({'required' : ['fasta','groups'], 'optional' : []}) | 244 cmd_dict['make.group'] = dict({'required' : ['fasta','groups'], 'optional' : []}) |
244 cmd_dict['make.shared'] = dict({'required' : [['list','group','biom']], 'optional' : ['label','groups']}) | 245 cmd_dict['make.shared'] = dict({'required' : [['list','group','biom']], 'optional' : ['label','groups']}) |
245 cmd_dict['mantel'] = dict({'required' : ['phylip','phylip2'] , 'optional' : ['method','iters']}) | 246 cmd_dict['mantel'] = dict({'required' : ['phylip','phylip2'] , 'optional' : ['method','iters']}) |
246 cmd_dict['merge.files'] = dict({'required' : ['input','output']}) | 247 cmd_dict['merge.files'] = dict({'required' : ['input','output']}) |
247 cmd_dict['merge.groups'] = dict({'required' : [['shared','group'],'design'], 'optional' : ['groups', 'label']}) | 248 cmd_dict['merge.groups'] = dict({'required' : [['shared','group'],'design'], 'optional' : ['groups', 'label']}) |
248 cmd_dict['metastats'] = dict({'required' : ['shared','design'], 'optional' : ['groups', 'label','iters','threshold','sets','processors']}) | 249 cmd_dict['metastats'] = dict({'required' : ['shared','design'], 'optional' : ['groups', 'label','iters','threshold','sets','processors']}) |
249 cmd_dict['nmds'] = dict({'required' : ['phylip'], 'optional' : ['axes','mindim','maxdim','iters','maxiters','epsilon']}) | 250 cmd_dict['nmds'] = dict({'required' : ['phylip'], 'optional' : ['axes','mindim','maxdim','iters','maxiters','epsilon']}) |
250 cmd_dict['normalize.shared'] = dict({'required' : [['shared','relabund']], 'optional' : ['label','method','norm','groups','makerelabund']}) | 251 cmd_dict['normalize.shared'] = dict({'required' : [['shared','relabund']], 'optional' : ['label','method','norm','groups','makerelabund']}) |
251 cmd_dict['otu.association'] = dict({'required' : [['shared','relabund']], 'optional' : ['groups', 'label','method']}) | 252 cmd_dict['otu.association'] = dict({'required' : [['shared','relabund']], 'optional' : ['groups', 'label','method','metadata']}) |
252 cmd_dict['otu.hierarchy'] = dict({'required' : ['list','label'], 'optional' : ['output']}) | 253 cmd_dict['otu.hierarchy'] = dict({'required' : ['list','label'], 'optional' : ['output']}) |
253 cmd_dict['pairwise.seqs'] = dict({'required' : ['fasta'], 'optional' : ['align','calc','countends','output','cutoff','match','mismatch','gapopen','gapextend','processors']}) | 254 cmd_dict['pairwise.seqs'] = dict({'required' : ['fasta'], 'optional' : ['align','calc','countends','output','cutoff','match','mismatch','gapopen','gapextend','processors']}) |
254 cmd_dict['parse.list'] = dict({'required' : ['list','group'], 'optional' : ['label']}) | 255 cmd_dict['parse.list'] = dict({'required' : ['list','group'], 'optional' : ['label']}) |
255 cmd_dict['parsimony'] = dict({'required' : ['tree'], 'optional' : ['group','groups','name','iters','random','processors']}) | 256 cmd_dict['parsimony'] = dict({'required' : ['tree'], 'optional' : ['group','groups','name','iters','random','processors']}) |
256 cmd_dict['pca'] = dict({'required' : [['shared','relabund']], 'optional' : ['label','groups','metric']}) | 257 cmd_dict['pca'] = dict({'required' : [['shared','relabund']], 'optional' : ['label','groups','metric']}) |
259 cmd_dict['pcr.seqs'] = dict({'required' : ['fasta'], 'optional' : ['oligos','name','group','taxonomy','ecoli','start','end','nomatch','keepprimer','keepdots','processors']}) | 260 cmd_dict['pcr.seqs'] = dict({'required' : ['fasta'], 'optional' : ['oligos','name','group','taxonomy','ecoli','start','end','nomatch','keepprimer','keepdots','processors']}) |
260 | 261 |
261 cmd_dict['phylo.diversity'] = dict({'required' : ['tree'],'optional' : ['group','name','groups','iters','freq','scale','rarefy','collect','summary','processors']}) | 262 cmd_dict['phylo.diversity'] = dict({'required' : ['tree'],'optional' : ['group','name','groups','iters','freq','scale','rarefy','collect','summary','processors']}) |
262 cmd_dict['phylotype'] = dict({'required' : ['taxonomy'],'optional' : ['name','cutoff','label']}) | 263 cmd_dict['phylotype'] = dict({'required' : ['taxonomy'],'optional' : ['name','cutoff','label']}) |
263 cmd_dict['pre.cluster'] = dict({'required' : ['fasta'], 'optional' : ['name','diffs','group','processors']}) | 264 cmd_dict['pre.cluster'] = dict({'required' : ['fasta'], 'optional' : ['name','diffs','group','processors']}) |
264 cmd_dict['rarefaction.shared'] = dict({'required' : ['shared'], 'optional' : ['calc','label','iters','groups','jumble']}) | 265 cmd_dict['rarefaction.shared'] = dict({'required' : ['shared'], 'optional' : ['calc','label','iters','groups','jumble','design','sets','groupmode']}) |
265 cmd_dict['rarefaction.single'] = dict({'required' : [['list', 'sabund', 'rabund', 'shared']], 'optional' : ['calc','abund','iters','label','freq','processors']}) | 266 cmd_dict['rarefaction.single'] = dict({'required' : [['list', 'sabund', 'rabund', 'shared']], 'optional' : ['calc','abund','iters','label','freq','processors']}) |
266 cmd_dict['remove.groups'] = dict({'required' : ['group'], 'optional' : ['groups','accnos','fasta','name','list','shared','taxonomy','design']}) | 267 cmd_dict['remove.groups'] = dict({'required' : ['group'], 'optional' : ['groups','accnos','fasta','name','list','shared','taxonomy','design']}) |
267 cmd_dict['remove.lineage'] = dict({'required' : ['taxonomy','taxon'],'optional' : ['fasta','name','group','list','alignreport','dups']}) | 268 cmd_dict['remove.lineage'] = dict({'required' : ['taxonomy','taxon'],'optional' : ['fasta','name','group','list','alignreport','dups']}) |
268 cmd_dict['remove.otus'] = dict({'required' : ['group','list','label'], 'optional' : ['groups','accnos']}) | 269 cmd_dict['remove.otus'] = dict({'required' : ['group','list','label'], 'optional' : ['groups','accnos']}) |
269 cmd_dict['remove.rare'] = dict({'required' : [['list','sabund','rabund','shared'],'nseqs'], 'optional' : ['group','groups','label','bygroup']}) | 270 cmd_dict['remove.rare'] = dict({'required' : [['list','sabund','rabund','shared'],'nseqs'], 'optional' : ['group','groups','label','bygroup']}) |
271 cmd_dict['reverse.seqs'] = dict({'required' : ['fasta']}) | 272 cmd_dict['reverse.seqs'] = dict({'required' : ['fasta']}) |
272 cmd_dict['screen.seqs'] = dict({'required' : ['fasta'], 'optional' : ['start','end','maxambig','maxhomop','minlength','maxlength','criteria','optimize','name','group','alignreport','taxonomy','processors']}) | 273 cmd_dict['screen.seqs'] = dict({'required' : ['fasta'], 'optional' : ['start','end','maxambig','maxhomop','minlength','maxlength','criteria','optimize','name','group','alignreport','taxonomy','processors']}) |
273 cmd_dict['sens.spec'] = dict({'required' : ['list',['column','phylip']] , 'optional' : ['label','cutoff','hard','precision']}) | 274 cmd_dict['sens.spec'] = dict({'required' : ['list',['column','phylip']] , 'optional' : ['label','cutoff','hard','precision']}) |
274 cmd_dict['seq.error'] = dict({'required' : ['fasta','reference'] , 'optional' : ['name','qfile','report','ignorechimeras','threshold','processors']}) | 275 cmd_dict['seq.error'] = dict({'required' : ['fasta','reference'] , 'optional' : ['name','qfile','report','ignorechimeras','threshold','processors']}) |
275 cmd_dict['sffinfo'] = dict({'required' : [['sff','sfftxt']], 'optional' : ['fasta','qfile','trim','sfftxt','flow','accnos']}) | 276 cmd_dict['sffinfo'] = dict({'required' : [['sff','sfftxt']], 'optional' : ['fasta','qfile','trim','sfftxt','flow','accnos']}) |
276 cmd_dict['shhh.flows'] = dict({'required' : [['flow','files']], 'optional' : ['lookup','maxiter','mindelta','cutoff','sigma','order','processors']}) | 277 cmd_dict['shhh.flows'] = dict({'required' : [['flow','files']], 'optional' : ['lookup','maxiter','mindelta','cutoff','sigma','order','large','processors']}) |
277 cmd_dict['shhh.seqs'] = dict({'required' : [['fasta','files']], 'optional' : ['group','sigma','processors']}) | 278 cmd_dict['shhh.seqs'] = dict({'required' : [['fasta','files']], 'optional' : ['group','sigma','processors']}) |
278 cmd_dict['split.abund'] = dict({'required' : ['fasta',['name','list']], 'optional' : ['cutoff','group','groups','label','accnos']}) | 279 cmd_dict['split.abund'] = dict({'required' : ['fasta',['name','list']], 'optional' : ['cutoff','group','groups','label','accnos']}) |
279 cmd_dict['split.groups'] = dict({'required' : ['fasta','group'], 'optional' : ['name','groups']}) | 280 cmd_dict['split.groups'] = dict({'required' : ['fasta','group'], 'optional' : ['name','groups']}) |
280 cmd_dict['sort.seqs'] = dict({'required' : [['fasta','qfile','name','group','flow','taxonomy']], 'optional' : ['accnos','large']}) | 281 cmd_dict['sort.seqs'] = dict({'required' : [['fasta','qfile','name','group','flow','taxonomy']], 'optional' : ['accnos','large']}) |
281 cmd_dict['sub.sample'] = dict({'required' : [['fasta','list','sabund','rabund','shared']], 'optional' : ['name','group','groups','label','size','persample']}) | 282 cmd_dict['sub.sample'] = dict({'required' : [['fasta','list','sabund','rabund','shared']], 'optional' : ['name','group','groups','label','size','persample']}) |
329 parser.add_option( '--READ_label', dest='READ_label', help='' ) | 330 parser.add_option( '--READ_label', dest='READ_label', help='' ) |
330 # Parameter specified in mothur | 331 # Parameter specified in mothur |
331 parser.add_option( '--numbases', dest='numbases', type="int", help='Number of base to allow' ) | 332 parser.add_option( '--numbases', dest='numbases', type="int", help='Number of base to allow' ) |
332 parser.add_option( '--fasta', dest='fasta', help='fasta file paths' ) | 333 parser.add_option( '--fasta', dest='fasta', help='fasta file paths' ) |
333 parser.add_option( '--fastq', dest='fastq', help='fastq file paths' ) | 334 parser.add_option( '--fastq', dest='fastq', help='fastq file paths' ) |
335 parser.add_option( '--ffastq', dest='ffastq', help='forward fastq file' ) | |
336 parser.add_option( '--rfastq', dest='rfastq', help='reverse fastq file' ) | |
334 parser.add_option( '--qfile', dest='qfile', help='Sequence read quality file (454 platform)' ) | 337 parser.add_option( '--qfile', dest='qfile', help='Sequence read quality file (454 platform)' ) |
335 parser.add_option( '--repfasta', dest='repfasta', help='fasta file paths' ) | 338 parser.add_option( '--repfasta', dest='repfasta', help='fasta file paths' ) |
336 parser.add_option( '--qaverage', dest='qaverage', type="int", help='Remove sequences that have an average quality below the value' ) | 339 parser.add_option( '--qaverage', dest='qaverage', type="int", help='Remove sequences that have an average quality below the value' ) |
337 parser.add_option( '--qthreshold', dest='qthreshold', type="int", help='If at any point a base call in a sequence has a quality score below the value provided to the option, the sequence is terminated' ) | 340 parser.add_option( '--qthreshold', dest='qthreshold', type="int", help='If at any point a base call in a sequence has a quality score below the value provided to the option, the sequence is terminated' ) |
338 parser.add_option( '--qwindowaverage', dest='qwindowaverage', type="int", help='Remove sequences that have a window average quality below the value' ) | 341 parser.add_option( '--qwindowaverage', dest='qwindowaverage', type="int", help='Remove sequences that have a window average quality below the value' ) |
399 parser.add_option( '--vertical', dest='vertical', help='Ignore any column that only contains gap characters, "-" or "."' ) | 402 parser.add_option( '--vertical', dest='vertical', help='Ignore any column that only contains gap characters, "-" or "."' ) |
400 parser.add_option( '--trump', dest='trump', help='Remove a column if the trump character is found at that position in any sequence of the alignment.' ) | 403 parser.add_option( '--trump', dest='trump', help='Remove a column if the trump character is found at that position in any sequence of the alignment.' ) |
401 parser.add_option( '--soft', dest='soft', type='int', help='Soft Mask - percentage required to retain column. (0-100)' ) | 404 parser.add_option( '--soft', dest='soft', type='int', help='Soft Mask - percentage required to retain column. (0-100)' ) |
402 parser.add_option( '--hard', dest='hard', help='Hard Column Filter - A file should only contain one line consisting of 0 and 1 chars' ) | 405 parser.add_option( '--hard', dest='hard', help='Hard Column Filter - A file should only contain one line consisting of 0 and 1 chars' ) |
403 parser.add_option( '--calc', dest='calc', help='Calc Method - Gap Penality' ) | 406 parser.add_option( '--calc', dest='calc', help='Calc Method - Gap Penality' ) |
407 parser.add_option( '--count', dest='count', help='Count file' ) | |
404 parser.add_option( '--countends', dest='countends', help='Penalize terminal gaps' ) | 408 parser.add_option( '--countends', dest='countends', help='Penalize terminal gaps' ) |
405 parser.add_option( '--cutoff', dest='cutoff', help='Distance Cutoff threshold, discard larger distances' ) | 409 parser.add_option( '--cutoff', dest='cutoff', help='Distance Cutoff threshold, discard larger distances' ) |
406 parser.add_option( '--countgaps', dest='countgaps', help='count gaps as bases' ) | 410 parser.add_option( '--countgaps', dest='countgaps', help='count gaps as bases' ) |
407 parser.add_option( '--output', dest='output', help='Format for output' ) | 411 parser.add_option( '--output', dest='output', help='Format for output' ) |
408 parser.add_option( '--method', dest='method', help='Method to use for analysis - cluster' ) | 412 parser.add_option( '--method', dest='method', help='Method to use for analysis - cluster' ) |
513 parser.add_option( '--keepprimer', dest='keepprimer', help='Whether to retain the primer' ) | 517 parser.add_option( '--keepprimer', dest='keepprimer', help='Whether to retain the primer' ) |
514 parser.add_option( '--keepdots', dest='keepdots', help='Whether to retain dots in the sequence' ) | 518 parser.add_option( '--keepdots', dest='keepdots', help='Whether to retain dots in the sequence' ) |
515 parser.add_option( '--matrixtype', dest='matrixtype', help='' ) | 519 parser.add_option( '--matrixtype', dest='matrixtype', help='' ) |
516 parser.add_option( '--consensus', dest='consensus', help='boolean' ) | 520 parser.add_option( '--consensus', dest='consensus', help='boolean' ) |
517 parser.add_option( '--biom', dest='biom', help='biom file' ) | 521 parser.add_option( '--biom', dest='biom', help='biom file' ) |
522 parser.add_option( '--classic', dest='classic', help='boolean' ) | |
518 # include read.otu options | 523 # include read.otu options |
519 parser.add_option( '--rabund', dest='rabund', help='' ) | 524 parser.add_option( '--rabund', dest='rabund', help='' ) |
520 parser.add_option( '--sabund', dest='sabund', help='' ) | 525 parser.add_option( '--sabund', dest='sabund', help='' ) |
521 parser.add_option( '--shared', dest='shared', help='' ) | 526 parser.add_option( '--shared', dest='shared', help='' ) |
522 parser.add_option( '--relabund', dest='relabund', help='' ) | 527 parser.add_option( '--relabund', dest='relabund', help='' ) |
651 chimera_count = 0 | 656 chimera_count = 0 |
652 for line in tmp_stdout: | 657 for line in tmp_stdout: |
653 if re.match(pattern,line): | 658 if re.match(pattern,line): |
654 chimera_count += 1 | 659 chimera_count += 1 |
655 info += "Chimeras: %d" % chimera_count | 660 info += "Chimeras: %d" % chimera_count |
661 elif options.cmd == 'count.groups': | |
662 fh = open(os.path.join(outputdir,'tmp.groups.count'),'w') | |
663 for line in tmp_stdout: | |
664 m = re.match('(.+) contains (\d+)\.',line) | |
665 if m and len(m.groups()) == 2: | |
666 info += line | |
667 print >> fh, "%s\t%s\n" % (m.group(1),m.group(2)) | |
668 fh.close() | |
656 else: | 669 else: |
657 found_begin = False | 670 found_begin = False |
658 info_chars = 0 | 671 info_chars = 0 |
659 for line in tmp_stdout: | 672 for line in tmp_stdout: |
673 if re.match('mothur > ' + options.cmd + '\(.*\)', line): | |
674 found_begin = True | |
675 continue | |
660 if line.find(outputdir) >= 0: | 676 if line.find(outputdir) >= 0: |
661 continue | 677 continue |
662 if line.startswith('**************'): | 678 if line.startswith('**************'): |
663 continue | 679 continue |
664 if re.match('^Processing.*',line): | 680 if re.match('^Processing.*',line): |
669 continue | 685 continue |
670 if re.match('^DONE.*',line): | 686 if re.match('^DONE.*',line): |
671 continue | 687 continue |
672 if re.match('.*\.\.\.\s*$',line): | 688 if re.match('.*\.\.\.\s*$',line): |
673 continue | 689 continue |
674 if re.match('^\d*\s*$',line): | 690 if re.match('^\d*\s*$',line) and not line.find(' contains '): |
675 continue | 691 continue |
676 # if re.match('^(unique|[0-9.]*)(\t\d+)+',line): # abundance from cluster commands | 692 # if re.match('^(unique|[0-9.]*)(\t\d+)+',line): # abundance from cluster commands |
677 if not options.cmd.startswith('unifrac') and re.match('^(unique|[0-9.]+)(\t\d+)*',line): # abundance from cluster commands, allow unique line into info | 693 if (not (options.cmd.startswith('unifrac') or options.cmd.startswith('count.groups')) |
694 and re.match('^(unique|[0-9.]+)(\t\d+)*',line)): # abundance from cluster commands, allow unique line into info | |
678 continue | 695 continue |
679 if re.match('Output .*',line): | 696 if re.match('Output .*',line): |
697 break | |
698 if re.match('mothur > quit()',line): | |
680 break | 699 break |
681 if found_begin and info_chars < 200: | 700 if found_begin and info_chars < 200: |
682 info += "%s" % line | 701 info += "%s" % line |
683 info_chars += len(line) | 702 info_chars += len(line) |
684 if re.match('mothur > ' + options.cmd + '\(.*\)', line): | |
685 found_begin = True | |
686 tmp_stdout.close() | 703 tmp_stdout.close() |
687 print >> sys.stdout, info | 704 print >> sys.stdout, info |
688 # Collect output files | 705 # Collect output files |
689 flist = os.listdir(outputdir) | 706 flist = os.listdir(outputdir) |
690 if debug: print >> sys.stdout, '%s' % flist | 707 if debug: print >> sys.stdout, '%s' % flist |