Source code for pmotools.scripts.extract_info_from_pmo.count_targets_per_library_sample

#!/usr/bin/env python3
import argparse
import sys


from pmotools.pmo_engine.pmo_processor import PMOProcessor
from pmotools.pmo_engine.pmo_reader import PMOReader
from pmotools.utils.small_utils import Utils


[docs]def get_parser_count_targets_per_library_sample() -> argparse.ArgumentParser: parser = argparse.ArgumentParser( prog="pmotools-python count_targets_per_library_sample", description="Count number of targets per sample", ) parser.add_argument("--file", type=str, required=True, help="PMO file") parser.add_argument( "--output", type=str, default="STDOUT", required=False, help="output file" ) parser.add_argument( "--delim", default="tab", type=str, required=False, help="the delimiter of the output text file, examples input tab,comma but can also be the actual delimiter", ) parser.add_argument( "--overwrite", action="store_true", help="If output file exists, overwrite it" ) parser.add_argument( "--read_count_minimum", default=0.0, type=float, required=False, help="the minimum read count (inclusive) to be counted as covered by sample", ) return parser
[docs]def parse_args_count_targets_per_library_sample(): parser = get_parser_count_targets_per_library_sample() return parser.parse_args()
[docs]def count_targets_per_library_sample(): args = parse_args_count_targets_per_library_sample() # check files output_delim, output_extension = Utils.process_delimiter_and_output_extension( args.delim, gzip=args.output.endswith(".gz") ) args.output = ( args.output if "STDOUT" == args.output else Utils.appendStrAsNeeded(args.output, output_extension) ) Utils.inputOutputFileCheck(args.file, args.output, args.overwrite) # read in PMO pmo = PMOReader.read_in_pmo(args.file) # count counts_df = PMOProcessor.count_targets_per_library_sample( pmo, args.read_count_minimum ) # write out counts_df.to_csv( sys.stdout if "STDOUT" == args.output else args.output, sep=output_delim, index=False, )
if __name__ == "__main__": count_targets_per_library_sample()