Package Bio :: Package Encodings :: Module IUPACEncoding
[hide private]
[frames] | no frames]

Source Code for Module Bio.Encodings.IUPACEncoding

  1  # Set up the IUPAC alphabet properties 
  2   
  3   
  4  from Bio.PropertyManager import default_manager 
  5  from Bio import Alphabet 
  6  from Bio.Alphabet import IUPAC 
  7  from Bio.Data import IUPACData 
  8   
  9  from Bio import Transcribe, Translate 
 10   
 11  set_prop = default_manager.class_property 
 12   
 13  # weight tables 
 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 
 26   
 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 
 39   
 40   
 41   
 42  #  transcriber objects 
 43   
 44  set_prop[Alphabet.DNAAlphabet]["transcriber"] = \ 
 45               Transcribe.generic_transcriber 
 46   
 47  set_prop[IUPAC.IUPACAmbiguousDNA]["transcriber"] = \ 
 48               Transcribe.ambiguous_transcriber 
 49   
 50  set_prop[IUPAC.IUPACUnambiguousDNA]["transcriber"] = \ 
 51               Transcribe.unambiguous_transcriber 
 52   
 53   
 54  set_prop[Alphabet.RNAAlphabet]["transcriber"] = \ 
 55               Transcribe.generic_transcriber 
 56   
 57  set_prop[IUPAC.IUPACAmbiguousRNA]["transcriber"] = \ 
 58               Transcribe.ambiguous_transcriber 
 59   
 60  set_prop[IUPAC.IUPACUnambiguousRNA]["transcriber"] = \ 
 61               Transcribe.unambiguous_transcriber 
 62   
 63   
 64  # translator objects 
 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 
 69   
 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 
 75   
 76   
 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 
 81      if id == 1: 
 82          set_prop[obj.table.nucleotide_alphabet.__class__]["translator"] = obj 
 83          set_prop[obj.table.protein_alphabet.__class__]["translator"] = obj 
 84   
 85   
 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 
 91      if id == 1: 
 92          set_prop[obj.table.nucleotide_alphabet.__class__]["translator"] = obj 
 93          set_prop[obj.table.protein_alphabet.__class__]["rna_translator"] = obj 
 94   
 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 
101   
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 
107   
108   
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 
114      if id == 1: 
115          set_prop[obj.table.nucleotide_alphabet.__class__]["translator"] = obj 
116          set_prop[obj.table.protein_alphabet.__class__]["ambiguous_translator"] = obj 
117   
118   
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 
124      if id == 1: 
125          set_prop[obj.table.nucleotide_alphabet.__class__]["translator"] = obj 
126          set_prop[obj.table.protein_alphabet.__class__]["ambiguous_rna_translator"] = obj 
127