Esempio n. 1
0
    def test_two_pairs_unordered(self):
        self.fastq1 = StringIO("""\
@A:B:C X:Y
ACGT
+
QUAL
@A:B:E X:Y
AAGT
+
QUAL
""")
        self.fastq2 = StringIO("""\
@A:B:E Q:R
TAGA
+
LAUQ
@A:B:C Q:R
TTGG
+
LAUQ
""")
        expected_reads = [
            ("A:B:C", ("X:Y", "ACGT", "QUAL"), ("Q:R", "TTGG", "LAUQ")),
            ("A:B:E", ("X:Y", "AAGT", "QUAL"), ("Q:R", "TAGA", "LAUQ"))
        ]
        reader = FastqReader(self.fastq1, self.fastq2)

        reads = list(reader)

        self.assertEqual(expected_reads, reads)
Esempio n. 2
0
def align_untrimmed_reads(fastq):
    v3loop_ref = extract_v3loop_ref()
    score_counts = Counter()
    for _, (_, nucs, _) in FastqReader.get_reads(fastq):
        _, _, score = align_it(v3loop_ref, nucs, GAP_OPEN_COST,
                               GAP_EXTEND_COST, USE_TERMINAL_COST)
        score_counts[score] += 1
    return score_counts
Esempio n. 3
0
def align_reads(fastq1, fastq2):
    v3loop_ref = extract_v3loop_ref()
    reader = FastqReader(fastq1, fastq2)
    merged_reads = merge_reads(reader)
    score_counts = Counter()
    for _ in trim_reads(merged_reads, v3loop_ref, score_counts):
        pass
    return score_counts
Esempio n. 4
0
def align_untrimmed_reads(fastq):
    v3loop_ref = extract_v3loop_ref()
    score_counts = Counter()
    for _, (_, nucs, _) in FastqReader.get_reads(fastq):
        _, _, score = align_it(v3loop_ref,
                               nucs,
                               GAP_OPEN_COST,
                               GAP_EXTEND_COST,
                               USE_TERMINAL_COST)
        score_counts[score] += 1
    return score_counts
Esempio n. 5
0
    def test_unmatched_pair(self):
        self.fastq1 = StringIO("""\
@A:B:C X:Y
ACGT
+
QUAL
""")
        self.fastq2 = StringIO("""\
@A:B:X Q:R
TTGG
+
LAUQ
""")
        reader = FastqReader(self.fastq1, self.fastq2)

        with self.assertRaisesRegex(FastqError, 'No match for read A:B:C.'):
            list(reader)
Esempio n. 6
0
    def test_extra_description(self):
        self.fastq1 = StringIO("""\
@A:B:C X:Y Z
ACGT
+
QUAL
""")
        self.fastq2 = StringIO("""\
@A:B:C Q:R
TTGG
+
LAUQ
""")
        expected_reads = [("A:B:C", ("X:Y Z", "ACGT", "QUAL"), ("Q:R", "TTGG",
                                                                "LAUQ"))]
        reader = FastqReader(self.fastq1, self.fastq2)

        reads = list(reader)

        self.assertEqual(expected_reads, reads)