def test_01(self): args = CLI([ '-m', 'egm', '--no-strand-specific-matching', '-s', '', '-o', 'test_ComparisonTriangle.test_02.output.txt' ]) experiment_a = ReadChimeraScanAbsoluteBEDPE( "tests/data/test_Functional.test_01.Example_01.bedpe", "test1") experiment_b = ReadChimeraScanAbsoluteBEDPE( "tests/data/test_Functional.test_01.Example_02.bedpe", "test2") self.assertEqual(len(experiment_a), 2) self.assertEqual(len(experiment_b), 2) genes = ParseBED("tests/data/refseq_hg19.bed", "hg19", 200000) #F[a] + F[b] = MF(A, B) mf_a = MergedFusion() for fusion in experiment_a: mf_a.add_fusion(fusion) self.assertEqual(len(mf_a), 2) #F[c] + F[d] = MF(C, D) mf_b = MergedFusion() for fusion in experiment_b: mf_b.add_fusion(fusion) self.assertEqual(len(mf_b), 2)
def test_02(self): args_a = CLI(['-m','subset','-s','']) args_b = CLI(['-m','subset','--strand-specific-matching','-s','']) ## First test the matches if strand-specific-matching is disabled (all 4 fusions should be identical) experiment_a = ReadChimeraScanAbsoluteBEDPE("tests/data/test_CompareFusionsBySpanningGenes.TestCompareFusionsBySpanningGenes.test_02_a.bedpe","TestExperimentA") experiment_b = ReadChimeraScanAbsoluteBEDPE("tests/data/test_CompareFusionsBySpanningGenes.TestCompareFusionsBySpanningGenes.test_02_b.bedpe","TestExperimentB") self.assertEqual(len(experiment_a), 4) self.assertEqual(len(experiment_b), 4) genes = ParseBED("tests/data/test_CompareFusionsBySpanningGenes.TestCompareFusionsBySpanningGenes.test_02.bed","hg18",200000) self.assertEqual(len(genes), 8) experiment_a.annotate_genes(genes) experiment_b.annotate_genes(genes) ## @todo -> remove duplicates should be done separately experiment_a.remove_duplicates(args_a) experiment_b.remove_duplicates(args_a) overlap = CompareFusionsBySpanningGenes(experiment_a,experiment_b,args_a)# No EGM, no strand-specific-matching overlapping_fusions = overlap.find_overlap() self.assertLessEqual(len(overlapping_fusions[0]), 4) ## Second, test the matches if strand-specific-matching is disabled (only the first fusion should be identical) overlap = CompareFusionsBySpanningGenes(experiment_a,experiment_b,args_b)# No EGM, but strand-specific-matching overlapping_fusions = overlap.find_overlap() self.assertLessEqual(len(overlapping_fusions[0]), 1)
def test_01(self): args = CLI(['-m','egm','--no-strand-specific-matching','-s','','-o','test_ComparisonTriangle.test_02.output.txt']) experiment_a = ReadChimeraScanAbsoluteBEDPE("tests/data/test_Functional.test_01.Example_01.bedpe","test1") experiment_b = ReadChimeraScanAbsoluteBEDPE("tests/data/test_Functional.test_01.Example_02.bedpe","test2") self.assertEqual(len(experiment_a), 2) self.assertEqual(len(experiment_b), 2) genes = ParseBED("tests/data/refseq_hg19.bed","hg19",200000) #F[a] + F[b] = MF(A, B) mf_a = MergedFusion() for fusion in experiment_a: mf_a.add_fusion(fusion) self.assertEqual(len(mf_a), 2) #F[c] + F[d] = MF(C, D) mf_b = MergedFusion() for fusion in experiment_b: mf_b.add_fusion(fusion) self.assertEqual(len(mf_b), 2) self.assertEqual(str(mf_b), "--- MergedFusion container of size 2 ---\nFusion 't2_431' (from dataset 'test2'): chr22:15465000(-)<-chr22:41929200(+)\n\nFusion 't2_223' (from dataset 'test2'): chr11:524500(-)<-chr11:62910000(+)\n----------------------------------------\n")
def test_01(self): args = CLI(['-m','subset','--no-strand-specific-matching','-s','']) experiment = ReadChimeraScanAbsoluteBEDPE("tests/data/test_FusionDetectionExperiment.TestFusionDetectionExperiment.test_01.bedpe","TestExperiment") genes = ParseBED("tests/data/test_FusionDetectionExperiment.TestFusionDetectionExperiment.test_01.bed","hg18", 200000) length_before_duplication_removal = len(experiment) experiment.annotate_genes(genes) experiment.remove_duplicates(args) length_after_duplication_removal = len(experiment) self.assertTrue(length_before_duplication_removal > length_after_duplication_removal)
def test_02(self): """ In this test we have the same breakpoint twice, but swapped the 5' and 3'. After a duplicaiton removal only one fusion should be kept. """ fusions = ReadChimeraScanAbsoluteBEDPE( "tests/data/test_Readers.TestReadChimeraScanAbsoluteBEDPE.test_02.bedbe", "RNA") j = 0 for fusion in fusions: left_break = fusion.get_left_position(True) right_break = fusion.get_right_position(True) self.failUnless(left_break[0] == 'chr4') self.assertEqual(left_break[1], 77000000) self.failUnless(right_break[0] == 'chr7') self.assertEqual(right_break[1], 20000000) j += 1 self.failUnless(j == 4)
def test_01(self): fusions = ReadChimeraScanAbsoluteBEDPE("tests/data/test_Readers.TestReadChimeraScanAbsoluteBEDPE.test_01.bedpe","RNA") i = 0 for fusion in fusions: i += 1 self.assertEqual(i, 690)
def test_02(self): experiment = ReadChimeraScanAbsoluteBEDPE("tests/data/test_FusionDetectionExperiment.TestFusionDetectionExperiment.test_02.bedpe","TestExperiment") genes = ParseBED("tests/data/test_FusionDetectionExperiment.TestFusionDetectionExperiment.test_02.bed","hg18", 200000) self.assertEqual(len(experiment), 1) experiment.annotate_genes(genes) for fusion in experiment: left_genes = fusion.get_annotated_genes_left(False) right_genes = fusion.get_annotated_genes_right(False) self.assertEqual(len(left_genes), 8) self.assertEqual(len(right_genes), 8) # Ensure all annotated gene names do NOT contain substring '_invalid' self.assertEqual(min([str(gene_name).find("_invalid") for gene_name in left_genes]) , -1) self.assertEqual(min([str(gene_name).find("_invalid") for gene_name in right_genes]) , -1)
def test_01(self): args = CLI(['-m','subset','--no-strand-specific-matching','-s','']) experiment_a = ReadChimeraScanAbsoluteBEDPE("tests/data/test_CompareFusionsBySpanningGenes.TestCompareFusionsBySpanningGenes.test_01.bedpe","TestExperimentA") experiment_b = ReadChimeraScanAbsoluteBEDPE("tests/data/test_CompareFusionsBySpanningGenes.TestCompareFusionsBySpanningGenes.test_01.bedpe","TestExperimentB") self.assertEqual(len(experiment_a), 690) self.assertEqual(len(experiment_b), 690) genes = ParseBED("tests/data/test_CompareFusionsBySpanningGenes.TestCompareFusionsBySpanningGenes.test_01.bed","hg18",200000) self.assertEqual(len(genes), 47790) experiment_a.annotate_genes(genes) experiment_b.annotate_genes(genes) experiment_a.remove_duplicates(args) experiment_b.remove_duplicates(args) overlap = CompareFusionsBySpanningGenes(experiment_a,experiment_b,args) overlapping_fusions = overlap.find_overlap() self.assertLessEqual(len(overlapping_fusions[0]), len(experiment_a))
def test_02(self): args_a = CLI(['-m', 'subset', '-s', '']) args_b = CLI(['-m', 'subset', '--strand-specific-matching', '-s', '']) ## First test the matches if strand-specific-matching is disabled (all 4 fusions should be identical) experiment_a = ReadChimeraScanAbsoluteBEDPE( "tests/data/test_CompareFusionsBySpanningGenes.TestCompareFusionsBySpanningGenes.test_02_a.bedpe", "TestExperimentA") experiment_b = ReadChimeraScanAbsoluteBEDPE( "tests/data/test_CompareFusionsBySpanningGenes.TestCompareFusionsBySpanningGenes.test_02_b.bedpe", "TestExperimentB") self.assertEqual(len(experiment_a), 4) self.assertEqual(len(experiment_b), 4) genes = ParseBED( "tests/data/test_CompareFusionsBySpanningGenes.TestCompareFusionsBySpanningGenes.test_02.bed", "hg18", 200000) self.assertEqual(len(genes), 8) experiment_a.annotate_genes(genes) experiment_b.annotate_genes(genes) ## @todo -> remove duplicates should be done separately experiment_a.remove_duplicates(args_a) experiment_b.remove_duplicates(args_a) overlap = CompareFusionsBySpanningGenes( experiment_a, experiment_b, args_a) # No EGM, no strand-specific-matching overlapping_fusions = overlap.find_overlap() self.assertLessEqual(len(overlapping_fusions[0]), 4) ## Second, test the matches if strand-specific-matching is disabled (only the first fusion should be identical) overlap = CompareFusionsBySpanningGenes( experiment_a, experiment_b, args_b) # No EGM, but strand-specific-matching overlapping_fusions = overlap.find_overlap() self.assertLessEqual(len(overlapping_fusions[0]), 1)
def test_01(self): args = CLI(['-m', 'subset', '--no-strand-specific-matching', '-s', '']) experiment_a = ReadChimeraScanAbsoluteBEDPE( "tests/data/test_CompareFusionsBySpanningGenes.TestCompareFusionsBySpanningGenes.test_01.bedpe", "TestExperimentA") experiment_b = ReadChimeraScanAbsoluteBEDPE( "tests/data/test_CompareFusionsBySpanningGenes.TestCompareFusionsBySpanningGenes.test_01.bedpe", "TestExperimentB") self.assertEqual(len(experiment_a), 690) self.assertEqual(len(experiment_b), 690) genes = ParseBED( "tests/data/test_CompareFusionsBySpanningGenes.TestCompareFusionsBySpanningGenes.test_01.bed", "hg18", 200000) self.assertEqual(len(genes), 47790) experiment_a.annotate_genes(genes) experiment_b.annotate_genes(genes) experiment_a.remove_duplicates(args) experiment_b.remove_duplicates(args) overlap = CompareFusionsBySpanningGenes(experiment_a, experiment_b, args) overlapping_fusions = overlap.find_overlap() self.assertLessEqual(len(overlapping_fusions[0]), 538) self.assertLessEqual(538, len(experiment_a))