示例#1
0
    def test_read_sample_data(self):
        schema = self.__get_example_schema("vcf_example.vcf")
        sample_schema = [key for key, _ in schema.iter_sample_data()]

        sample_data = SampleData(sample_schema, ['sample1'])

        sample_data.add_sample_data("sample1", "GT", GenotypeCall("1|0"))
        sample_data.add_sample_data("sample1", "PL", [3000, 0, 3000])
        sample_data.add_sample_data("sample1", "GQ", [1000])
        sample_data.add_sample_data("sample1", "PQ", [2000])
        sample_data.add_sample_data("sample1", "PS", [60000])
        sample_data.add_sample_data("sample1", "AD", [140, 110])
        sample_data.add_sample_data("sample1", "DP", [250])
        sample_data.add_sample_data("sample1", "VAF", [0.4])

        self.assertTrue(sample_data.has_sample("sample1"))
        self.assertEqual(sample_data.genotypes(),
                         {"sample1": GenotypeCall("1|0")})
        self.assertEqual(sample_data.get_field("sample1", 'GT'),
                         GenotypeCall("1|0"))
        self.assertEqual(sample_data.get_field("sample1", 'PL'),
                         [3000, 0, 3000])

        genotype_data = sample_data.get_genotype_data("sample1")
        self.assertEqual(genotype_data.genotype(), GenotypeCall("1|0"))
        self.assertEqual(genotype_data['GT'], GenotypeCall("1|0"))
        self.assertEqual(genotype_data['PL'], [3000, 0, 3000])
示例#2
0
    def test_should_return_default_diploid_genotype(self):
        sample_data = SampleData(['GT', 'GL'], ["NA12878"])

        self.assertEqual(GenotypeCall("./."), GenotypeCall("./."))

        self.assertTrue(sample_data.has_sample("NA12878"))
        self.assertEqual(sample_data.genotypes(),
                         {"NA12878": GenotypeCall("./.")})
        self.assertEqual(sample_data.get_field("NA12878", 'GT'),
                         GenotypeCall("./."))
        self.assertEqual(sample_data.get_field("NA12878", 'GL'), [])

        genotype_data = sample_data.get_genotype_data("NA12878")
        self.assertEqual(genotype_data.genotype(), GenotypeCall("./."))
        self.assertEqual(genotype_data['GT'], GenotypeCall("./."))
        self.assertEqual(genotype_data['GL'], [])
示例#3
0
class TestGenotypeDataView(unittest.TestCase):
    def setUp(self):
        self.sample_data = SampleData(['GT', 'key'],
                                      ['sample_name1', 'sample_name2'])
        self.sample_data.add_sample_data("sample_name1", "key", [1, 2])
        self.sample_data.add_sample_data("sample_name2", "GT",
                                         GenotypeCall("0/1"))

    def test_contains_method_returns_expected_value_sample1(self):
        genotype_data = self.sample_data.get_genotype_data("sample_name1")
        self.assertNotIn("cheesecake", genotype_data)
        self.assertNotIn("sample_name1", genotype_data)
        self.assertIn("GT", genotype_data)
        self.assertIn("key", genotype_data)

    def test_contains_method_returns_expected_value_sample2(self):
        genotype_data = self.sample_data.get_genotype_data("sample_name2")
        self.assertIn("GT", genotype_data)
        self.assertIn("key", genotype_data)

    def test_getitem_method_returns_expected_value(self):
        genotype_data = self.sample_data.get_genotype_data("sample_name1")
        self.assertEqual(genotype_data["GT"], GenotypeCall("./."))
        self.assertEqual(genotype_data["key"], [1, 2])
        genotype_data = self.sample_data.get_genotype_data("sample_name2")
        self.assertEqual(genotype_data["GT"], GenotypeCall("0/1"))
        self.assertEqual(genotype_data["key"], [])

    def test_keys_method_returns_expected_data(self):
        genotype_data = self.sample_data.get_genotype_data("sample_name1")
        self.assertEqual(list(genotype_data.keys()), ["GT", "key"])
        genotype_data = self.sample_data.get_genotype_data("sample_name2")
        self.assertEqual(list(genotype_data.keys()), ["GT", "key"])

    def test_values_method_returns_expected_data(self):
        genotype_data = self.sample_data.get_genotype_data("sample_name1")
        self.assertEqual(list(genotype_data.values()),
                         [GenotypeCall("./."), [1, 2]])
        genotype_data = self.sample_data.get_genotype_data("sample_name2")
        self.assertEqual(list(genotype_data.values()),
                         [GenotypeCall("0/1"), []])