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])
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'], [])
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"), []])