Wszystkie wbudowane polecenia programu Mathematica zaczynają się z wielkiej litery. Argumenty funkcji podajemy w nawiasach kwadratowych; w szczególności (przykład poniżej) może nie być żadnych argumentów, wstawiamy wtedy puste nawiasy. Funkcja ChemicalData poniżej wyświetla listę związków chemiczynych wprowadzonych do wewnętrznej bazy danych. Polecenia uruchamiamy naciskając równocześnie Shift+Enter:

Mathematica_instrukcja_1.gif

Mathematica_instrukcja_2.gif

Pomoc uzyskujemy wstawiając pytajnik (?) przed nazwą polecenia:

Mathematica_instrukcja_3.gif

Mathematica_instrukcja_4.gif

Naciskając strzałkę >> wchodzimy w pełną dokumentację polecenia. Inne sposób to wybranie z menu Help->DocumentationCenter. Dokumentacja jest też dostępna w internecie pod adresem reference.wolfram.com

Zmienne pozwalają przechowywać różne wyniki i dane pod dogodnymi nazwami. Np. lista związków powyżej jest bardzo długa i jej przeglądanie jest mozolnym zadaniem. Aby nie zapychać ekranu i nie doprowadzić do zawieszenia się komputera w przypadku bardzo dużych zbiorów symboli, Mathematica automatycznie skraca listę wyników (patrz wyżej, spróbuj nacisnąć np. ShowMore). Jako przykład zapiszemy listę związków chemicznych pod zmienną o nazwie chem:

Mathematica_instrukcja_5.gif

Mathematica_instrukcja_6.gif

Aby uniknąć wyświetlania dużych zbiorów na ekranie  dodajemy na końcu wiersza średnik. Lista związków z bazy danych jest wczytana i zapisana, ale nie jest wyświetlana na ekranie:  

Mathematica_instrukcja_7.gif

Pod zmienną o nazwie chem zapisana jest lista nazw związków chemicznych. Lista jest jedną z podstawowych struktur używanych w Mathematice . Może one być wynikiem działania pewnych funkcji (np. ChemicalData[] w przykładzie powyżej produkuje listę), lub może być wprowadzona ręcznie, za pomocą nawiasów wąsatych { } i przecinków :

Mathematica_instrukcja_8.gif

Mathematica_instrukcja_9.gif

Aby ,,wyjąć’’ z listy pojedynczy jej element, używamy podwójnych nawiasów kwadratowych [[ ]]. Na przykład pierwszy element, o numerze 1:

Mathematica_instrukcja_10.gif

Mathematica_instrukcja_11.gif

Mathematica_instrukcja_12.gif

Mathematica_instrukcja_13.gif

Element o numerze 2:

Mathematica_instrukcja_14.gif

Mathematica_instrukcja_15.gif

Mathematica_instrukcja_16.gif

Mathematica_instrukcja_17.gif

Element ostatni na liście, ujemne indeksy pozwalają na odczytywanie list w odwrotnym kierunku:

Mathematica_instrukcja_18.gif

Mathematica_instrukcja_19.gif

Mathematica_instrukcja_20.gif

Mathematica_instrukcja_21.gif

Inny sposób na wybranie elementu pierwszego (First) lub ostatniego (Last):

Mathematica_instrukcja_22.gif

Mathematica_instrukcja_23.gif

Mathematica_instrukcja_24.gif

Mathematica_instrukcja_25.gif

Lub inaczej:

Mathematica_instrukcja_26.gif

Mathematica_instrukcja_27.gif

Mathematica_instrukcja_28.gif

Mathematica_instrukcja_29.gif

W ten sposób (dwa średniki ;;) wybieramy z listy elementy o numerach od 10 do 20:

Mathematica_instrukcja_30.gif

Mathematica_instrukcja_31.gif

Długość listy sprawdzamy poleceniem Length:

Mathematica_instrukcja_32.gif

Mathematica_instrukcja_33.gif

W przypadku list o bardziej skomplikowanej strukturze nalezy uzyć w tym celu Dimensions:

Mathematica_instrukcja_34.gif

Mathematica_instrukcja_35.gif

Zwróćmy uwagę na istotny fakt, iż powyżej wynikiem działania jest lista wymiarów (w tym przypadku jednoelementowa). Dlatego ilość elementów listy jest równa n, gdzie:

Mathematica_instrukcja_36.gif

Mathematica_instrukcja_37.gif

Własności dostępne w bazie danych wypisujemy (do listy) używając argumentu ”Properties”:

Mathematica_instrukcja_38.gif

Mathematica_instrukcja_39.gif

Listę własności wygodnie jest zapisać do zmiennej, np. o nazwie w. Na końcu stawiam średnik, gdyż lista została już wyświetlona powyżej:

Mathematica_instrukcja_40.gif

Teraz jesteśmy przygotowani, aby uzyskać informację na temat własności o numerze powiedzmy 21 dla związku o numerze 26:

Mathematica_instrukcja_41.gif

Mathematica_instrukcja_42.gif

Mathematica_instrukcja_43.gif

Mathematica_instrukcja_44.gif

Mathematica_instrukcja_45.gif

Mathematica_instrukcja_46.gif

Powyżej uzyskaliśmy informację, że gęstość (Density) wody (Water) wynosi 1000 Mathematica_instrukcja_47.gif Operacje podobne do powyższej można zautomatyzować poleceniami Table lub Manipulate. Np. chcemy poznać gęstość co setnego związku z bazy banych, zaczynając od pierwszego (przypominam, że n to liczba wszystkich związków w bazie):

Mathematica_instrukcja_48.gif

Mathematica_instrukcja_49.gif

Polecenie Manipulate robi prawie to samo, ale w sposób interaktywny:

Mathematica_instrukcja_50.gif

Mathematica_instrukcja_51.gif

Nieco bardziej elegancki, ale też nieco złożony przykład:

Mathematica_instrukcja_52.gif

Związek chemiczny Mathematica_instrukcja_53.gif Wzór strukturalny
LiquidHydrogen 70.8 Mathematica_instrukcja_54.gif
DeuteriumHydride 0.123. Mathematica_instrukcja_55.gif
Helium 0.1785. Mathematica_instrukcja_56.gif
Deuterium 0.164. Mathematica_instrukcja_57.gif
Lithium 534. Mathematica_instrukcja_58.gif
LithiumDeuteride Missing[NotAvailable] Mathematica_instrukcja_59.gif
Boron 2340. Mathematica_instrukcja_60.gif
Diamond 3500. Mathematica_instrukcja_61.gif
Graphite Missing[NotAvailable] Mathematica_instrukcja_62.gif
LiquidMethane 422.4 Mathematica_instrukcja_63.gif
Ammonia 0.696. Mathematica_instrukcja_64.gif
MethaneD1 Missing[NotAvailable] Mathematica_instrukcja_65.gif
Ice 916.7 Mathematica_instrukcja_66.gif
Ammonia15N1 814. Mathematica_instrukcja_67.gif
MethaneD3 Missing[NotAvailable] Mathematica_instrukcja_68.gif

To samo, ale z użyciem Manipulate:

Mathematica_instrukcja_69.gif

Mathematica_instrukcja_70.gif

Przydatne polecenie to Position, które wskazuje nan jakiej pozycji listy znajdyje się dany element”

Mathematica_instrukcja_71.gif

Mathematica_instrukcja_72.gif

Dla zachęty do dalszego studiowania możliwości Mathematici, bardziej złozony przykład: wyszukaj pozycje wszystkich związków zaczynajacych się od “Leu”:

Mathematica_instrukcja_73.gif

Mathematica_instrukcja_74.gif

Mathematica_instrukcja_75.gif

Mathematica_instrukcja_76.gif

Mathematica_instrukcja_77.gif

Mathematica_instrukcja_78.gif

Mathematica_instrukcja_79.gif

Mathematica_instrukcja_80.gif

Mathematica_instrukcja_81.gif

Mathematica_instrukcja_82.gif

Mathematica_instrukcja_83.gif

Powyżej użyto przydatnego symbolu %, oznaczającego ostatni uzyskany wynik.

Mathematica_instrukcja_84.gif

Kolejną istotną do zastosowań bioinformatycznych jest format tekstowy, czyli String. Można operować tekstem przy pomocy róznych poleceń, zwykle zaczynających się od słowa String:

Mathematica_instrukcja_85.gif

Mathematica_instrukcja_86.gif

Łańcuchy tekstowe sklejamy symbolem <>, konwersji na tekst dokonujemy poleceniem ToString, np:

Mathematica_instrukcja_87.gif

Mathematica_instrukcja_88.gif

Łańcuch tekstowy można podzielić na pojedyncze słowa poleceniem StringSplit:

Mathematica_instrukcja_89.gif

Mathematica_instrukcja_90.gif

W ten sposób można znaleźć pozycję na której znajduje się dana sekwencja znaków:

Mathematica_instrukcja_91.gif

Mathematica_instrukcja_92.gif

W ten sposób generujemy wszystkie mozliwe kombinacje trójek nukleotydów i zamieniamy “T” na “U”

Mathematica_instrukcja_93.gif

Mathematica_instrukcja_94.gif

Jest ich oczywiście 64:

Mathematica_instrukcja_95.gif

Mathematica_instrukcja_96.gif

Sklejamy znaki i otrzymujemy listę kodonów:

Mathematica_instrukcja_97.gif

Mathematica_instrukcja_98.gif

Pobieramy listę aminokwasów z bazy danych:

Mathematica_instrukcja_99.gif

Mathematica_instrukcja_100.gif

Baza danych zawiera kodony RNA:

Mathematica_instrukcja_101.gif

Mathematica_instrukcja_102.gif

Polecenie Flatten redukuje listy złożone do prostej:

Mathematica_instrukcja_103.gif

Mathematica_instrukcja_104.gif

Sprawdzamy które z elementów są na liście 1, a nie ma ich na liscie 2 poleceniem
Complement (różnica zbiorów). Wynikiem są kodony niekodujące aminokwasów, czyli “STOP”:

Mathematica_instrukcja_105.gif

Mathematica_instrukcja_106.gif

Wszystkich kodonów jest :

Mathematica_instrukcja_107.gif

Mathematica_instrukcja_108.gif

a kodujących :

Mathematica_instrukcja_109.gif

Mathematica_instrukcja_110.gif

Spikey Created with Wolfram Mathematica 8.0