def process_fastq(fastq_r1, fastq_r2, bins, phred_offset, casava17): fh_r1 = fastq_utils.FastQParser(fastq_r1) fh_r2 = fastq_utils.FastQParser(fastq_r2) oh1 = {} oh2 = {} root1, ext1 = os.path.splitext(fastq_r1) root2, ext2 = os.path.splitext(fastq_r2) for b in bins: oh1[b] = fastq_utils.FastQWriter("%s.Q%d%s" % (root1, b, ext1)) oh2[b] = fastq_utils.FastQWriter("%s.Q%d%s" % (root2, b, ext2)) for r1 in fh_r1: r2 = fh_r2.next() assert fastq_utils.is_read_pair( r1, r2, not casava17 ), "FATAL: Read identifiers differ for paired reads ({:s} and {:s})".format( r1[0], r2[0]) bin = min(int(round(fastq_utils.avgQ(r1, phred_offset))), int(round(fastq_utils.avgQ(r2, phred_offset)))) for b in bins: if bin >= b: oh1[b].write(r1) oh2[b].write(r2) for oh in oh1.values() + oh2.values(): oh.close()
def process_fastq(fastq_r1, fastq_r2, bins, phred_offset, casava17): fh_r1 = fastq_utils.FastQParser(fastq_r1) fh_r2 = fastq_utils.FastQParser(fastq_r2) oh1 = {} oh2 = {} root1, ext1 = os.path.splitext(fastq_r1) root2, ext2 = os.path.splitext(fastq_r2) for b in bins: oh1[b] = fastq_utils.FastQWriter("%s.Q%d%s" % (root1,b,ext1)) oh2[b] = fastq_utils.FastQWriter("%s.Q%d%s" % (root2,b,ext2)) for r1 in fh_r1: r2 = fh_r2.next() assert fastq_utils.is_read_pair(r1,r2,not casava17), "FATAL: Read identifiers differ for paired reads ({:s} and {:s})".format(r1[0],r2[0]) bin = min(int(round(fastq_utils.avgQ(r1,phred_offset))),int(round(fastq_utils.avgQ(r2,phred_offset)))) for b in bins: if bin >= b: oh1[b].write(r1) oh2[b].write(r2) for oh in oh1.values() + oh2.values(): oh.close()
def demultiplex_fastq(index, fastq1, fastq2): filter = {'index': index} fp1 = FastQParser(fastq1,filter) if fastq2 is not None: fp2 = FastQParser(fastq2,filter) for r1 in fp1: if fastq2 is not None: r2 = fp2.next() assert is_read_pair(r1,r2), "Mismatching headers for expected read pair" sys.stderr.write("{}\n".format("\n".join(r2))) sys.stdout.write("{}\n".format("\n".join(r1)))
def demultiplex_fastq(index, fastq1, fastq2): filter = {"index": index} fp1 = FastQParser(fastq1, filter) if fastq2 is not None: fp2 = FastQParser(fastq2, filter) for r1 in fp1: if fastq2 is not None: r2 = fp2.next() assert is_read_pair(r1, r2), "Mismatching headers for expected read pair" sys.stderr.write("{}\n".format("\n".join(r2))) sys.stdout.write("{}\n".format("\n".join(r1)))