def get_argument_parser(): parser = argparse.ArgumentParser(usage="%(prog)s [options] <index> " "<mate1.fq> <mate2.fq> <output_dir>") # required options parser.add_argument("index_dir", default=None, help="Location of chimerascan index directory") parser.add_argument("read1", default=None, help="Path to read1 FASTQ file") parser.add_argument("read2", default=None, help="Path to read2 FASTQ file") parser.add_argument("output_dir", default=None, help="Location of output files") # standard options parser.add_argument('--version', action='version', version='%s' % __version__) parser.add_argument("--config-file", dest="config_file", help="Load parameters from a XML file " "generated during a previous run ", default=None) parser.add_argument("-v", "--verbose", dest="verbose", action="store_true", default=False, help="enable verbose logging output " "[default=%(default)s]") parser.add_argument("-p", "--processors", dest="num_processors", type=int, default=DEFAULT_NUM_PROCESSORS, help="Number of processor cores to allocate to " "chimerascan [default=%(default)s]") parser.add_argument("--keep-tmp", dest="keep_tmp", action="store_true", default=DEFAULT_KEEP_TMP, help="DO NOT delete intermediate files after " "run [default=%(default)s]") parser.add_argument("--rm-tmp", dest="keep_tmp", action="store_false", help="Delete intermediate files after run " "[default=%s]" % str(not DEFAULT_KEEP_TMP)) parser.add_argument("--quals", dest="quals", choices=FASTQ_QUAL_FORMATS, default=DEFAULT_FASTQ_QUAL_FORMAT, metavar="FMT", help="FASTQ quality score format " "[default=%(default)s]") parser.add_argument('--library-type', dest="library_type", choices=LibraryTypes.choices(), default=DEFAULT_LIBRARY_TYPE, help="Library type [default=%(default)s]") parser.add_argument("--isize-mean", dest="isize_mean", type=int, default=DEFAULT_ISIZE_MEAN, metavar="N", help="Mean insert size to sample from when " "insert size distribution cannot be determined " "empirically [default=%(default)s]") parser.add_argument("--isize-stdev", dest="isize_stdev", type=float, default=DEFAULT_ISIZE_STDEV, metavar="N", help="Insert size standard deviation to sample " "from when insert size distribution cannot be " "determined empirically [default=%(default)s]") parser.add_argument("--trim5", type=int, dest="trim5", default=DEFAULT_TRIM5, metavar="N", help="Trim N bases from 5' end of read") parser.add_argument("--trim3", type=int, dest="trim3", default=DEFAULT_TRIM3, metavar="N", help="Trim N bases from 3' end of read") parser.add_argument("--min-fragment-length", type=int, dest="min_fragment_length", default=config.DEFAULT_MIN_FRAG_LENGTH, help="Smallest expected fragment length " "[default=%(default)s]") parser.add_argument("--max-fragment-length", type=int, dest="max_fragment_length", default=config.DEFAULT_MAX_FRAG_LENGTH, help="Largest expected fragment length (reads " "less than this fragment length are assumed to " "be unspliced and contiguous) " "[default=%(default)s]") parser.add_argument("--segment-length", type=int, dest="segment_length", default=DEFAULT_SEGMENT_LENGTH, metavar="N", help="Override size of soft-clipped read " "segments during discordant alignment phase " "(determined empirically by default)") parser.add_argument("--multihits", type=int, dest="max_multihits", default=config.DEFAULT_MAX_MULTIHITS, metavar="N", help="Maximum alignments allowed for each " "discordant read") parser.add_argument("--local-multihits", type=int, dest="local_multihits", default=config.DEFAULT_LOCAL_MULTIHITS, metavar="N", help="Maximum alignments allowed for each " "discordant read") parser.add_argument("--local-anchor-length", type=int, dest="local_anchor_length", default=config.DEFAULT_LOCAL_ANCHOR_LENGTH, metavar="N", help="Number of bases that read must span " "on each side of a chimera to be considered " "a valid breakpoint read") # filtering options group = parser.add_argument_group('Filtering options') group.add_argument("--filter-num-frags", type=float, default=config.DEFAULT_FILTER_FRAGS, dest="filter_num_frags", metavar="N", help="Filter chimeras with less than N " "aligned fragments [default=%(default)s]") group.add_argument("--filter-allele-fraction", type=float, default=config.DEFAULT_FILTER_ALLELE_FRACTION, dest="filter_allele_fraction", metavar="X", help="Filter chimeras with expression less than " "the specified fraction of the total expression " "level [default=%(default)s") group.add_argument("--mask-biotypes-file", default="", dest="mask_biotypes_file", help="File containing list of gene biotypes " "to ignore (ex. pseudogenes, rRNA)") group.add_argument("--mask-rnames-file", default="", dest="mask_rnames_file", help="File containing list of reference names " "to ignore (ex. MT or chrM)") # filtering options return parser