Source code for lib5c.tools.pvalues

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


[docs]def add_pvalues_tool(parser): pvalues_parser = parser.add_parser( 'pvalues', prog='lib5c pvalues', help='call pvalues for interactions', parents=[primerfile_parser, parallelization_parser, log_vs_vst_parser] ) pvalues_parser.add_argument( 'observed', type=str, help='''File containing observed counts for which p-values should be called.''') pvalues_parser.add_argument( 'expected', type=str, help='''File containing expected counts.''') pvalues_parser.add_argument( 'variance', type=str, help='''File containing variance counts.''') pvalues_parser.add_argument( 'distribution', choices=['poisson', 'nbinom', 'norm', 'logistic'], help='''The distribution to use to call p-values.''') pvalues_parser.add_argument( 'outfile', type=str, help='''Path to file to write p-value counts to.''') pvalues_parser.set_defaults(func=pvalues_tool)
[docs]def pvalues_tool(parser, args): from lib5c.tools.helpers import resolve_parallel, resolve_primerfile from lib5c.parsers.primers import load_primermap from lib5c.parsers.counts import load_counts from lib5c.writers.counts import write_counts from lib5c.util.distributions import call_pvalues from lib5c.util.counts import parallel_log_counts # resolve parallel and primerfile resolve_parallel(parser, args, subcommand='pvalues', key_arg='observed') primerfile = resolve_primerfile(args.observed, args.primerfile) # load counts print('loading counts') primermap = load_primermap(primerfile) observed_counts = load_counts(args.observed, primermap) expected_counts = load_counts(args.expected, primermap) variance_counts = load_counts(args.variance, primermap) # honor log vs vst if args.log or args.vst: observed_counts = parallel_log_counts(observed_counts) if args.vst: expected_counts = parallel_log_counts(expected_counts) # fit distributions print('calling pvalues') pvalues = call_pvalues(observed_counts, expected_counts, variance_counts, args.distribution, log=args.log) # write p-values print('writing p-values') write_counts(pvalues, args.outfile, primermap)