Lista ,,bioinformatycznych'' instrukcji programu Mathematica
Poniżej podaję listę funkcji przydatnych przy rozwiązywaniu
zagadnień z bioinformatyki
Spis treści
- Zintegrowane bazy danych
- Operacje na listach
- Operacje na łańcuchach tekstowych
- Proste pętle (automatyzacja czynności)
- Zapisywanie i odczytywanie (na dysku, z internetu)
- Dopasowywanie i odległość sekwencji
- Grupowanie obiektów (clustering)
- Inne przydatne polecenia
Powrót do bioinformatyki
-
-
- Nazwa instrukcji: GenomeData
- Opis: : dane (w szczególności sekwencje DNA) dotyczące genomu ludzkiego
- Przykłady:
GenomeData[] (zwraca listę nazw wszystkich dostępnych genów)
GenomeData["Properties"] (zwraca listę wszystkich rekordów w bazie danych)
GenomeData["HOX*"] (zwraza listę nazw wszystkich genów,
których nazwy zaczynają się od HOX)
GenomeData["VTN"] (zwraca łańcuch znaków odpowiadający sekwencji DNA
genu o nazwie VTN)
GenomeData["VTN", "Chromosome"] (podaje w którym chromosomie znajduje się gen
o nazwie VTN)
-
- Nazwa instrukcji: ProteinData
- Opis: : dane (sekwencje nukleotydów, struktura 2,4 i 4 rzędowa)
dotyczące białek
- Przykłady:
ProteinData["APC"] (sekwencja aminokwasów, czyli struktura pierwszorzędowa
APC )
ProteinData["APC", "MoleculePlot"] (struktura przestrzenna APC)
ProteinData["APC", "SecondaryStructureRules"] ( struktura drugorzędowa)
-
- Nazwa instrukcji: ChemicalData
- Opis: : własności związków chemicznych
- Przykłady:
ChemicalData["AminoAcids"] (lista nazw aminokwasów)
ChemicalData["AminoAcids","Codons"] (standardowy kod genetyczny)
ChemicalData["LTyrosine"] (wzór strukturalny tyrozyny)
ChemicalData["Water", "Density"] (gęstość wody)
Pełna dokumentacja
-
-
- Nazwa instrukcji:
List , skrót: {,}
- Opis: : tworzy listę różnych elementów, podstawową złożoną strukturę
(jest to struktura podobna do matematycznego pojęcia zbioru, ale jego elementy
są ponumerowane)
- Przykłady:
{"TGA","TAA","TAG"}
{dna1,dna2,dna3}
{"Ala","A", alanina }
-
- Nazwa instrukcji:
Part , skrót: [[ ]]
- Opis: : wybiera z listy element znajdujący się na podanej pozycji
- Przykłady: ( przyklad = {"C", "G", "T", "A"} )
przyklad[[3]] (trzeci element z listy zapisanej pod nazwą ,,przyklad'', czyli "T")
przyklad[[-1]] (ostatni element listy, ujemne indeksy oznaczają czytanie listy ,,od tyłu'')
{przykład[[1]], przykład[[4]]} (dwuelementowa lista zawierająca 1 i 4 element innej listy)
-
- Nazwa instrukcji:
Span , skrót: [[ poczatek;;koniec ]]
- Opis: : wybranie z listy elementów zaczynając od pozycji ,,początek'' i kończąc na pozycji ,,koniec''
- Przykłady:
przyklad[[2;;4]] (elementy listy od drugiego do czwartego;
wynikiem jest więc lista trójelementowa
- Nazwa instrukcji:
Length
- Opis: : długość (czyli ilość elementów) listy jednowymiarowej
- Przykłady:
Length[{"A","C","G","T"}] (ilość elementów listy czteroelementowej, czyli 4)
Length@{"A","C","G","T"} (inny sposób zastosowania polecenia Length do listy)
{"A","C","G","T"} // Length (jeszcze inny sposób zastosowania polecenia Length do listy
- Nazwa instrukcji:
Dimensions
- Opis: : wymiary złożonych list, macierzy itp.
- Przykłady:
Dimensions[{"A","C","G","T"}] (wymiary listy jednowymiarowej)
Dimensions[{{"A","C","G","T"},{"A","G","C","U"}}]
(wymiary listy złożonej z dwóch list czteroelementowych, 2x4)
-
-
- Nazwa instrukcji:
StringCount
- Opis: : oblicza ile razy w danym łańcuchu tekstowym pojawia się
inny, np. ile razy w ,,Panu Tadeuszu'' pojawia się słowo ,,zdrowie''
- Przykłady:
StringCount["gumiany gumiak","gum"]
(ile razy w tekście ,,gumiany gumiak'' pojawia się ciąg znaków ,,gum'')
StringCount["AAAAAACAAAACACACCCAACACATATATAATGAATGAGTG","TATA"]
(ile razy w podanym ciągu nukleotydów pojawia się sekwencja ,,TATA'')
StringCount[GenomeData["HOXA1"],"A"] (ile razy "A" występuje
w sekwencji DNA ludzkiego genu o nazwie ,,HOXA1'')
-
- Nazwa instrukcji:
StringSplit
- Opis: : dzieli (tnie) łańcuch tekstowy na mniejsze wg. podanych kryteriów
- Przykłady:
StringSplit["AAAAAACACCACAC",""] (dzieli sekwencję na pojedyncze
znaki tworząc ich listę)
StringSplit[dna,"TAATAA"] (tnie sekwencję w miejscach
w których występuje "TAATAA")
StringSplit[s, {"TAA" -> "!STOP!"}] (tnie sekwencję s
w każdym miejscu gdzie znajduje się "TAA" i wstawia zamiast niego
do listy "!STOP!")
-
- Nazwa instrukcji:
StringLength
- Opis: : oblicza długość łńcucha tekstowego
- Przykłady:
StringLength["ACACACCACACAACAACACAC"] (oblicza długość podanej
sekwencji; inaczej mówiąc podaje ile jest w niej znaków (nukleotydów)
)
StringLength[GenomeData["HOXA1"]] (oblicza długość sekwencji DNA genu "HOXA1")
-
- Nazwa instrukcji:
StringJoin , skrót: <>
- Opis: : skleja łańcuchy tekstowe
- Przykłady:
{"A","A","C","G","G","T","T"} // StringJoin
(konwertuje listę znaków na łańcuch tekstowy)
"TAA" <> "TGA" <>"TAA" (skleja trzy podane kodony w jedną sekwencję)
dna1 <> "TGA" (dokleja "TGA" do sekwencji zapamiętanej pod nazwą
dna1)
"C://temp//"<>"Andrzej.Odrzywolek_"<>ToString[6]<>".txt"
(tworzy z kawałków nazwę pliku "C://temp//Andrzej.Odrzywolek_6.txt")
StringJoin[ {"A","A","C","G","G","T","T"} ]
(inne wykonanie przykładu pierwszego)
-
-
- Nazwa instrukcji:
Table
- Opis: : generuje listę elementów
- Przykłady:
Table[i, {i,1,100}] (generuje listę liczb od 1 do 100)
Table[i, {i,1,100,10}](generuje listę liczb od 1 do 100 co 10)
Table[i^2, {i,1,10,2}](generuje listę kwadratów liczb od 1 do 10 z krokiem 2)
Table[{i,i^2}, {i,1,10,2}] (generuje listę liczb i kwadratów liczb od 1 do 10 z krokiem 2)
Table[s[[i]], {i,1,Length[s],3}]
(generuje listę co trzeciego elementu listy s; ilość elementów
listy jest obliczana poleceniem Length dzięki czemu nie musimy
z góry wiedzieć ile posiada ona elementów)
Table[dna[[i;;i+2]], {i,1,99,3}]
(generuje listę trójek elementów listy zapamiętanej pod nazwą
dna, od 1 do 99 co trzeci element)
-
- Nazwa instrukcji:
For
- Opis: : zaczynając od wartości startowych wykonuje instrukcje
do momentu spełnienia podanych warunków
- Przykłady:
For[i = 0, i @lt; 10, i++, Print[i]] (zaczynając od i=0,
do momentu gdy i < 10, zwiększ i o jeden (i++)
i wypisz (Print) wartośc i)
For[i = 0; l = {}, i < 10, i++, AppendTo[l, i]] (wypełnij pustą początkowo
listę l ( l={} ) kolejnymi liczbami dodając po jednym ( AppendTo)
)
-
- Nazwa instrukcji: While
- Opis: : wykonuj podane instrukcje tak długo jak podany warunek jest prawdziwy
- Przykłady:
i = 0; While[i < 10, i++]; Print[i] (zaczynając od zera zwiększaj
i o jeden aż do momentu w którym stanie się większe lub równe 10)
-
-
- Nazwa instrukcji: Import
- Opis: :
- Przykłady:
Import["https://th.if.uj.edu.pl/~odrzywolek/bioinfo/gnm.txt"] (pobranie pliku tekstowego z adresu sieciowego)
Import["https://www.rcsb.org/pdb/files/" <> "3gjl" <> ".pdb.gz",
"PDB"] (pobierz ze strony rcsb.org skompresowany
plik (.gz) w formacie ProteinDataBank, "PDB" )
Import["Z:\\zad1.m"] (wczytaj z dysku Z: zapisane wcześniej
za pomocą Export elementy rozwiązania ,,zad1'')
-
- Nazwa instrukcji:
Export
- Opis: : zapisuje wyniki w wybranym formacie
- Przykłady:
Export["E:\\temp\\dna.txt", GenomeData["HOXA1"]] (zapisz na dysku E:
w katalogu temp sekwencję DNA genu o nazwie "HOXA1" jako plik tekstowy)
Export["E:\\temp\\dna.m", StringSplit[GenomeData["HOXA1"], ""]]
(jak wyżej, ale zapisujemy listę pojedynczych nukleotydów w formacie
Mathematici (.m) )
-
-
-
- Nazwa instrukcji: SequenceAlignment
- Opis:
- Przykłady:
(przyklad1)
(przyklad2)
(przyklad3)
-
- Nazwa instrukcji: SmithWatermanSimilarity
- Opis: :
- Przykłady:
(przyklad1)
(przyklad2)
(przyklad3)
-
- Nazwa instrukcji: NeedlemanWunschSimilarity
- Opis: :
- Przykłady:
(przyklad1)
(przyklad2)
(przyklad3)
-
- Nazwa instrukcji: EditDistance
- Opis: :
- Przykłady:
(przyklad1)
(przyklad2)
(przyklad3)
-
- Nazwa instrukcji: SimilarityRules
- Opis: :
- Przykłady:
(przyklad1)
(przyklad2)
(przyklad3)
-
-
- Nazwa instrukcji: FindClusters
- Opis: grupuje podobne elementy listy
- Przykłady:
ChemicalData["AminoAcids", "IsoelectricPoint"] //FindCluster (grupuje aminokwasy
według wartości punktu izoelektrycznego)
-
- Nazwa instrukcji:
- Opis: :
- Przykłady:
(przyklad1)
(przyklad2)
(przyklad3)
-
-
-
- Nazwa instrukcji: ReplaceAll , skrót: /.
- Opis: : Zamienia wszystko zgodnie z podaną regułą ( Rule )
- Przykłady:
{"A","C","C","C","T"} /. "T"->"U" (zamienia wszystkie "T" na "U")
-
- Nazwa instrukcji: Manipulate
- Opis: : generuje interaktywny aplet w którym parametry
można zmieniać za pomocą przycisków, suwaków itp; składnia identyczna z Table
- Przykłady:
Manipulate[i^2,{i,1,100,1}](wyświetla liczby podniesione do kwadratu)
amino=ChemicalData["AminoAcids"];
Manipulate[amino[[i]]//ChemicalData,{i,1,20,1}] (wyświetla
wzory strukturalne aminokwasów)
Manipulate[StringTake[Import["https://th.if.uj.edu.pl/~odrzywolek/bioinfo/gnm.txt"],{i,i+24}],
{i,1,999,3}] (przewija sekwencje DNA)
-
- Nazwa instrukcji: RandomChoice
- Opis: : wybiera losowo jeden z elementów listy
- Przykłady:
RandomChoice[{"A","C","G","T"}] (wybiera losowo jeden z nukleotydów)
-
Powrót do bioinformatyki
Strona główna