Source code for lib5c.tools.qvalues

from lib5c.tools.parents import parallelization_parser, simple_in_out_parser, \
    primerfile_parser


[docs]def add_qvalues_tool(parser): qvalues_parser = parser.add_parser( 'qvalues', prog='lib5c qvalues', help='perform multiple testing correction', parents=[primerfile_parser, parallelization_parser, simple_in_out_parser] ) qvalues_parser.add_argument( '-m', '--method', type=str, default='fdr_bh', help='''Specify what method to use for multiple testing correction. Must be supported by `statsmodels.stats.multitest.multipletests()` The default is 'fdr_bh' for Benjamini-Hochberg.''') qvalues_parser.set_defaults(func=qvalues_tool)
[docs]def qvalues_tool(parser, args): from lib5c.tools.helpers import resolve_primerfile, resolve_parallel from lib5c.parsers.primers import load_primermap from lib5c.parsers.counts import load_counts from lib5c.util.statistics import adjust_pvalues from lib5c.util.counts import apply_nonredundant from lib5c.writers.counts import write_counts # resolve primerfile and parallel resolve_parallel(parser, args, subcommand='qvalues') primerfile = resolve_primerfile(args.infile, args.primerfile) # load counts print('loading pvalues') primermap = load_primermap(primerfile) pvalues = load_counts(args.infile, primermap) # mtc print('performing multiple testing correction') qvalues = apply_nonredundant( lambda x: adjust_pvalues(x, method=args.method), pvalues, primermap) # write output print('writing counts') write_counts(qvalues, args.outfile, primermap)