static GtOptionParser* gt_splicesiteinfo_option_parser_new(void *tool_arguments) { SpliceSiteInfoArguments *arguments = tool_arguments; GtOptionParser *op; GtOption *option; gt_assert(arguments); op = gt_option_parser_new("[option ...] [GFF3_file ...]", "Show information " "about splice sites given in GFF3 files."); /* -seqfile, -matchdesc, -usedesc and -regionmapping */ gt_seqid2file_register_options(op, arguments->s2fi); /* -addintrons */ option = gt_option_new_bool("addintrons", "add intron features between " "existing exon features\n(before computing the " "information to be shown)", &arguments->addintrons, false); gt_option_parser_add_option(op, option); /* output file options */ gt_outputfile_register_options(op, &arguments->outfp, arguments->ofi); gt_option_parser_set_comment_func(op, gt_gtdata_show_help, NULL); return op; }
static GtOptionParser* gt_seqtransform_option_parser_new(void *tool_arguments) { SeqtransformArguments *arguments = tool_arguments; GtOptionParser *op; GtOption *o; gt_assert(arguments); op = gt_option_parser_new("[option ...] [sequence_file ...]", "Perform simple transformations on the given " "sequence file(s)."); /* -addstopaminos */ o = gt_option_new_bool("addstopaminos", "append stop amino acids ('" GT_STOP_AMINO_CSTR"') to given protein sequences, if " "not already present", &arguments->addstopaminos, false); gt_option_parser_add_option(op, o); /* -width */ o = gt_option_new_width(&arguments->width); gt_option_parser_add_option(op, o); gt_outputfile_register_options(op, &arguments->outfp, arguments->ofi); return op; }
static GtOptionParser* gt_cds_option_parser_new(void *tool_arguments) { CDSArguments *arguments = tool_arguments; GtOptionParser *op; GtOption *option; gt_assert(arguments); op = gt_option_parser_new("[option ...] [GFF3_file]", "Add CDS (coding sequence) features to exon " "features given in GFF3 file."); /* -minorflen */ option = gt_option_new_uint_min("minorflen", "set the minimum length an open " "reading frame (ORF) must have to be added " "as a CDS feature (measured in amino acids)", &arguments->minorflen, 64, 1); gt_option_parser_add_option(op, option); /* -startcodon */ option = gt_option_new_bool("startcodon", "require than an ORF must begin " "with a start codon", &arguments->start_codon, false); gt_option_parser_add_option(op, option); /* -finalstopcodon */ option = gt_option_new_bool("finalstopcodon", "require that the final ORF " "must end with a stop codon", &arguments->final_stop_codon, false); gt_option_parser_add_option(op, option); /* -genericstartcodons */ option = gt_option_new_bool("genericstartcodons", "use generic start codons", &arguments->generic_start_codons, false); gt_option_is_development_option(option); gt_option_parser_add_option(op, option); /* -seqfile, -matchdesc, -usedesc and -regionmapping */ gt_seqid2file_register_options(op, arguments->s2fi); /* -v */ option = gt_option_new_verbose(&arguments->verbose); gt_option_parser_add_option(op, option); /* output file options */ gt_outputfile_register_options(op, &arguments->outfp, arguments->ofi); gt_option_parser_set_comment_func(op, gt_gtdata_show_help, NULL); gt_option_parser_set_max_args(op, 1); return op; }
static GtOptionParser* gt_mergefeat_option_parser_new(void *tool_arguments) { InterFeatArguments *arguments = tool_arguments; GtOptionParser *op; gt_assert(arguments); /* init */ op = gt_option_parser_new("[option ...] [GFF3_file ...]", "Merge adjacent " "features of the same type in given GFF3_file(s)."); /* output file options */ gt_outputfile_register_options(op, &arguments->outfp, arguments->ofi); return op; }
static GtOPrval parse_options(int *parsed_args, ChseqidsArguments *arguments, int argc, const char **argv, GtError *err) { GtOptionParser *op; GtOutputFileInfo *ofi; GtOption *option; GtOPrval oprval; gt_error_check(err); /* init */ op = gt_option_parser_new("[option ...] mapping_file [GFF3_file]", "Change sequence ids by the mapping given in " "mapping_file."); ofi = gt_outputfileinfo_new(); /* -sort */ option = gt_option_new_bool("sort", "sort the GFF3 features after changing the " "sequence ids\n(memory consumption is " "proportional to the input file size)", &arguments->sort, false); gt_option_parser_add_option(op, option); /* -v */ option = gt_option_new_verbose(&arguments->verbose); gt_option_parser_add_option(op, option); /* output file options */ gt_outputfile_register_options(op, &arguments->outfp, ofi); /* parse options */ gt_option_parser_set_comment_func(op, gt_gtdata_show_help, NULL); gt_option_parser_set_min_max_args(op, 1, 2); oprval = gt_option_parser_parse(op, parsed_args, argc, argv, gt_versionfunc, err); /* free */ gt_outputfileinfo_delete(ofi); gt_option_parser_delete(op); return oprval; }
static GtOptionParser* gt_seqfilter_option_parser_new(void *tool_arguments) { SeqFilterArguments *arguments = tool_arguments; GtOption *option; GtOptionParser *op; gt_assert(arguments); op = gt_option_parser_new("[option ...] [sequence_file ...]", "Filter the given sequence_file(s) and show the " "results on stdout."); /* -minlength */ option = gt_option_new_ulong("minlength", "set minimum length a sequence must " "have to pass the filter", &arguments->minlength, GT_UNDEF_ULONG); gt_option_parser_add_option(op, option); /* -maxlength */ option = gt_option_new_ulong("maxlength", "set maximum length a sequence can " "have to pass the filter", &arguments->maxlength, GT_UNDEF_ULONG); gt_option_parser_add_option(op, option); /* -maxseqnum */ option = gt_option_new_ulong("maxseqnum", "set the maximum number of " "sequences which can pass the filter", &arguments->maxseqnum, GT_UNDEF_ULONG); gt_option_parser_add_option(op, option); /* -width */ option = gt_option_new_width(&arguments->width); gt_option_parser_add_option(op, option); gt_outputfile_register_options(op, &arguments->outfp, arguments->ofi); return op; }
static GtOptionParser* gt_seqmutate_option_parser_new(void *tool_arguments) { MutateArguments *arguments = tool_arguments; GtOptionParser *op; GtOption *o; gt_assert(arguments); op = gt_option_parser_new("[option ...] [sequence_file ...]", "Mutate the sequences of the given sequence " "file(s)."); /* -rate */ o = gt_option_new_uint_max("rate", "set the mutation rate", &arguments->rate, 1, 100); gt_option_parser_add_option(op, o); /* -width */ o = gt_option_new_width(&arguments->width); gt_option_parser_add_option(op, o); gt_outputfile_register_options(op, &arguments->outfp, arguments->ofi); gt_option_parser_set_comment_func(op, gt_gtdata_show_help, NULL); return op; }
static GtOptionParser* gt_extractseq_option_parser_new(void *tool_arguments) { ExtractSeqArguments *arguments = tool_arguments; GtOptionParser *op; GtOption *frompos_option, *topos_option, *match_option, *width_option, *fastakeyfile_option; gt_assert(arguments); /* init */ op = gt_option_parser_new("[option ...] [sequence_file(s)] | fastaindex", "Extract sequences from given sequence file(s) or " "fastaindex."); /* -frompos */ frompos_option = gt_option_new_ulong_min(FROMPOS_OPTION_STR, "extract sequence from this position\n" "counting from 1 on", &arguments->frompos, 0, 1UL); gt_option_parser_add_option(op, frompos_option); /* -topos */ topos_option = gt_option_new_ulong_min(TOPOS_OPTION_STR, "extract sequence up to this position\n" "counting from 1 on", &arguments->topos, 0, 1UL); gt_option_parser_add_option(op, topos_option); /* -match */ match_option = gt_option_new_string("match", "extract all sequences whose " "description matches the given pattern.\n" "The given pattern must be a valid extended " "regular expression.", arguments->pattern, NULL); gt_option_parser_add_option(op, match_option); /* -keys */ fastakeyfile_option = gt_option_new_filename("keys", "extract substrings for keys " "in specified file", arguments->fastakeyfile); gt_option_parser_add_option(op, fastakeyfile_option); /* -width */ width_option = gt_option_new_width(&arguments->width); gt_option_parser_add_option(op, width_option); /* output file options */ gt_outputfile_register_options(op, &arguments->outfp, arguments->ofi); /* option implications */ gt_option_imply(frompos_option, topos_option); gt_option_imply(topos_option, frompos_option); /* option exclusions */ gt_option_exclude(frompos_option, match_option); gt_option_exclude(topos_option, match_option); gt_option_exclude(frompos_option, fastakeyfile_option); gt_option_exclude(match_option, fastakeyfile_option); gt_option_parser_set_comment_func(op, gt_gtdata_show_help, NULL); return op; }
static GtOptionParser* gt_ltrdigest_option_parser_new(void *tool_arguments) { GtLTRdigestOptions *arguments = tool_arguments; GtOptionParser *op; GtOption *o, *ot, *oto; #ifdef HAVE_HMMER GtOption *oh, *oc, *oeval; static const char *cutoffs[] = {"NONE", "GA", "TC", NULL}; #endif static GtRange pptlen_defaults = { 8UL, 30UL}, uboxlen_defaults = { 3UL, 30UL}, pbsalilen_defaults = {11UL, 30UL}, pbsoffsetlen_defaults = { 0UL, 5UL}, pbstrnaoffsetlen_defaults = { 0UL, 5UL}; gt_assert(arguments); /* init */ op = gt_option_parser_new("[option ...] gff3_file indexname", "Identifies and annotates sequence features in LTR " "retrotransposon candidates."); /* Output files */ oto = gt_option_new_string("outfileprefix", "prefix for output files (e.g. 'foo' will create " "files called 'foo_*.csv' and 'foo_*.fas')\n" "Omit this option for GFF3 output only.", arguments->prefix, NULL); gt_option_parser_add_option(op, oto); gt_option_hide_default(oto); o = gt_option_new_uint("seqnamelen", "set maximal length of sequence names in FASTA headers" " (e.g. for clustalw or similar tools)", &arguments->seqnamelen, 20U); gt_option_parser_add_option(op, o); /* PPT search options */ o = gt_option_new_range("pptlen", "required PPT length range", &arguments->ppt_opts.ppt_len, &pptlen_defaults); gt_option_parser_add_option(op, o); o = gt_option_new_range("uboxlen", "required U-box length range", &arguments->ppt_opts.ubox_len, &uboxlen_defaults); gt_option_parser_add_option(op, o); o = gt_option_new_uint("pptradius", "radius around beginning of 3' LTR " "to search for PPT", &arguments->ppt_opts.radius, 30U); gt_option_parser_add_option(op, o); o = gt_option_new_probability("pptrprob", "purine emission probability inside PPT", &arguments->ppt_opts.ppt_purine_prob, PPT_PURINE_PROB); gt_option_parser_add_option(op, o); gt_option_is_extended_option(o); o = gt_option_new_probability("pptyprob", "pyrimidine emission probability inside PPT", &arguments->ppt_opts.ppt_pyrimidine_prob, PPT_PYRIMIDINE_PROB); gt_option_parser_add_option(op, o); gt_option_is_extended_option(o); o = gt_option_new_probability("pptgprob", "background G emission probability outside PPT", &arguments->ppt_opts.bkg_g_prob, BKG_G_PROB); gt_option_parser_add_option(op, o); gt_option_is_extended_option(o); o = gt_option_new_probability("pptcprob", "background C emission probability outside PPT", &arguments->ppt_opts.bkg_c_prob, BKG_C_PROB); gt_option_parser_add_option(op, o); gt_option_is_extended_option(o); o = gt_option_new_probability("pptaprob", "background A emission probability outside PPT", &arguments->ppt_opts.bkg_a_prob, BKG_A_PROB); gt_option_parser_add_option(op, o); gt_option_is_extended_option(o); o = gt_option_new_probability("ppttprob", "background T emission probability outside PPT", &arguments->ppt_opts.bkg_t_prob, BKG_T_PROB); gt_option_parser_add_option(op, o); gt_option_is_extended_option(o); o = gt_option_new_probability("pptuprob", "U/T emission probability inside U-box", &arguments->ppt_opts.ubox_u_prob, UBOX_U_PROB); gt_option_parser_add_option(op, o); gt_option_is_extended_option(o); /* PBS search options */ ot = gt_option_new_filename("trnas", "tRNA library in multiple FASTA format for PBS " "detection\n" "Omit this option to disable PBS search.", arguments->trna_lib); gt_option_parser_add_option(op, ot); gt_option_hide_default(ot); o = gt_option_new_range("pbsalilen", "required PBS/tRNA alignment length range", &arguments->pbs_opts.alilen, &pbsalilen_defaults); gt_option_parser_add_option(op, o); gt_option_imply(o, ot); o = gt_option_new_range("pbsoffset", "allowed PBS offset from LTR boundary range", &arguments->pbs_opts.offsetlen, &pbsoffsetlen_defaults); gt_option_parser_add_option(op, o); gt_option_imply(o, ot); o = gt_option_new_range("pbstrnaoffset", "allowed PBS/tRNA 3' end alignment offset range", &arguments->pbs_opts.trnaoffsetlen, &pbstrnaoffsetlen_defaults); gt_option_parser_add_option(op, o); gt_option_imply(o, ot); o = gt_option_new_uint("pbsmaxedist", "maximal allowed PBS/tRNA alignment unit " "edit distance", &arguments->pbs_opts.max_edist, 1U); gt_option_parser_add_option(op, o); gt_option_imply(o, ot); o = gt_option_new_uint("pbsradius", "radius around end of 5' LTR " "to search for PBS", &arguments->pbs_opts.radius, 30U); gt_option_parser_add_option(op, o); gt_option_imply(o, ot); /* Protein domain search options */ #ifdef HAVE_HMMER oh = gt_option_new_filename_array("hmms", "profile HMM models for domain detection " "(separate by spaces, finish with --) in " "HMMER3 format\n" "Omit this option to disable pHMM search.", arguments->pdom_opts.hmm_files); gt_option_parser_add_option(op, oh); oeval = gt_option_new_probability("pdomevalcutoff", "global E-value cutoff for pHMM search\n" "default 1E-6", &arguments->pdom_opts.evalue_cutoff, 0.000001); gt_option_parser_add_option(op, oeval); gt_option_is_extended_option(oeval); gt_option_hide_default(oeval); gt_option_imply(oeval, oh); oc = gt_option_new_choice("pdomcutoff", "model-specific score cutoff\n" "choose from TC (trusted cutoff) | " "GA (gathering cutoff) | " "NONE (no cutoffs)", arguments->cutoffs, cutoffs[0], cutoffs); gt_option_parser_add_option(op, oc); gt_option_is_extended_option(oeval); gt_option_imply(oeval, oh); o = gt_option_new_bool("aliout", "output pHMM to amino acid sequence alignments", &arguments->pdom_opts.write_alignments, false); gt_option_parser_add_option(op, o); gt_option_imply(o, oh); gt_option_imply(o, oto); o = gt_option_new_bool("aaout", "output amino acid sequences for protein domain " "hits", &arguments->pdom_opts.write_aaseqs, false); gt_option_parser_add_option(op, o); gt_option_imply(o, oh); gt_option_imply(o, oto); o = gt_option_new_uint("maxgaplen", "maximal allowed gap size between fragments (in amino " "acids) when chaining pHMM hits for a protein domain", &arguments->pdom_opts.chain_max_gap_length, 50); gt_option_parser_add_option(op, o); gt_option_is_extended_option(o); gt_option_imply(o, oh); o = gt_option_new_ulong("threads", "DEPRECATED, only included for compatibility reasons!" " Use the -j parameter of the 'gt' call instead.", &arguments->nthreads, 0); gt_option_parser_add_option(op, o); gt_option_is_extended_option(o); #endif /* Extended PBS options */ o = gt_option_new_int("pbsmatchscore", "match score for PBS/tRNA alignments", &arguments->pbs_opts.ali_score_match, 5); gt_option_parser_add_option(op, o); gt_option_is_extended_option(o); gt_option_imply(o, ot); o = gt_option_new_int("pbsmismatchscore", "mismatch score for PBS/tRNA alignments", &arguments->pbs_opts.ali_score_mismatch, -10); gt_option_parser_add_option(op, o); gt_option_is_extended_option(o); gt_option_imply(o, ot); o = gt_option_new_int("pbsinsertionscore", "insertion score for PBS/tRNA alignments", &arguments->pbs_opts.ali_score_insertion, -20); gt_option_parser_add_option(op, o); gt_option_is_extended_option(o); gt_option_imply(o, ot); o = gt_option_new_int("pbsdeletionscore", "deletion score for PBS/tRNA alignments", &arguments->pbs_opts.ali_score_deletion, -20); gt_option_parser_add_option(op, o); gt_option_is_extended_option(o); gt_option_imply(o, ot); /* verbosity */ o = gt_option_new_verbose(&arguments->verbose); gt_option_parser_add_option(op, o); /* output file options */ gt_outputfile_register_options(op, &arguments->outfp, arguments->ofi); gt_option_parser_set_min_max_args(op, 2U, 2U); return op; }