Example #1
0
    def test_same_consensus(self):
        source_seqs = {('R1-seed', 'R1'): make_nuc_rows('ACACAC')}
        target_seqs = {('R1-seed', 'R1'): make_nuc_rows('ACACAC')}
        coverage_scores = [{
            'seed': 'R1-seed',
            'region': 'R1',
            'project': 'R1',
            'on.score': '4'
        }]
        sample = Sample(
            MiseqRun(target_path='run1/Results/versionX'), 'sample42',
            SampleFiles(region_consensus=source_seqs,
                        coverage_scores=coverage_scores),
            SampleFiles(region_consensus=target_seqs,
                        coverage_scores=coverage_scores))
        expected_diffs = []
        expected_scenarios = {}
        diffs = []
        scenarios = defaultdict(list)

        compare_consensus(
            sample, diffs, Scenarios.MAIN_CONSENSUS_CHANGED
            | Scenarios.OTHER_CONSENSUS_CHANGED, scenarios)

        self.assertEqual(expected_diffs, diffs)
        self.assertEqual(expected_scenarios, scenarios)
    def test_other_consensus_change(self):
        source_seqs = {('R1-seed', 'R1', '0.250'): 'ACACAC'}
        target_seqs = {('R1-seed', 'R1', '0.250'): 'ACACAT'}
        sample = Sample(MiseqRun(target_path='run1/Results/versionX'),
                        'sample42',
                        SampleFiles(),
                        SampleFiles())
        expected_diffs = ['run1:sample42 consensus: R1-seed R1 0.250',
                          '- ACACAC',
                          '?      ^',
                          '+ ACACAT',
                          '?      ^']
        expected_scenarios = {}
        diffs = []
        scenarios = defaultdict(list)

        compare_consensus(
            sample,
            source_seqs,
            target_seqs,
            diffs,
            Scenarios.NONE,
            scenarios)

        self.assertEqual(expected_diffs, diffs)
        self.assertEqual(expected_scenarios, scenarios)
Example #3
0
    def test_consensus_change_diff(self):
        source_seqs = {('R1-seed', 'R1'): make_nuc_rows('ACACAC')}
        target_seqs = {('R1-seed', 'R1'): make_nuc_rows('ACACAT')}
        coverage_scores = [{
            'seed': 'R1-seed',
            'region': 'R1',
            'project': 'R1',
            'on.score': '4'
        }]
        sample = Sample(
            MiseqRun(target_path='run1/Results/versionX'), 'sample42',
            SampleFiles(region_consensus=source_seqs,
                        coverage_scores=coverage_scores),
            SampleFiles(region_consensus=target_seqs,
                        coverage_scores=coverage_scores))
        expected_diffs = [
            'run1:sample42 consensus: R1-seed R1 MAX', '- ACACAC', '?      ^',
            '+ ACACAT', '?      ^'
        ]
        expected_scenarios = {}
        diffs = []
        scenarios = defaultdict(list)

        compare_consensus(sample, diffs, Scenarios.NONE, scenarios)

        self.assertEqual(expected_diffs, diffs)
        self.assertEqual(expected_scenarios, scenarios)
Example #4
0
    def test_consensus_trailing_change(self):
        source_seqs = {('R1-seed', 'R1'): make_nuc_rows('ACTTAC------GTAC')}
        target_seqs = {('R1-seed', 'R1'): make_nuc_rows('ACTTAC')}
        coverage_scores = [{
            'seed': 'R1-seed',
            'region': 'R1',
            'project': 'R1',
            'on.score': '4'
        }]
        sample = Sample(
            MiseqRun(target_path='run1/Results/versionX'), 'sample42',
            SampleFiles(region_consensus=source_seqs,
                        coverage_scores=coverage_scores),
            SampleFiles(region_consensus=target_seqs,
                        coverage_scores=coverage_scores))
        expected_diffs = [
            'run1:sample42 consensus: R1-seed R1 MAX', '- ACTTAC------GTAC',
            '+ ACTTAC'
        ]
        expected_consensus_distances = [
            ConsensusDistance(region='R1',
                              cutoff='MAX',
                              distance=4,
                              pct_diff=25)
        ]
        diffs = []
        scenarios = defaultdict(list)

        consensus_distances = compare_consensus(sample, diffs, Scenarios.NONE,
                                                scenarios)

        self.assertEqual(expected_diffs, diffs)
        self.assertEqual(expected_consensus_distances, consensus_distances)
    def test_one_consensus_changes(self):
        source_seqs = {
            ('R1-seed', 'R1', 'MAX'): 'ACACACGT',
            ('R2-seed', 'R2', 'MAX'): 'ACACACGT'
        }
        target_seqs = {
            ('R1-seed', 'R1', 'MAX'): 'ACACACGT',
            ('R2-seed', 'R2', 'MAX'): 'ACACAMGT'
        }
        sample = Sample(MiseqRun(target_path='run1/Results/versionX'),
                        'sample42', SampleFiles(), SampleFiles())
        expected_diffs = [
            'run1:sample42 consensus: R2-seed R2 MAX', '- ACACACGT',
            '?      ^', '+ ACACAMGT', '?      ^'
        ]
        expected_consensus_distances = [
            ConsensusDistance(region='R1',
                              cutoff='MAX',
                              distance=0,
                              pct_diff=0),
            ConsensusDistance(region='R2',
                              cutoff='MAX',
                              distance=1,
                              pct_diff=12.5)
        ]
        diffs = []
        scenarios = defaultdict(list)

        consensus_distances = compare_consensus(sample, source_seqs,
                                                target_seqs, diffs,
                                                Scenarios.NONE, scenarios)

        self.assertEqual(expected_diffs, diffs)
        self.assertEqual(expected_consensus_distances, consensus_distances)
    def test_consensus_trailing_change(self):
        source_seqs = {('R1-seed', 'R1', 'MAX'): 'ACTTAC------GTAC'}
        target_seqs = {('R1-seed', 'R1', 'MAX'): 'ACTTAC'}
        sample = Sample(MiseqRun(target_path='run1/Results/versionX'),
                        'sample42',
                        SampleFiles(),
                        SampleFiles())
        expected_diffs = ['run1:sample42 consensus: R1-seed R1 MAX',
                          '- ACTTAC------GTAC',
                          '+ ACTTAC']
        expected_consensus_distances = [ConsensusDistance(region='R1',
                                                          cutoff='MAX',
                                                          distance=4,
                                                          pct_diff=25)]
        diffs = []
        scenarios = defaultdict(list)

        consensus_distances = compare_consensus(
            sample,
            source_seqs,
            target_seqs,
            diffs,
            Scenarios.NONE,
            scenarios)

        self.assertEqual(expected_diffs, diffs)
        self.assertEqual(expected_consensus_distances, consensus_distances)
    def test_one_consensus_changes(self):
        source_seqs = {('R1-seed', 'R1', 'MAX'): 'ACACACGT',
                       ('R2-seed', 'R2', 'MAX'): 'ACACACGT'}
        target_seqs = {('R1-seed', 'R1', 'MAX'): 'ACACACGT',
                       ('R2-seed', 'R2', 'MAX'): 'ACACAMGT'}
        sample = Sample(MiseqRun(target_path='run1/Results/versionX'),
                        'sample42',
                        SampleFiles(),
                        SampleFiles())
        expected_diffs = ['run1:sample42 consensus: R2-seed R2 MAX',
                          '- ACACACGT',
                          '?      ^',
                          '+ ACACAMGT',
                          '?      ^']
        expected_consensus_distances = [ConsensusDistance(region='R1',
                                                          cutoff='MAX',
                                                          distance=0,
                                                          pct_diff=0),
                                        ConsensusDistance(region='R2',
                                                          cutoff='MAX',
                                                          distance=1,
                                                          pct_diff=12.5)]
        diffs = []
        scenarios = defaultdict(list)

        consensus_distances = compare_consensus(
            sample,
            source_seqs,
            target_seqs,
            diffs,
            Scenarios.NONE,
            scenarios)

        self.assertEqual(expected_diffs, diffs)
        self.assertEqual(expected_consensus_distances, consensus_distances)
    def test_same_consensus(self):
        source_seqs = {('R1-seed', 'R1', 'MAX'): 'ACACAC'}
        target_seqs = {('R1-seed', 'R1', 'MAX'): 'ACACAC'}
        sample = Sample(MiseqRun(target_path='run1/Results/versionX'),
                        'sample42', SampleFiles(), SampleFiles())
        expected_diffs = []
        expected_scenarios = {}
        diffs = []
        scenarios = defaultdict(list)

        compare_consensus(
            sample, source_seqs, target_seqs, diffs,
            Scenarios.MAIN_CONSENSUS_CHANGED
            | Scenarios.OTHER_CONSENSUS_CHANGED, scenarios)

        self.assertEqual(expected_diffs, diffs)
        self.assertEqual(expected_scenarios, scenarios)
    def test_other_consensus_change(self):
        source_seqs = {('R1-seed', 'R1', '0.250'): 'ACACAC'}
        target_seqs = {('R1-seed', 'R1', '0.250'): 'ACACAT'}
        sample = Sample(MiseqRun(target_path='run1/Results/versionX'),
                        'sample42', SampleFiles(), SampleFiles())
        expected_diffs = [
            'run1:sample42 consensus: R1-seed R1 0.250', '- ACACAC',
            '?      ^', '+ ACACAT', '?      ^'
        ]
        expected_scenarios = {}
        diffs = []
        scenarios = defaultdict(list)

        compare_consensus(sample, source_seqs, target_seqs, diffs,
                          Scenarios.NONE, scenarios)

        self.assertEqual(expected_diffs, diffs)
        self.assertEqual(expected_scenarios, scenarios)
    def test_same_consensus(self):
        source_seqs = {('R1-seed', 'R1', 'MAX'): 'ACACAC'}
        target_seqs = {('R1-seed', 'R1', 'MAX'): 'ACACAC'}
        sample = Sample(MiseqRun(target_path='run1/Results/versionX'),
                        'sample42',
                        SampleFiles(),
                        SampleFiles())
        expected_diffs = []
        expected_scenarios = {}
        diffs = []
        scenarios = defaultdict(list)

        compare_consensus(
            sample,
            source_seqs,
            target_seqs,
            diffs,
            Scenarios.MAIN_CONSENSUS_CHANGED | Scenarios.OTHER_CONSENSUS_CHANGED,
            scenarios)

        self.assertEqual(expected_diffs, diffs)
        self.assertEqual(expected_scenarios, scenarios)
    def test_consensus_added(self):
        source_seqs = {}
        target_seqs = {('R1-seed', 'R1', 'MAX'): 'ACTTAC'}
        sample = Sample(MiseqRun(target_path='run1/Results/versionX'),
                        'sample42', SampleFiles(), SampleFiles())
        expected_diffs = [
            'run1:sample42 consensus: R1-seed R1 MAX', '+ ACTTAC'
        ]
        expected_consensus_distances = []
        diffs = []
        scenarios = defaultdict(list)

        consensus_distances = compare_consensus(sample, source_seqs,
                                                target_seqs, diffs,
                                                Scenarios.NONE, scenarios)

        self.assertEqual(expected_diffs, diffs)
        self.assertEqual(expected_consensus_distances, consensus_distances)
    def test_consensus_added(self):
        source_seqs = {}
        target_seqs = {('R1-seed', 'R1', 'MAX'): 'ACTTAC'}
        sample = Sample(MiseqRun(target_path='run1/Results/versionX'),
                        'sample42',
                        SampleFiles(),
                        SampleFiles())
        expected_diffs = ['run1:sample42 consensus: R1-seed R1 MAX',
                          '+ ACTTAC']
        expected_consensus_distances = []
        diffs = []
        scenarios = defaultdict(list)

        consensus_distances = compare_consensus(
            sample,
            source_seqs,
            target_seqs,
            diffs,
            Scenarios.NONE,
            scenarios)

        self.assertEqual(expected_diffs, diffs)
        self.assertEqual(expected_consensus_distances, consensus_distances)
    def test_consensus_trailing_change(self):
        source_seqs = {('R1-seed', 'R1', 'MAX'): 'ACTTAC------GTAC'}
        target_seqs = {('R1-seed', 'R1', 'MAX'): 'ACTTAC'}
        sample = Sample(MiseqRun(target_path='run1/Results/versionX'),
                        'sample42', SampleFiles(), SampleFiles())
        expected_diffs = [
            'run1:sample42 consensus: R1-seed R1 MAX', '- ACTTAC------GTAC',
            '+ ACTTAC'
        ]
        expected_consensus_distances = [
            ConsensusDistance(region='R1',
                              cutoff='MAX',
                              distance=4,
                              pct_diff=25)
        ]
        diffs = []
        scenarios = defaultdict(list)

        consensus_distances = compare_consensus(sample, source_seqs,
                                                target_seqs, diffs,
                                                Scenarios.NONE, scenarios)

        self.assertEqual(expected_diffs, diffs)
        self.assertEqual(expected_consensus_distances, consensus_distances)