Ранее я не знал о блоге Марка МакКлюра о представлении последовательностей генов в Chaos Game, но он напомнил мне статью Жозе Мануэля Гутьерреса (Mathematica Journal Vol. 9 Issue 2), которая также дает алгоритм игры в хаос для IFS с использованием (четырех оснований) последовательностей ДНК. Подробное описание можно найти здесь (оригинальная статья).
Этот метод может быть использован для получения графиков, таких как следующие. Просто, черт возьми, я включил (в панели RHS) графики, созданные с помощью соответствующей комплементарной цепи ДНК (кДНК).
- Митохондриальная ДНК мыши (LHS) и ее
комплементарная цепь (кДНК) (RHS).

Эти графики были получены из GenBank Identifier gi | 342520. Последовательность содержит 16295 оснований.
(Один из примеров, использованных Хосе Мануэлем Гутьерресом. Если кому-то интересно, графики для человеческого эквивалента могут быть сгенерированы из gi | 1262342).
- Область человеческого бета-глобина (LHS) и его кДНК (RHS)

Сгенерировано из gi | 455025 | (пример
использовал мой Марк МакКлюр). Последовательность содержит 73308 оснований
Есть довольно интересные сюжеты! (Иногда) фрактальная природа таких графиков известна, но симметрия, очевидная в версиях LHS против RHS (кДНК), была очень удивительной (по крайней мере для меня).
Приятно то, что такие графики для любой последовательности ДНК могут быть очень легко сгенерированы путем прямого импорта последовательности (скажем, из Genbank), а затем с использованием силы Mma.
Все, что вам нужно, это номер доступа! («Неизвестные» нуклеотиды, такие как «R» могут нуждаться в замене) (я использую Mma v7).
Исходное значение (слегка измененное) (Хосе Мануэль Гутьеррес)
Важное обновление
По совету Марка МакКлюра я изменил Point/@Orbit[s, Union[s]]
на Point@Orbit[s, Union[s]]
.
Это значительно ускоряет процесс. См. Комментарий Марка ниже .
Orbit[s_List, {a_, b_, c_, d_}] :=
OrbitMap[s /. {a -> {0, 0}, b -> {0, 1}, c -> {1, 0},
d -> {1, 1}}];
OrbitMap =
Compile[{{m, _Real, 2}}, FoldList[(#1 + #2)/2 &, {0, 0}, m]];
IFSPlot[s_List] :=
Show[Graphics[{Hue[{2/3, 1, 1, .5}], AbsolutePointSize[2.5],
Point @ Orbit[s, Union[s]]}], AspectRatio -> Automatic,
PlotRange -> {{0, 1}, {0, 1}},
GridLines -> {Range[0, 1, 1/2^3], Range[0, 1, 1/2^3]}]
Это дает синий график. Для зеленого измените Hue [] на Hue [{1 / 3,1,1, .5}]
Следующий код теперь генерирует первый график (для митохондриальной ДНК мыши)
IFSPlot[Flatten@
Characters@
Rest@Import[
"http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=\
nucleotide&id=342520&rettype=fasta&retmode=text", "Data"]]
Чтобы получить график кДНК, я использовал следующие правила преобразования (а также изменил настройку оттенка)
IFSPlot[ .... "Data"] /. {"A" -> "T", "T" -> "A", "G" -> "C",
"C" -> "G"}]
Спасибо Sjoerd C. de Vries и telefunkenvf14 за помощь в прямом импорте последовательностей с сайта NCBI.
Немного раскололась ради ясности.
Импорт последовательности
mouseMitoFasta=Import["http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=342520&rettype=fasta&retmode=text","Data"];
Метод, приведенный для импорта последовательностей в оригинальной статье Mathematica J. датирован.
Хороший чек
First @ mouseMitoFasta
Выход:
{>gi|342520|gb|J01420.1|MUSMTCG Mouse mitochondrion, complete genome}
Генерация списка баз
mouseMitoBases=Flatten@Characters@Rest@mouseMitoFasta
Еще несколько чеков
{Length@mouseMitoBases, Union@mouseMitoBases,Tally@mouseMitoBases}
Выход:
{16295,{A,C,G,T},{{G,2011},{T,4680},{A,5628},{C,3976}}}
Второй набор графиков был сгенерирован аналогично gi | 455025. Обратите внимание, что последовательность длинна!
{73308,{A,C,G,T},{{G,14785},{A,22068},{T,22309},{C,14146}}}
Последний пример (содержащий 265922 п.н.), также демонстрирующий захватывающую симметрию «фрактала». (Они были сгенерированы с AbsolutePointSize[1]
в IFSPlot
).
Первая строка файла fasta:
{> Г | 328530803 | гб | AFBL01000008.1 | Actinomyces sp. устный таксон 170 ул. F0386 A_spOraltaxon170F0386-1.0_Cont9.1, последовательность всего ружья}

Соответствующий участок кДНК снова показан синим цветом на RHS
Наконец, метод Марка также дает очень красивые графики (например, с помощью gi | 328530803) и может быть загружен как блокнот.