if GUI() and len(sys.argv) == 1: from optparse_gui import OptionParserGUI parser = OptionParserGUI(version=VERSION) error_kwargs = {'exit': False} sys.excepthook = excepthook else: parser = OptionParser(version=VERSION) error_kwargs = {} advanced = OptionGroup(parser, "Advanced") parser.add_option("-s", "--snvs", type="files", dest="snvs", default=None, help="Single-Nucleotide-Variant files. Required.", name="SNV Files", notNone=True, remember=True, filetypes=[("SNV Files", "*.vcf;*.csv;*.tsv;*.xls;*.xlsx;*.txt")]) parser.add_option("-r", "--readalignments", type="files", dest="alignments", default=None, help="Read alignment files in indexed BAM format. Required.", name="Read Alignment Files", notNone=True, remember=True, filetypes=[("Read Alignment Files (indexed BAM)", "*.bam")])
if not GUI() and len(sys.argv) == 2 and sys.argv[1] == '--GUI': from optparse_gui.needswx import * sys.exit(1) if GUI() and len(sys.argv) == 1: from optparse_gui import OptionParserGUI parser = OptionParserGUI(version=VERSION) error_kwargs = {'exit': False} else: parser = OptionParser(version=VERSION) error_kwargs = {} advanced = OptionGroup(parser, "Advanced") parser.add_option("-s", "--snps", type="files", dest="snps", default=None, help="Single-Nucleotide-Polymophisms. Required.", name="SNPs", notNone=True, remember=True, filetypes=[("SNPs", "*.vcf;*.csv;*.tsv;*.xls;*.xlsx;*.txt")]) parser.add_option("-j", "--junctions", type="files", dest="junctions", default=None, help="Splice junctions. Required.", name="Splice Junctions", notNone=True, remember=True, filetypes=[("Splice Junctions (BED Format)", "*.bed")]) parser.add_option("-r", "--readalignments", type="files", dest="alignments", default=None, help="Read alignments in BAM/SAM format. Required.", name="Read Alignments", notNone=True, remember=True, filetypes=[("Read Alignments (BAM/SAM Format)", "*.bam;*.sam")]) advanced.add_option("-d", "--distance", type="int", dest="dist", default=50, remember=True, help="Upper bound on the distance between SNP locus and splice junction. Default: 50.", name="Distance Bound") advanced.add_option("-R", "--readthrough", type="int", dest="readthrough", default=5, remember=True, help="Number of bases aligning into intron. Default: 5bp.", name="Read-Through")
if not GUI() and len(sys.argv) == 2 and sys.argv[1] == '--GUI': from optparse_gui.needswx import * sys.exit(1) if GUI() and len(sys.argv) == 1: from optparse_gui import OptionParserGUI parser = OptionParserGUI(version=VERSION) error_kwargs = {'exit': False} sys.excepthook = excepthook else: parser = OptionParser(version=VERSION) error_kwargs = {} advanced = OptionGroup(parser, "Advanced") parser.add_option("-s", "--snvs", type="files", dest="snvs", default=None, help="Single-Nucleotide-Variant files. Required.", name="SNV Files", notNone=True, remember=True, filetypes=[("SNV Files", "*.vcf;*.csv;*.tsv;*.xls;*.xlsx;*.txt")]) parser.add_option("-r", "--readalignments", type="files", dest="alignments", default=None, help="Read alignment files in indexed BAM format. Required.", name="Read Alignment Files", notNone=True, remember=True, filetypes=[("Read Alignment Files (indexed BAM)", "*.bam")]) advanced.add_option("-m", "--minreads", type="int", dest="minreads", default=10, remember=True, help="Minimum number of good reads at SNV locus per alignment file. Default=10.", name="Min. Reads") advanced.add_option("-M", "--maxreads", type="float", dest="maxreads", default=None, remember=True, help="Scale read counts at high-coverage loci to ensure at most this many good reads at SNV locus per alignment file. Values greater than 1 indicate absolute read counts, otherwise the value indicates the coverage distribution percentile. Default=No maximum.", name="Max. Reads") advanced.add_option("-F", "--full", action="store_true", dest="full", default=False, remember=True, help="Output extra diagnostic read count fields. Default=False.", name="All Fields") advanced.add_option("-f", "--alignmentfilter", action="store_false", dest="filter", default=True, remember=True, help="(Turn off) alignment filtering by length, edits, etc.", name="Filter Alignments") advanced.add_option("-U", "--uniquereads", action="store_true", dest="unique", default=False, remember=True, help="Consider only distinct reads.", name="Unique Reads")
if GUI() and len(sys.argv) == 1: from optparse_gui import OptionParserGUI parser = OptionParserGUI(version=VERSION) error_kwargs = {'exit': False} sys.excepthook = excepthook else: parser = OptionParser(version=VERSION) error_kwargs = {} exfilt = OptionGroup(parser, "Filtering") readcounts = OptionGroup(parser, "Read Counting") regexs = OptionGroup(parser, "Filename Matching") snvannot = OptionGroup(parser, "SNV Annotation") parser.add_option("-s", "--snvs", type="files", dest="snvs", default=None, help="Single-Nucleotide-Variant files. Required.", name="SNV Files", notNone=True, remember=True, filetypes=[("SNV Files", "*.vcf;*.csv;*.tsv;*.xls;*.xlsx;*.txt")]) parser.add_option("-r", "--readalignments", type="files", dest="alignments", default=None, help="Read alignment files in indexed BAM format. Required.", name="Read Alignment Files", notNone=True, remember=True, filetypes=[("Read Alignment Files (Indexed BAM)", "*.bam")]) exfilt.add_option("-e", "--exoncoords", type="file", dest="exoncoords", default=None, help="Exon coordinates for SNV filtering. Optional.", name="Exon Coords.", remember=True, filetypes=[("Exonic Coordinates", "*.txt")]) regexs.add_option("--normaldnare", type="str", dest="normaldnare", default='GDNA', help="Germline/Normal DNA filename regular expression. Default: GDNA.", remember=True, name="Germline DNA") regexs.add_option("--normaltransre", type="str", dest="normaltransre", default='NRNA', help="Normal transcriptome filename regular expression. Default: NRNA.", remember=True, name="Normal Transcr.")
from optparse_gui import OptionParserGUI parser = OptionParserGUI(version=VERSION) error_kwargs = {'exit': False} sys.excepthook = excepthook else: parser = OptionParser(version=VERSION) error_kwargs = {} minreads_default = 0 parser.add_option("-c", "--counts", type="files", dest="counts", default=None, help="ReadCounts files. Required.", name="ReadCounts Files", notNone=True, remember=True, filetypes=[("ReadCounts Files", "*.csv;*.tsv;*.xls;*.xlsx;*.txt;")]) parser.add_option( "-M", "--matrix", type="choice", dest="matrix", default="Ref;Var", remember=True, help="Matrix output format: Ref;Var, Ref:Var, or VAF. Default: Ref;Var.", name="Matrix", choices=["Ref;Var", "Ref:Var", "VAF"])
sys.exit(1) if GUI() and len(sys.argv) == 1: from optparse_gui import OptionParserGUI parser = OptionParserGUI(version=VERSION) error_kwargs = {'exit': False} else: parser = OptionParser(version=VERSION) error_kwargs = {} advanced = OptionGroup(parser, "Advanced") parser.add_option("-s", "--snps", type="files", dest="snps", default=None, help="Single-Nucleotide-Polymophisms. Required.", name="SNPs", notNone=True, remember=True, filetypes=[("SNPs", "*.vcf;*.csv;*.tsv;*.xls;*.xlsx;*.txt")]) parser.add_option("-j", "--junctions", type="files", dest="junctions", default=None, help="Splice junctions. Required.", name="Splice Junctions", notNone=True, remember=True, filetypes=[("Splice Junctions (BED Format)", "*.bed")]) parser.add_option("-r",
atexit.register(cleanup) if GUI() and len(sys.argv) == 1: from optparse_gui import OptionParserGUI parser = OptionParserGUI(version=VERSION) error_kwargs = {'exit': False} else: parser = OptionParser(version=VERSION) error_kwargs = {} parser.add_option("-c", "--counts", type="files", dest="counts", default=None, help="Read counts per SNP/Junction", name="SNP/Junction Counts", remember=True, notNone=True, filetypes=[("Read counts", "*.xlsx;*.xls;*.csv;*.tsv;*.txt"), ("Excel", "*.xlsx"), ("Excel2003", "*.xls"), ("CSV", "*.csv"), ("TSV", "*.tsv")]) parser.add_option("-q", "--quiet", action="store_true", dest="quiet", default=False, remember=True, help="Quiet.", name="Quiet") parser.add_option("-o", "--output",
groupFactory = ReadGroupFactory() groupOptions = [""] + [t[0] for t in groupFactory.list()] minreads_default = 5 maxreads_default = None tpb_default = 0 filter_default = "Basic" readgroup_default = "UMI-tools" advanced = OptionGroup(parser, "Advanced") parser.add_option("-s", "--snvs", type="files", dest="snvs", default=None, help="Single-Nucleotide-Variant files. Required.", name="SNV Files", notNone=True, remember=True, filetypes=[("SNV Files", "*.vcf;*.csv;*.tsv;*.xls;*.xlsx;*.txt")]) parser.add_option("-r", "--readalignments", type="files", dest="alignments", default=None, help="Read alignment files in indexed BAM format. Required.", name="Read Alignment Files", notNone=True, remember=True, filetypes=[("Read Alignment Files (indexed BAM)", "*.bam")])
for d in toremove: shutil.rmtree(d, ignore_errors=True) atexit.register(cleanup) if GUI() and len(sys.argv) == 1: from optparse_gui import OptionParserGUI parser = OptionParserGUI(version=VERSION) error_kwargs = {'exit': False} else: parser = OptionParser(version=VERSION) error_kwargs = {} parser.add_option("-c", "--counts", type="files", dest="counts", default=None, help="Read counts per SNP/Junction", name="SNP/Junction Counts", remember=True, notNone=True, filetypes=[("Read counts", "*.xlsx;*.xls;*.csv;*.tsv;*.txt"), ("Excel", "*.xlsx"), ("Excel2003", "*.xls"), ("CSV", "*.csv"), ("TSV", "*.tsv")]) parser.add_option("-q", "--quiet", action="store_true", dest="quiet", default=False, remember=True, help="Quiet.", name="Quiet") parser.add_option("-o", "--output", type="savefile", dest="output", remember=True, help="Output file. Leave empty for console ouptut.", default="", name="Output File", filetypes=[("All output formats", "*.xlsx;*.xls;*.csv;*.tsv;*.txt"), ("Excel", "*.xlsx"), ("Excel2003", "*.xls"), ("CSV", "*.csv"), ("TSV", "*.tsv"), ("Text", "*.txt")]) opt = None while True: if 'exit' in error_kwargs: try: opt, args = parser.parse_args(opts=opt)