Exemple #1
0
def register_ncbi_table(name, alt_name, id,
                        table, start_codons, stop_codons):
    """Turns codon table data into objects, and stores them in the dictionaries (PRIVATE)."""
    #In most cases names are divided by "; ", however there is also
    #'Bacterial and Plant Plastid' (which used to be just 'Bacterial')
    names = [x.strip() for x in name.replace(" and ","; ").split("; ")]

    dna = NCBICodonTableDNA(id, names + [alt_name], table, start_codons,
                            stop_codons)

    ambig_dna = AmbiguousCodonTable(dna,
                                    IUPAC.ambiguous_dna,
                                    IUPACData.ambiguous_dna_values,
                                    IUPAC.extended_protein,
                                    IUPACData.extended_protein_values)

    # replace all T's with U's for the RNA tables
    rna_table = {}
    generic_table = {}
    for codon, val in table.iteritems():
        generic_table[codon] = val
        codon = codon.replace("T", "U")
        generic_table[codon] = val
        rna_table[codon] = val
    rna_start_codons = []
    generic_start_codons = []
    for codon in start_codons:
        generic_start_codons.append(codon)
        codon = codon.replace("T", "U")
        generic_start_codons.append(codon)
        rna_start_codons.append(codon)
    rna_stop_codons = []
    generic_stop_codons = []
    for codon in stop_codons:
        generic_stop_codons.append(codon)
        codon = codon.replace("T", "U")
        generic_stop_codons.append(codon)
        rna_stop_codons.append(codon)

    generic = NCBICodonTable(id, names + [alt_name], generic_table,
                             generic_start_codons, generic_stop_codons)

    #The following isn't very elegant, but seems to work nicely.
    _merged_values = dict(IUPACData.ambiguous_rna_values.iteritems())
    _merged_values["T"] = "U"
    ambig_generic = AmbiguousCodonTable(generic,
                                        Alphabet.NucleotideAlphabet(),
                                        _merged_values,
                                        IUPAC.extended_protein,
                                        IUPACData.extended_protein_values)

    rna = NCBICodonTableRNA(id, names + [alt_name], rna_table,
                            rna_start_codons, rna_stop_codons)

    ambig_rna = AmbiguousCodonTable(rna,
                                    IUPAC.ambiguous_rna,
                                    IUPACData.ambiguous_rna_values,
                                    IUPAC.extended_protein,
                                    IUPACData.extended_protein_values)

    if id == 1:
        global standard_dna_table, standard_rna_table
        standard_dna_table = dna
        standard_rna_table = rna

    unambiguous_dna_by_id[id] = dna
    unambiguous_rna_by_id[id] = rna
    generic_by_id[id] = generic
    ambiguous_dna_by_id[id] = ambig_dna
    ambiguous_rna_by_id[id] = ambig_rna
    ambiguous_generic_by_id[id] = ambig_generic

    if alt_name is not None:
        names.append(alt_name)

    for name in names:
        unambiguous_dna_by_name[name] = dna
        unambiguous_rna_by_name[name] = rna
        generic_by_name[name] = generic
        ambiguous_dna_by_name[name] = ambig_dna
        ambiguous_rna_by_name[name] = ambig_rna
        ambiguous_generic_by_name[name] = ambig_generic
Exemple #2
0
                                     IUPACData.extended_protein_values)
ambiguous_rna_by_id = {}
for key, val in unambiguous_rna_by_id.items():
    ambiguous_rna_by_id[key] = AmbiguousCodonTable(val,
                                     IUPAC.ambiguous_rna,
                                     IUPACData.ambiguous_rna_values,
                                     IUPAC.extended_protein,
                                     IUPACData.extended_protein_values)

#The following isn't very elegant, but seems to work nicely.
_merged_values = dict(IUPACData.ambiguous_rna_values.iteritems())
_merged_values["T"] = "U"

for key, val in generic_by_name.items():
    ambiguous_generic_by_name[key] = AmbiguousCodonTable(val,
                                     Alphabet.NucleotideAlphabet(),
                                     _merged_values,
                                     IUPAC.extended_protein,
                                     IUPACData.extended_protein_values)

for key, val in generic_by_id.items():
    ambiguous_generic_by_id[key] = AmbiguousCodonTable(val,
                                     Alphabet.NucleotideAlphabet(),
                                     _merged_values,
                                     IUPAC.extended_protein,
                                     IUPACData.extended_protein_values)
del _merged_values
del key, val

#Basic sanity test,
for n in ambiguous_generic_by_id.keys() :