def setUp(self): self.aln_file = [TEST_ALIGN_FILE1, TEST_ALIGN_FILE2, TEST_ALIGN_FILE3, TEST_ALIGN_FILE4, TEST_ALIGN_FILE5, TEST_ALIGN_FILE6] alns = [] for i in self.aln_file: if i[1] == 'parse': nucl = SeqIO.parse(i[0][0], 'fasta', alphabet=IUPAC.IUPACUnambiguousDNA()) prot = AlignIO.read(i[0][1], 'clustal', alphabet=IUPAC.protein) with warnings.catch_warnings(): warnings.simplefilter('ignore') caln = CodonAlign.build(prot, nucl, alphabet=CodonAlign.default_codon_alphabet) elif i[1] == 'index': nucl = SeqIO.index(i[0][0], 'fasta', alphabet=IUPAC.IUPACUnambiguousDNA()) prot = AlignIO.read(i[0][1], 'clustal', alphabet=IUPAC.protein) with warnings.catch_warnings(): warnings.simplefilter('ignore') caln = CodonAlign.build(prot, nucl, alphabet=CodonAlign.default_codon_alphabet, max_score=20) elif i[1] == 'id': nucl = SeqIO.parse(i[0][0], 'fasta', alphabet=IUPAC.IUPACUnambiguousDNA()) prot = AlignIO.read(i[0][1], 'clustal', alphabet=IUPAC.protein) with open(i[0][2]) as handle: id = dict((i.split()[0], i.split()[1]) for i in handle) with warnings.catch_warnings(): warnings.simplefilter('ignore') caln = CodonAlign.build(prot, nucl, corr_dict=id, alphabet=CodonAlign.default_codon_alphabet) alns.append(caln) nucl.close() # Close the indexed FASTA file self.alns = alns
def setUp(self): codonseq1 = CodonAlign.CodonSeq('AAATTT---TTTGGACCC', CodonAlign.default_codon_alphabet) codonseq2 = CodonAlign.CodonSeq('AAGTTT---TTTGGGCCC', CodonAlign.default_codon_alphabet) codonseq3 = CodonAlign.CodonSeq('AAGTAT---TTTGGACCC', CodonAlign.default_codon_alphabet) codonseq4 = CodonAlign.CodonSeq('AACTTT---TTTGGACGC', CodonAlign.default_codon_alphabet) self.seqrec = [SeqRecord(codonseq1, id="alpha"), SeqRecord(codonseq2, id="beta" ), SeqRecord(codonseq3, id="gamma"), SeqRecord(codonseq4, id="delta")]
def test_mk(self): ver = sys.version_info if ver[0] == 2 and ver[1] == 6: warnings.warn('Python 2.6 detected. Skip testing MK method') pass else: from run_tests import is_numpy if is_numpy(): p = SeqIO.index(TEST_ALIGN_FILE7[0][0], 'fasta', alphabet=IUPAC.IUPACUnambiguousDNA()) pro_aln = AlignIO.read(TEST_ALIGN_FILE7[0][1], 'clustal', alphabet=IUPAC.protein) codon_aln = CodonAlign.build(pro_aln, p) self.assertAlmostEquals(round(CodonAlign.mktest([codon_aln[1:12], codon_aln[12:16], codon_aln[16:]]), 4), 0.0021, places=4) else: warnings.warn('Numpy not installed. Skip MK test.')
def test_mk(self): p = SeqIO.index(TEST_ALIGN_FILE7[0][0], 'fasta', alphabet=IUPAC.IUPACUnambiguousDNA()) pro_aln = AlignIO.read(TEST_ALIGN_FILE7[0][1], 'clustal', alphabet=IUPAC.protein) codon_aln = CodonAlign.build(pro_aln, p) p.close() # Close indexed FASTA file self.assertAlmostEqual(round( CodonAlign.mktest( [codon_aln[1:12], codon_aln[12:16], codon_aln[16:]]), 4), 0.0021, places=4)
def setUp(self): nucl = SeqIO.parse(TEST_ALIGN_FILE6[0][0], 'fasta', alphabet=IUPAC.IUPACUnambiguousDNA()) prot = AlignIO.read(TEST_ALIGN_FILE6[0][1], 'clustal', alphabet=IUPAC.protein) with open(TEST_ALIGN_FILE6[0][2]) as handle: id_corr = dict((i.split()[0], i.split()[1]) for i in handle) aln = CodonAlign.build(prot, nucl, corr_dict=id_corr, alphabet=CodonAlign.default_codon_alphabet) self.aln = aln
def test_seq(self): codonseq1 = CodonAlign.CodonSeq('AAATTT---TTTGGACCC', rf_table=[0,3,6,9,12]) self.assertEqual(len(codonseq1), 18) self.assertEqual(codonseq1.get_codon_num(), 5) self.assertEqual(str(codonseq1.get_codon(0)), 'AAA') self.assertEqual(str(codonseq1.get_codon(-1)), 'CCC') self.assertEqual(str(codonseq1.get_codon(slice(1,3))), 'TTT---') self.assertEqual(str(codonseq1.get_codon(slice(None,None,-1))), 'CCCGGATTT---TTTAAA') self.assertRaises(ValueError, CodonAlign.CodonSeq, 'AAA-TT') self.assertRaises(AssertionError, CodonAlign.CodonSeq, 'AAA-T') self.assertRaises(ValueError, CodonAlign.CodonSeq, 'YVVRRDQQQ') self.assertTrue(isinstance(codonseq1.toSeq(), Seq))
def test_mk(self): ver = sys.version_info if ver[0] == 2 and ver[1] == 6: warnings.warn('Python 2.6 detected. Skip testing MK method') pass else: from run_tests import is_numpy if is_numpy(): p = SeqIO.index(TEST_ALIGN_FILE7[0][0], 'fasta', alphabet=IUPAC.IUPACUnambiguousDNA()) pro_aln = AlignIO.read(TEST_ALIGN_FILE7[0][1], 'clustal', alphabet=IUPAC.protein) codon_aln = CodonAlign.build(pro_aln, p) self.assertAlmostEquals(round( CodonAlign.mktest( [codon_aln[1:12], codon_aln[12:16], codon_aln[16:]]), 4), 0.0021, places=4) else: warnings.warn('Numpy not installed. Skip MK test.')
def test_align(self): codonAlign = CodonAlign.CodonAlignment(self.seqrec) self.assertEqual(codonAlign.get_aln_length(), 6) self.assertTrue( isinstance(codonAlign.toMultipleSeqAlignment(), MultipleSeqAlignment))
def test_build(self): codon_aln1 = CodonAlign.build(self.aln1, self.seqlist1) codon_aln2 = CodonAlign.build(self.aln2, self.seqlist2)
def test_mk(self): p = SeqIO.index(TEST_ALIGN_FILE7[0][0], 'fasta', alphabet=IUPAC.IUPACUnambiguousDNA()) pro_aln = AlignIO.read(TEST_ALIGN_FILE7[0][1], 'clustal', alphabet=IUPAC.protein) codon_aln = CodonAlign.build(pro_aln, p) p.close() # Close indexed FASTA file self.assertAlmostEqual(round(CodonAlign.mktest([codon_aln[1:12], codon_aln[12:16], codon_aln[16:]]), 4), 0.0021, places=4)