Ejemplo n.º 1
0
    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)
Ejemplo n.º 3
0
	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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
	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)
Ejemplo n.º 7
0
	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_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))
Ejemplo n.º 10
0
	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)
Ejemplo n.º 11
0
    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)
Ejemplo n.º 12
0
    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))