예제 #1
0
  def test_create_features(self):
    builder = SNPFeatureBuilder()
    fake_vcf = []
    fake_vcf.append(FakeRecord(1,1,['0', '0', '1']))
    fake_vcf.append(FakeRecord(1,2,['0', '1', '2']))
    fake_vcf.append(FakeRecord(1,3,['1', '2', '0']))
    builder._get_records_from_vcf=MagicMock(return_value=fake_vcf)

    builder.create_features()

    self.assertItemsEqual(builder.features.keys(), ['sample_0', 'sample_1',
                                                    'sample_2'])
    self.assertEqual(builder.features['sample_0'], [0,0,1])
    self.assertEqual(builder.features['sample_1'], [0,1,1])
    self.assertEqual(builder.features['sample_2'], [1,1,0])
    self.assertEqual(builder.feature_labels, ['SNP:1:1', 'SNP:1:2', 'SNP:1:3'])

    fake_vcf = [FakeRecord(2,1,['1', '0'])]
    builder._get_records_from_vcf=MagicMock(return_value=fake_vcf)

    builder.create_features()

    self.assertItemsEqual(builder.features.keys(), ['sample_0', 'sample_1'])
    self.assertEqual(builder.features['sample_0'], [1])
    self.assertEqual(builder.features['sample_1'], [0])
    self.assertEqual(builder.feature_labels, ['SNP:2:1'])
예제 #2
0
  def test_get_records_from_vcf(self):
    builder = SNPFeatureBuilder()

    fasta_filename = os.path.join(test_data(), 'file_with_SNPs.aln')
    fasta_file = open(fasta_filename, 'r')

    builder.load_fasta_sequences(fasta_file)
    builder.create_vcf_from_sequences()

    records = builder._get_records_from_vcf()
    number_of_records = sum((1 for record in records))
    self.assertEqual(number_of_records, 5)

    records = builder._get_records_from_vcf()
    number_of_records = sum((1 for record in records))
    self.assertEqual(number_of_records, 5)