Alphabets#

Alphabet and MolType#

MolType instances have an Alphabet.

from cogent3 import get_moltype

dna = get_moltype("dna")
print(dna.alphabet)
protein = get_moltype("protein")
print(protein.alphabet)
('T', 'C', 'A', 'G')
('A', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'Y')

Alphabet instances reference the MolType that created them.

dna.alphabet.moltype is dna
True

Creating tuple alphabets#

You can create a tuple alphabet of, for example, dinucleotides or trinucleotides.

dinuc_alphabet = dna.alphabet.get_word_alphabet(2)
print(dinuc_alphabet)
trinuc_alphabet = dna.alphabet.get_word_alphabet(3)
print(trinuc_alphabet)
('TT', 'TC', 'TA', 'TG', 'CT', 'CC', 'CA', 'CG', 'AT', 'AC', 'AA', 'AG', 'GT', 'GC', 'GA', 'GG')
('TTT', 'TTC', 'TTA', 'TTG', 'TCT', 'TCC', 'TCA', 'TCG', 'TAT', 'TAC', 'TAA', 'TAG', 'TGT', 'TGC', 'TGA', 'TGG', 'CTT', 'CTC', 'CTA', 'CTG', 'CCT', 'CCC', 'CCA', 'CCG', 'CAT', 'CAC', 'CAA', 'CAG', 'CGT', 'CGC', 'CGA', 'CGG', 'ATT', 'ATC', 'ATA', 'ATG', 'ACT', 'ACC', 'ACA', 'ACG', 'AAT', 'AAC', 'AAA', 'AAG', 'AGT', 'AGC', 'AGA', 'AGG', 'GTT', 'GTC', 'GTA', 'GTG', 'GCT', 'GCC', 'GCA', 'GCG', 'GAT', 'GAC', 'GAA', 'GAG', 'GGT', 'GGC', 'GGA', 'GGG')

Convert a sequence into integers#

seq = "TAGT"
indices = dna.alphabet.to_indices(seq)
indices
array([0, 2, 3, 0], dtype=uint8)

Convert integers to a sequence#

seq = dna.alphabet.from_indices([0, 2, 3, 0])
seq
'TAGT'