Example: Bioinformatics
Here is the beginning of the string giving the genome of the SARS
virus:
CTACCCAGGAAAAGCCAACCAACCTCGATCTCTTGTAGATCTGTTCTCTAAACGAACTTTAAAATCTGTGTAGCTGTCGCTCG
GCTGCATGCCTAGTGCACCTACGCAGTATAAACAATAATAAATTTTACTGTCGTTGACAAGAAACGAGTAACTCGTCCCTCTT
CTGCAGACTGCTTACGGTTTCGTCCGTGTTGCAGTCGATCATCAGCATACCTAGGTTTCGTCCGGGTGTGACCGAAAGGTAAG
ATGGAGAGCCTTGTTCTTGGTGTCAACGAGAAAACACACGTCCAACTCAGTTTGCCTGTCCTTCAGGTTAGAGACGTGCTAGT
GCGTGGCTTCGGGGACTCTGTGGAAGAGGCCCTATCGGAGGCACGTGAACACCTCAAAAATGGCACTTGTGGTCTAGTAGAGC
TGGAAAAAGGCGTACTGCCCCAGCTTGAACAGCCCTATGTGTTCATTAAACGTTCTGATGCCTTAAGCACCAATCACGGCCAC
AAGGT...
This finds short palindromes in the SARS genome:
In[1]:=
Out[1]:=
{TCTTTCT, ACAAACA, CTCCCTC, TATTTAT, TCTTTCT, TCTTTCT, GTGGGTG,
TCTTTCT, TCTTTCT, TGTTTGT, TATTTAT, ACAAACA, ACAAACA, TATTTAT, ACAAACA, ATAAATA, TCTTTCT, TGTTTGT, ACAAACA, TATTTAT, AAAAAAA,
TTTTTTT, ATAAATA, ACAAACA, AGAAAGA, GAGGGAG, ACAAACA, AAAAAAA, AAAAAAA,
AAAAAAA}
This finds long repeats:
In[2]:= StringCases[SARS, w
: ((x_) ..) /; StringLength[w] > 5]
Out[2]:=
{CCCCCC,
GGGGGG, AAAAAAAA, TTTTTTT, TTTTTT, CCCCCC,
AAAAAAAAAAAAAAAAAAAAAAAA}
Example: Dictionary
Mathematica 5.1 comes with a 90,000-word English dictionary.
This finds all palindromic words in the dictionary.
| In[3]:= | FindWords[x__ /; x == StringReverse[x]] |
Out[3]:=
{a, aha, aka, bib, bob, boob, bub, CFC, civic, dad, dd, deed,
deified, did, dud, DVD, eke, ere, eve, ewe, eye, gag, gig, huh, I, kayak, kook, level, ma'am, madam, mam, MGM, minim, mom, mum, nan, non, noon, nun, oho, pap, peep, pep, pip, poop, pop, pup, radar, redder, refer, repaper, reviver, rotor, sagas, sees, seres, sexes, shahs, sis, solos, SOS, stats, stets, tat, tenet, tit, TNT, toot, tot, tut, wow, WWW}