Esempio n. 1
0
    def test_compare_bases(self):
        cluster = ClusterConsensus()

        self.assertEqual(cluster._compare_bases(['A', 'A']), 'A')
        self.assertEqual(cluster._compare_bases(['A', 'T']), 'N')
        self.assertEqual(cluster._compare_bases(['A', 'N']), 'N')
        self.assertEqual(cluster._compare_bases(['N', 'N']), 'N')
        self.assertEqual(cluster._compare_bases(['A', '-']), 'N')
        self.assertEqual(cluster._compare_bases(['-', '-']), 'N')
  def test_compare_bases(self):
    cluster = ClusterConsensus()

    self.assertEqual(cluster._compare_bases(['A', 'A']), 'A')
    self.assertEqual(cluster._compare_bases(['A', 'T']), 'N')
    self.assertEqual(cluster._compare_bases(['A', 'N']), 'N')
    self.assertEqual(cluster._compare_bases(['N', 'N']), 'N')
    self.assertEqual(cluster._compare_bases(['A', '-']), 'N')
    self.assertEqual(cluster._compare_bases(['-', '-']), 'N')
  def test_get_all_sequences(self):
    test_folder = os.path.abspath(os.path.dirname(__file__))
    test_data_path = os.path.join(test_folder, 'data', 'cluster_A_multifasta.aln')

    cluster = ClusterConsensus()
    with open(test_data_path, 'r') as input_file:
      cluster.load_fasta_file(input_file)
      sequences = cluster._get_all_sequences(cluster.sequences)

    expected = ["AAAAACAAAAA-", "ATGAACAAAA--"]
    self.assertEqual(sequences, expected)
Esempio n. 4
0
    def test_get_all_sequences(self):
        test_folder = os.path.abspath(os.path.dirname(__file__))
        test_data_path = os.path.join(test_folder, 'data',
                                      'cluster_A_multifasta.aln')

        cluster = ClusterConsensus()
        with open(test_data_path, 'r') as input_file:
            cluster.load_fasta_file(input_file)
            sequences = cluster._get_all_sequences(cluster.sequences)

        expected = ["AAAAACAAAAA-", "ATGAACAAAA--"]
        self.assertEqual(sequences, expected)
  def test_load_fasta_file(self, seqio_mock):
    cluster = ClusterConsensus()

    fake_file = StringIO("Some sequences")

    fake_sequence_generator = GeneratorMock(['AG', 'AG', 'AG'])

    seqio_mock.parse.return_value = fake_sequence_generator

    cluster.load_fasta_file(fake_file)
    seqio_mock.parse.assert_called_once_with(fake_file, 'fasta')
    self.assertEqual(cluster.sequences, fake_sequence_generator)
    self.assertEqual(fake_sequence_generator.call_count, 0)

    self.assertEqual(cluster.get_consensus(), 'AG')
    self.assertEqual(fake_sequence_generator.call_count, 3)
Esempio n. 6
0
    def test_load_fasta_file(self, seqio_mock):
        cluster = ClusterConsensus()

        fake_file = StringIO("Some sequences")

        fake_sequence_generator = GeneratorMock(['AG', 'AG', 'AG'])

        seqio_mock.parse.return_value = fake_sequence_generator

        cluster.load_fasta_file(fake_file)
        seqio_mock.parse.assert_called_once_with(fake_file, 'fasta')
        self.assertEqual(cluster.sequences, fake_sequence_generator)
        self.assertEqual(fake_sequence_generator.call_count, 0)

        self.assertEqual(cluster.get_consensus(), 'AG')
        self.assertEqual(fake_sequence_generator.call_count, 3)
  def test_calculate_consensus(self):
    cluster = ClusterConsensus()

    sequence_generator = (FakeSequence(s) for s in ['AG', 'AG', 'A'])
    self.assertRaises(ValueError, cluster._calculate_consensus, sequence_generator)

    sequence_generator = (FakeSequence(s) for s in ['AG', 'AG', 'AG'])
    self.assertEqual(cluster._calculate_consensus(sequence_generator), 'AG')

    sequence_generator = (FakeSequence(s) for s in ['AG', 'AG', 'TG'])
    self.assertEqual(cluster._calculate_consensus(sequence_generator), 'NG')

    sequence_generator = (FakeSequence(s) for s in ['AG', 'AT', 'TG'])
    self.assertEqual(cluster._calculate_consensus(sequence_generator), 'NN')

    sequence_generator = (FakeSequence(s) for s in ['AG', 'A-', 'AG'])
    self.assertEqual(cluster._calculate_consensus(sequence_generator), 'AN')
Esempio n. 8
0
    def test_get_cluster_name(self, random_mock):
        cluster = ClusterConsensus()

        cluster.output_file = StringIO()
        random_mock.return_value = 10000
        self.assertEqual(cluster._get_cluster_name(), 'cluster_10000')

        cluster.output_file = MagicMock()
        cluster.output_file.name = 'foo/bar.baz.mfa'
        self.assertEqual(cluster._get_cluster_name(), 'bar.baz')

        cluster.cluster_name = 'foo'
        self.assertEqual(cluster._get_cluster_name(), 'foo')
  def test_get_cluster_name(self, random_mock):
    cluster = ClusterConsensus()

    cluster.output_file = StringIO()
    random_mock.return_value = 10000
    self.assertEqual(cluster._get_cluster_name(), 'cluster_10000')
    
    cluster.output_file = MagicMock()
    cluster.output_file.name = 'foo/bar.baz.mfa'
    self.assertEqual(cluster._get_cluster_name(), 'bar.baz')

    cluster.cluster_name = 'foo'
    self.assertEqual(cluster._get_cluster_name(), 'foo')
Esempio n. 10
0
    def test_write_consensus(self):
        cluster = ClusterConsensus()

        cluster.output_file = StringIO()
        cluster.cluster_name = 'cluster_1000'
        cluster._calculate_consensus = MagicMock(return_value='NNANTGUNCN')

        cluster.write_consensus()

        expected_results = """\
>cluster_1000
NNANTGUNCN
"""
        cluster.output_file.seek(0)
        self.assertEqual(cluster.output_file.read(), expected_results)
Esempio n. 11
0
    def test_real_file(self):
        test_folder = os.path.abspath(os.path.dirname(__file__))
        test_data_path = os.path.join(test_folder, 'data',
                                      'cluster_A_multifasta.aln')

        cluster = ClusterConsensus()
        cluster.output_file = StringIO()
        cluster.output_file.name = "fake_filename.aln"
        with open(test_data_path, 'r') as input_file:
            cluster.load_fasta_file(input_file)
            cluster.write_consensus()

        expected_response = """\
>fake_filename
ANNAACAAAANN
"""
        cluster.output_file.seek(0)
        self.assertEqual(cluster.output_file.read(), expected_response)
Esempio n. 12
0
  def test_write_consensus(self):
    cluster = ClusterConsensus()

    cluster.output_file = StringIO()
    cluster.cluster_name = 'cluster_1000'
    cluster._calculate_consensus = MagicMock(return_value='NNANTGUNCN')

    cluster.write_consensus()

    expected_results = """\
>cluster_1000
NNANTGUNCN
"""
    cluster.output_file.seek(0)
    self.assertEqual(cluster.output_file.read(), expected_results)
Esempio n. 13
0
  def test_real_file(self):
    test_folder = os.path.abspath(os.path.dirname(__file__))
    test_data_path = os.path.join(test_folder, 'data', 'cluster_A_multifasta.aln')

    cluster = ClusterConsensus()
    cluster.output_file = StringIO()
    cluster.output_file.name = "fake_filename.aln"
    with open(test_data_path, 'r') as input_file:
      cluster.load_fasta_file(input_file)
      cluster.write_consensus()

    expected_response = """\
>fake_filename
ANNAACAAAANN
"""
    cluster.output_file.seek(0)
    self.assertEqual(cluster.output_file.read(), expected_response)
Esempio n. 14
0
    def test_calculate_consensus(self):
        cluster = ClusterConsensus()

        sequence_generator = (FakeSequence(s) for s in ['AG', 'AG', 'A'])
        self.assertRaises(ValueError, cluster._calculate_consensus,
                          sequence_generator)

        sequence_generator = (FakeSequence(s) for s in ['AG', 'AG', 'AG'])
        self.assertEqual(cluster._calculate_consensus(sequence_generator),
                         'AG')

        sequence_generator = (FakeSequence(s) for s in ['AG', 'AG', 'TG'])
        self.assertEqual(cluster._calculate_consensus(sequence_generator),
                         'NG')

        sequence_generator = (FakeSequence(s) for s in ['AG', 'AT', 'TG'])
        self.assertEqual(cluster._calculate_consensus(sequence_generator),
                         'NN')

        sequence_generator = (FakeSequence(s) for s in ['AG', 'A-', 'AG'])
        self.assertEqual(cluster._calculate_consensus(sequence_generator),
                         'AN')
Esempio n. 15
0
  def test_get_length_of_longest(self):
    cluster = ClusterConsensus()
    sequence_strings = ["AAAAA", "ATGAACAAAA--"]
    longest = cluster._get_length_of_longest(sequence_strings)

    self.assertEqual(longest, 12)
Esempio n. 16
0
    def test_get_length_of_longest(self):
        cluster = ClusterConsensus()
        sequence_strings = ["AAAAA", "ATGAACAAAA--"]
        longest = cluster._get_length_of_longest(sequence_strings)

        self.assertEqual(longest, 12)