예제 #1
0
    def test_snv_prot_change_annotator():
        'It test the snv_prot_changepolia annotator'
        # first annotate orf
        seq  = 'ATGGCTTCATCCATTCTCTCATCCGCCGNTGTGGCCTTTGNCAACAGGGCTTCCCCTGCTCA'
        seq += 'AGCTAGCATGGGGGCACCATTCACTGGCCTAAAATCCGCCGCTGCTTTCCCNGTTTTATGTA'
        seq += 'CTGTTTTNACTCGCANGACCAACGACATCACCACTTTGGTTAGCAATGGGGGAAGAGTTCAG'
        seq += 'GGCNTGAAGGTGTGCCCACCACTTGGATTGAAGAAGTTCGAGACTCTTTCTTACCTTCCTGA'
        seq += 'TATGAGTAACGAGCAATTGGGAAAGGAAGTTGACTACCTTCTCAGGAAGGGATGGATTCCCT'
        seq += 'GCATTGAATTCGACATTCACAGTGGATTCGTTTACCGTGAGACCCACAGGTCACCAGGATAC'
        seq += 'TTCGATGGACGCTACTGGACCATGTGGAAGCTGCCCATGTTTGGCTGCACCGAT'

        orf  = 'ATGGCTTCATCCATTCTCTCATCCGCCGNTGTGGCCTTTGNCAACAGGGCTTCCCTGCTCAA'
        orf += 'GCTAGCATGGGGGCACCATTCACTGGCCTAAAATCCGCCGCTGCTTTCCCNGTNACTCGCAN'
        orf += 'GACCAACGACATCACCACTTTGGTTAGCAATGGGGGAAGAGTTCAGGGCNTGAAGGTGTGCC'
        orf += 'CACCACTTGGATTGAAGAAGTTCGAGACTCTTTCTTACCTTCCTGATATGAGTAACGAGCAA'
        orf += 'TTGGGAAAGGAAGTTGACTACCTTCTCAGGAAGGGATGGATTCCCTGCATTGAATTCGACAT'
        orf += 'TCACAGTGGATTCGTTTACCGTGAGACCCACAGGTCACCAGGATACTTCGATGGACGCTAC'
        orf += 'TGGACCATGTGGAAGCTGCCCATGTTTGGCTGCACCGAT'

        qualifiers = {'strand':'forward', 'dna':Seq(orf), 'prot':'prot'}
        feature = SeqFeature(location=FeatureLocation(0, len(seq)), type='orf',
                             qualifiers=qualifiers)
        alleles = {('A', SNP): None, ('G', INVARIANT):None}
        snv = SeqFeature(location=FeatureLocation(24, 24), type='snv',
                          qualifiers = {'alleles':alleles})
        alleles = {('A', SNP): None, ('T', INVARIANT):None}
        snv2 = SeqFeature(location=FeatureLocation(56, 56), type='snv',
                          qualifiers = {'alleles':alleles})
        alleles = {('T', SNP): None, ('A', INVARIANT):None}
        snv3 = SeqFeature(location=FeatureLocation(399, 399), type='snv',
                          qualifiers = {'alleles':alleles})
        alleles = {('T', INVARIANT):None, ('AG', INSERTION):None}
        snv4 = SeqFeature(location=FeatureLocation(250, 250), type='snv',
                          qualifiers = {'alleles':alleles})
        alleles = {('G', INVARIANT):None, ('--', DELETION):None}
        snv5 = SeqFeature(location=FeatureLocation(251, 251), type='snv',
                          qualifiers = {'alleles':alleles})



        sequence = SeqWithQuality(seq=Seq(seq), name='query')
        #print str(sequence[257:265].seq)
        #print sequence[256]
        sequence.features = [feature, snv, snv2, snv3, snv4, snv5]
        annotator = create_prot_change_annotator()
        annotator(sequence)
        [feature, snv, snv2, snv3, snv4, snv5] = sequence.features
        assert snv.qualifiers['protein_change']['kind'] == 'substitution'
        assert snv3.qualifiers['protein_change']['kind'] == 'substitution'
        assert snv4.qualifiers['protein_change']['kind'] == 'breakage'
#
        assert snv.qualifiers['protein_change']['location'] == 'codon_1'
예제 #2
0
    def test_remove_annotations():
        'It test ermove annotations from seq_with quality'
        seq = SeqWithQuality(Seq('actg'), qual=[30, 30, 30, 30])
        seq.description = 'Description'
        annotations = {'arabidopsis-orthologs':'justone',
                       'GOs':'GO12345',
                       }
        snv = SeqFeature(location=FeatureLocation(4, 4), type='snv')
        intron = SeqFeature(location=FeatureLocation(4, 4), type='intron')
        orf = SeqFeature(location=FeatureLocation(4, 4), type='orf')
        ssr = SeqFeature(location=FeatureLocation(4, 4), type='microsatellite')
        features = [snv, intron, orf, ssr]
        seq.annotations = annotations
        seq.features    = features
        seq.remove_annotations('GOs')
        seq.remove_annotations('orthologs')
        assert seq.annotations == {}
        seq.remove_annotations('snv')
        seq.remove_annotations('intron')
        seq.remove_annotations('microsatellite')
        seq.remove_annotations('orf')
        seq.remove_annotations('description')
        assert seq.features == []
        assert seq.description == UNKNOWN_DESCRIPTION

        # remome snv filters
        seq = SeqWithQuality(Seq('actg'), qual=[30, 30, 30, 30])
        seq.description = 'Description'
        filters = {'not_intron':True, 'puff':False}
        snv = SeqFeature(location=FeatureLocation(4, 4), type='snv',
                         qualifiers={'alleles':'alleles',
                                     'filters':filters})
        seq.features = [snv]

        seq.remove_annotations('snv_filters')

        assert seq.features[0].qualifiers['filters'] == {}
        assert seq.features[0].qualifiers['alleles'] == 'alleles'