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'
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'