Alphabets#

Alphabet and MolType#

MolType instances have an Alphabet.

from cogent3 import DNA, PROTEIN

print(DNA.alphabet)
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 have a MolType.

PROTEIN.alphabet.moltype == PROTEIN
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'