Exemple #1
0
    def test_concat_validates_type(self):
        """raises TypeError if not known alignment type"""
        data = [
            {
                "seq1": "AAA",
                "seq2": "AAA",
                "seq3": "AAA"
            },
            make_aligned_seqs(
                data={
                    "seq1": "TTT",
                    "seq2": "TTT",
                    "seq3": "TTT",
                    "seq4": "TTT"
                },
                moltype=DNA,
            ),
        ]
        ccat = sample.concat()
        # triggered by first record
        with self.assertRaises(TypeError):
            ccat(data)

        # triggered by second record
        with self.assertRaises(TypeError):
            ccat(data[::-1])

        # triggered by no data
        with self.assertRaises(ValueError):
            ccat([])
Exemple #2
0
 def test_concat_handles_moltype(self):
     """coerces to type"""
     alns = [
         make_aligned_seqs(data=d, moltype=DNA) for d in [
             {
                 "seq1": "AAA",
                 "seq2": "AAA",
                 "seq3": "AAA"
             },
             {
                 "seq1": "TTT",
                 "seq2": "TTT",
                 "seq3": "TTT",
                 "seq4": "TTT"
             },
             {
                 "seq1": "CC",
                 "seq2": "CC",
                 "seq3": "CC"
             },
         ]
     ]
     ccat = sample.concat()
     got = ccat(alns)
     self.assertIsInstance(got.moltype, type(DNA))
Exemple #3
0
    def test_concat(self):
        """returns concatenated alignment"""
        alns = [
            make_aligned_seqs(data=d, moltype=DNA) for d in [
                {
                    "seq1": "AAA",
                    "seq2": "AAA",
                    "seq3": "AAA"
                },
                {
                    "seq1": "TTT",
                    "seq2": "TTT",
                    "seq3": "TTT",
                    "seq4": "TTT"
                },
                {
                    "seq1": "CC",
                    "seq2": "CC",
                    "seq3": "CC"
                },
            ]
        ]
        ccat = sample.concat(intersect=True)
        got = ccat(alns)
        self.assertEqual(got.to_dict(), {
            "seq1": "AAATTTCC",
            "seq2": "AAATTTCC",
            "seq3": "AAATTTCC"
        })

        ccat = sample.concat(intersect=False)
        got = ccat(alns)
        self.assertEqual(
            got.to_dict(),
            {
                "seq1": "AAATTTCC",
                "seq2": "AAATTTCC",
                "seq3": "AAATTTCC",
                "seq4": "???TTT??",
            },
        )