def test_shift_overaligned(self): # qwertyuiopas---kkkkk------dfghjklzxcvbnm # .......... ................ gene = Gene('1', 1, 1000, strand='+') transcript = PreTranscript(exons=[(1, 12), (20, 28)], gene=gene, strand='+') for spl_patt in transcript.generate_splicing_patterns(): transcript.transcripts.append(Transcript(transcript, spl_patt)) gene.transcripts.append(transcript) read = SamRead( reference_name='1', reference_start=0, cigar=_cigar.convert_string_to_cigar('14=7D12='), query_sequence='qwertyuiopasdfghjklzxcvbnm', ) evidence = TranscriptomeEvidence( annotations={}, reference_genome={'1': MockObject(seq='qwertyuiopasdfkkkkkdfghjklzxcvbnm')}, bam_cache=MockObject(get_read_reference_name=lambda r: r.reference_name), break1=Breakpoint('1', 1, orient='L', strand='+'), break2=Breakpoint('1', 10, orient='R', strand='+'), read_length=75, stdev_fragment_size=75, median_fragment_size=220, ) evidence.overlapping_transcripts.add(transcript) new_read = evidence.standardize_read(read) assert new_read.cigar == _cigar.convert_string_to_cigar('12=7N14=')
def setUp(self): gene = Gene('1', 1, 9999, name='KRAS', strand=STRAND.POS) self.pre_transcript = PreTranscript(gene=gene, exons=[(1001, 1100), (1401, 1500), (1701, 1750), (3001, 4000)]) gene.unspliced_transcripts.append(self.pre_transcript) for spl in self.pre_transcript.generate_splicing_patterns(): self.pre_transcript.transcripts.append( Transcript(self.pre_transcript, spl)) self.annotations = {gene.chr: [gene]} self.genome_evidence = MockObject(annotations={}, read_length=100, max_expected_fragment_size=550, call_error=11) self.trans_evidence = MockObject( annotations={}, read_length=100, max_expected_fragment_size=550, call_error=11, overlapping_transcripts={self.pre_transcript}, ) setattr( self.trans_evidence, '_select_transcripts', lambda *pos: self.trans_evidence.overlapping_transcripts, ) setattr( self.trans_evidence, 'traverse', partial(TranscriptomeEvidence.traverse, self.trans_evidence), )
def trans_window_setup(): n = argparse.Namespace() gene = Gene('1', 1, 9999, name='KRAS', strand=STRAND.POS) n.pre_transcript = PreTranscript( gene=gene, exons=[(1001, 1100), (1401, 1500), (1701, 1750), (3001, 4000)] ) gene.unspliced_transcripts.append(n.pre_transcript) for spl in n.pre_transcript.generate_splicing_patterns(): n.pre_transcript.transcripts.append(Transcript(n.pre_transcript, spl)) n.annotations = {gene.chr: [gene]} n.genome_evidence = MockObject( annotations={}, read_length=100, max_expected_fragment_size=550, config={**DEFAULTS, 'validate.call_error': 11}, ) n.trans_evidence = MockObject( annotations={}, read_length=100, max_expected_fragment_size=550, overlapping_transcripts={n.pre_transcript}, config={**DEFAULTS, 'validate.call_error': 11}, ) setattr( n.trans_evidence, '_select_transcripts', lambda *pos: n.trans_evidence.overlapping_transcripts, ) setattr( n.trans_evidence, 'traverse', partial(TranscriptomeEvidence.traverse, n.trans_evidence), ) return n
def test_many_small_exons(self): g = Gene('fake', 17271277, 17279592, strand='+') pre_transcript = PreTranscript( gene=g, exons=[ (17271277, 17271984), (17272649, 17272709), (17275586, 17275681), (17275769, 17275930), (17276692, 17276817), (17277168, 17277388), # 220 (17277845, 17277888), # 44 (17278293, 17278378), # 86 (17279229, 17279592) # 364 ]) g.transcripts.append(pre_transcript) for patt in pre_transcript.generate_splicing_patterns(): pre_transcript.transcripts.append(Transcript(pre_transcript, patt)) b = Breakpoint(chr='fake', start=17279591, orient=ORIENT.LEFT) self.assertEqual(Interval(17277321, 17279701), self.transcriptome_window(b, [pre_transcript]))