def process_feed(args, callback=None): """ Process feed data """ if callback: callback("Processing GISAID feed data") loader = gisaid_utils.load_gisaid(args.infile, minlen=args.minlen, mindate=args.mindate) batcher = gisaid_utils.batch_fasta(loader, size=args.batchsize) aligned = gisaid_utils.extract_features(batcher, ref_file=args.ref, binpath=args.mmbin, nthread=args.mmthreads, minlen=args.minlen) filtered = gisaid_utils.filter_problematic(aligned, vcf_file=args.vcf, cutoff=args.poisson_cutoff, callback=callback) return gisaid_utils.sort_by_lineage(filtered, callback=callback)
def process_local(args, callback=None): """ Analyze genome sequences from local FASTA file """ with open(args.ref) as handle: reflen = len(seq_utils.convert_fasta(handle)[0][1]) loader = stream_local(args.infile, args.pangolineages, minlen=args.minlen, mindate=args.mindate, callback=callback) batcher = gisaid_utils.batch_fasta(loader, size=args.batchsize) aligned = gisaid_utils.extract_features(batcher, ref_file=args.ref, binpath=args.mmbin, nthread=args.mmthreads, minlen=args.minlen) filtered = gisaid_utils.filter_problematic(aligned, vcf_file=args.vcf, cutoff=args.poisson_cutoff, callback=callback) return gisaid_utils.sort_by_lineage(filtered, callback=callback)