Язык Wolfram Language

Обработка текста и языка

Декомпозиция строк

Изучите относительную частоту триплетов (группы из трёх последовательных нуклеотидов) в списке нуклеотидов гена.

Получите последовательность ДНК для гена человека "SCNN1A".

In[1]:=
Click for copyable input
dnasequence = GenomeData["SCNN1A", "FullSequence"];

Используйте StringPartition для создания соответствующего списка триплетов.

In[2]:=
Click for copyable input
codons = StringPartition[dnasequence, 3];
In[3]:=
Click for copyable input
Take[codons, 10]
Out[3]=

Рассчитайте относительную частоту каждого триплета в данном гене.

In[4]:=
Click for copyable input
frequencies = N[Counts[codons]/Length[codons]];

Существует 64 возможных триплета, сформированных из нуклеотидов A, C, G, T, и все они являются элементами выбранного гена.

In[5]:=
Click for copyable input
frequencies // Length
Out[5]=

Найдите три триплета с самой высокой частотой.

In[6]:=
Click for copyable input
TakeLargest[frequencies, 3]
Out[6]=

Найдите три триплета с самой низкой частотой.

In[7]:=
Click for copyable input
TakeSmallest[frequencies, 3]
Out[7]=

Визуализируйте все относительные частоты в Grid.

код на языке Wolfram Language целиком
In[8]:=
Click for copyable input
background = Thread[Rule[ Flatten[{ Outer[List, Range[1, 15, 2], {3, 4, 7, 8}], Outer[List, Range[2, 16, 2], {1, 2, 5, 6}] }, 2], GrayLevel[0.9]]]; Grid[Partition[Sequence @@@ Normal[KeySort@frequencies], 8], Spacings -> {1, 1}, Dividers -> All, Background -> {None, None, background}]
Out[8]=

Родственные примеры

de en es fr ja ko pt-br zh