@@ -35,6 +35,7 @@ def assemble(args,wd):
3535parser .add_argument ('--align' , help = "align contigs to reference using bwa mem" , required = False , action = "store_true" )
3636parser .add_argument ('--fasta' , help = "convert aligned contigs bam file to fasta" , required = False , action = "store_true" )
3737parser .add_argument ('--fastq' , help = "convert bam to fastq" , required = False , action = "store_true" )
38+ parser .add_argument ('--quast' , help = "compute assembly stats using quast" , required = False , action = "store_true" )
3839
3940args , unknown = parser .parse_known_args ()
4041
@@ -79,6 +80,25 @@ def assemble(args,wd):
7980 args = parser .parse_args ()
8081
8182 stats .assembly_stats (args )
83+ elif args .quast :
84+
85+ parser = argparse .ArgumentParser ("""QUAST - quality control""" )
86+ parser .add_argument ('--quast' , help = "compute assembly stats using quast" , required = False , action = "store_true" )
87+ parser .add_argument ('--contigs' , nargs = '*' , help = "input contigs (multiple assemblies are allowed)" , required = True )
88+ parser .add_argument ('--ref' ,required = False ,type = str , help = "reference fasta" )
89+ parser .add_argument ('--output' ,required = True ,type = str , help = "output folder" )
90+ parser .add_argument ('--features' ,nargs = '*' ,required = False ,type = str , help = "Feature BED/GFF file" )
91+ parser .add_argument ('--len' ,default = 100 ,type = int , help = "minimum contig length (default= 100 bp)" )
92+ args = parser .parse_args ()
93+
94+ quast = "quast.py {} --output-dir {} --min-contig {}" .format (" " .join (args .contigs ),args .output ,args .len )
95+
96+ if args .ref :
97+ quast += " -r {}" .format (args .ref )
98+
99+ if args .features :
100+ quast += " -g {}" .format (" " .join (args .features ))
101+ os .system (quast )
82102
83103elif args .align :
84104 parser = argparse .ArgumentParser ("""Assemblatron align - align contigs to the reference using bwa mem""" )
@@ -115,6 +135,8 @@ def assemble(args,wd):
115135 parser .add_argument ('--mem' , help = "maximum mempry per thread (gigabytes)" , type = int , default = 4 )
116136 parser .add_argument ('--iter' , help = "Number of itterations (default = 500000)" , type = int , default = 500000 )
117137 parser .add_argument ('--cores' ,type = int , default = 8 , help = "number of cores (default = 2)" , required = False )
138+ parser .add_argument ('-q' ,type = int , help = "minimum mapping quality for scaffolding" , required = False )
139+ parser .add_argument ('-p' ,type = int , help = "minimum number of read-pairs to create edge" , required = False )
118140 args = parser .parse_args ()
119141
120142 args .prefix = args .filename
@@ -132,10 +154,17 @@ def assemble(args,wd):
132154 os .system ("samtools index {}" .format (args .bam ))
133155
134156 if args .rf :
135- os . system ( "runBESST -c {} -f {} -orientation rf -o {} -- iter {}" .format (args .contigs ,args .bam ,args .output ,args .iter ) )
157+ besst = "runBESST -c {} -f {} -orientation rf -o {} -plots -- iter {}" .format (args .contigs ,args .bam ,args .output ,args .iter )
136158 else :
137- os .system ("runBESST -c {} -f {} -orientation fr -o {} --iter {}" .format (args .contigs ,args .bam ,args .output ,args .iter ))
138-
159+ besst = "runBESST -c {} -f {} -orientation fr -o {} -plots --iter {}" .format (args .contigs ,args .bam ,args .output ,args .iter )
160+
161+ if args .q :
162+ besst += " --min_mapq {}" .format (args .q )
163+
164+ if args .p :
165+ besst += " -e {}" .format (args .p )
166+
167+ os .system (besst )
139168elif args .fastq :
140169
141170 parser = argparse .ArgumentParser ("""Assemblatron fastq - converts bam to fastq using samtools""" )
0 commit comments