1 # Set up the IUPAC alphabet properties
4 from Bio.PropertyManager import default_manager
5 from Bio import Alphabet
6 from Bio.Alphabet import IUPAC
7 from Bio.Data import IUPACData
9 from Bio import Transcribe, Translate
11 set_prop = default_manager.class_property
14 set_prop[IUPAC.IUPACUnambiguousDNA]["weight_table"] = \
15 IUPACData.unambiguous_dna_weights
16 set_prop[IUPAC.IUPACAmbiguousDNA]["weight_table"] = \
17 IUPACData.avg_ambiguous_dna_weights
18 set_prop[IUPAC.IUPACUnambiguousRNA]["weight_table"] = \
19 IUPACData.unambiguous_rna_weights
20 set_prop[IUPAC.IUPACAmbiguousRNA]["weight_table"] = \
21 IUPACData.avg_ambiguous_rna_weights
22 set_prop[IUPAC.IUPACProtein]["weight_table"] = \
23 IUPACData.protein_weights
24 set_prop[IUPAC.ExtendedIUPACProtein]["weight_table"] = \
25 IUPACData.avg_extended_protein_weights
27 set_prop[IUPAC.IUPACUnambiguousDNA]["weight_range_table"] = \
28 IUPACData.unambiguous_dna_weight_ranges
29 set_prop[IUPAC.IUPACAmbiguousDNA]["weight_range_table"] = \
30 IUPACData.ambiguous_dna_weight_ranges
31 set_prop[IUPAC.IUPACUnambiguousRNA]["weight_range_table"] = \
32 IUPACData.unambiguous_rna_weight_ranges
33 set_prop[IUPAC.IUPACAmbiguousRNA]["weight_range_table"] = \
34 IUPACData.ambiguous_rna_weight_ranges
35 set_prop[IUPAC.IUPACProtein]["weight_range_table"] = \
36 IUPACData.protein_weight_ranges
37 set_prop[IUPAC.ExtendedIUPACProtein]["weight_range_table"] = \
38 IUPACData.extended_protein_weight_ranges
44 set_prop[Alphabet.DNAAlphabet]["transcriber"] = \
45 Transcribe.generic_transcriber
47 set_prop[IUPAC.IUPACAmbiguousDNA]["transcriber"] = \
48 Transcribe.ambiguous_transcriber
50 set_prop[IUPAC.IUPACUnambiguousDNA]["transcriber"] = \
51 Transcribe.unambiguous_transcriber
54 set_prop[Alphabet.RNAAlphabet]["transcriber"] = \
55 Transcribe.generic_transcriber
57 set_prop[IUPAC.IUPACAmbiguousRNA]["transcriber"] = \
58 Transcribe.ambiguous_transcriber
60 set_prop[IUPAC.IUPACUnambiguousRNA]["transcriber"] = \
61 Transcribe.unambiguous_transcriber
65 for name, obj in Translate.unambiguous_dna_by_name.items():
66 property = "translator.name." + name
67 set_prop[obj.table.nucleotide_alphabet.__class__][property] = obj
68 set_prop[obj.table.protein_alphabet.__class__][property] = obj
70 for name, obj in Translate.unambiguous_rna_by_name.items():
71 property = "translator.name." + name
72 set_prop[obj.table.nucleotide_alphabet.__class__][property] = obj
73 property = "rna_translator.name." + name
74 set_prop[obj.table.protein_alphabet.__class__][property] = obj
77 for id, obj in Translate.unambiguous_dna_by_id.items():
78 property = "translator.id.%d" % id
79 set_prop[obj.table.nucleotide_alphabet.__class__][property] = obj
80 set_prop[obj.table.protein_alphabet.__class__][property] = obj
82 set_prop[obj.table.nucleotide_alphabet.__class__]["translator"] = obj
83 set_prop[obj.table.protein_alphabet.__class__]["translator"] = obj
86 for id, obj in Translate.unambiguous_rna_by_id.items():
87 property = "translator.id.%d" % id
88 set_prop[obj.table.nucleotide_alphabet.__class__][property] = obj
89 property = "rna_translator.id.%d" % id
90 set_prop[obj.table.protein_alphabet.__class__][property] = obj
92 set_prop[obj.table.nucleotide_alphabet.__class__]["translator"] = obj
93 set_prop[obj.table.protein_alphabet.__class__]["rna_translator"] = obj
95 # ambiguous translator objects
96 for name, obj in Translate.ambiguous_dna_by_name.items():
97 property = "translator.name." + name
98 set_prop[obj.table.nucleotide_alphabet.__class__][property] = obj
99 property = "ambiguous_translator.name." + name
100 set_prop[obj.table.protein_alphabet.__class__][property] = obj
102 for name, obj in Translate.ambiguous_rna_by_name.items():
103 property = "translator.name." + name
104 set_prop[obj.table.nucleotide_alphabet.__class__][property] = obj
105 property = "ambiguous_rna_translator.name." + name
106 set_prop[obj.table.protein_alphabet.__class__][property] = obj
109 for id, obj in Translate.ambiguous_dna_by_id.items():
110 property = "translator.id.%d" % id
111 set_prop[obj.table.nucleotide_alphabet.__class__][property] = obj
112 property = "ambiguous_translator.id.%d" % id
113 set_prop[obj.table.protein_alphabet.__class__][property] = obj
115 set_prop[obj.table.nucleotide_alphabet.__class__]["translator"] = obj
116 set_prop[obj.table.protein_alphabet.__class__]["ambiguous_translator"] = obj
119 for id, obj in Translate.ambiguous_rna_by_id.items():
120 property = "translator.id.%d" % id
121 set_prop[obj.table.nucleotide_alphabet.__class__][property] = obj
122 property = "ambiguous_rna_translator.id.%d" % id
123 set_prop[obj.table.protein_alphabet.__class__][property] = obj
125 set_prop[obj.table.nucleotide_alphabet.__class__]["translator"] = obj
126 set_prop[obj.table.protein_alphabet.__class__]["ambiguous_rna_translator"] = obj