Wykład 1-2 - Wprowadzenie
Download
Report
Transcript Wykład 1-2 - Wprowadzenie
Specjalizowane języki
programowania
dr inż. Maciej Miłostan
Harmonogram zajęć
Wykłady odbywają się co drugi tydzień,
laboratoria co tydzień
8 wykładów (w tygodniach
parzystych - „pod kreską”)
16 spotkań na laboratoriach
Lista tygodni:
http://fc.put.poznan.pl/files/rozklady/t
ygodnie.pdf
Przedmiot kończy się zaliczeniem
przed końcem semestru (tj. przed
30.01.2015)
Zasady zaliczenia
1.
2.
3.
Zgodnie z regulaminem studiów:
„Nieobecność studenta, nawet usprawiedliwiona, na więcej niż 1/3 zajęć, może
być podstawą do niezaliczenia tych zajęć. Niewykonanie ćwiczeń określonych
regulaminem laboratorium uniemożliwia zaliczenie zajęć laboratoryjnych.”
„Podstawą do zaliczenia wszystkich rodzajów ćwiczeń i wykładów niekończących
się egzaminem są pozytywne wyniki bieżącej kontroli wiadomości. Formę tej
kontroli określa prowadzący zajęcia i wystawia ocenę do końca semestru.”
„Studentowi, który w wyniku bieżącej kontroli wiadomości otrzymał ocenę
niedostateczną, przysługuje prawo do jednego zaliczenia poprawkowego.”
Ergo:
Można opuścić maksimum pięć laboratoriów (dwa bez
usprawiedliwienia)
Na laboratoriach będą obowiązywały regularne sprawozdania z zajęć
jako forma sprawdzania wiedzy
Konsultacje i kontakt
Gdzie?
Centrum Wykładowo-Konferencyjne Politechniki
Poznańskiej
Pokój 122 (na I piętrze)
Kiedy?
Poniedziałki od 8.15 do 9.45
Lub inny umówiony termin (np. w tygodniu
parzystym przed laboratorium)
Informacje kontaktowe:
[email protected]
Tel.: +48-61-665-29-78
Plan przedmiotu
Treści kształcenia
Języki programowania ukierunkowane na specyficzne
zastosowania, ze szczególnym uwzględnieniem
przetwarzania ciągów znaków. Języki skryptowe. Perl.
Python. Przetwarzanie danych tekstowych.
Efekty kształcenia - umiejętności i kompetencje
Student zna wybrane specjalizowane języki programowania
w stopniu umożliwiającym swobodne pisanie programów, ze
szczególnym uwzględnieniem przetwarzania danych
tekstowych, w tym sekwencji nukleotydowych i
aminokwasowych.
Pełna specyfikacja przedmiotu znajduje się w kartach ETCS:
http://fc.put.poznan.pl/studia/krajowe-ramy-kwalifikacji-krk%2C417.html
Plan zajęć
Informacje organizacyjne i
wprowadzenie do przedmiotu
Języki skryptowe i przetwarzanie
tekstów (1x)
Perl i BioPerl (3x)
Python i BioPython (2x + 1/2x)
Zaliczenie (1/2x)
Motywacja
Współczesne
eksperymenty generują
duże ilości danych, które
wymagają
zautomatyzowanego
przetwarzania i
gromadzenia w
rozmaitych bazach
danych
Motywacja
Istnieje wiele formatów przechowywania podobnych danych
Np. formaty sekwencji aminokwasowych i nukleotydowych:
PIR
FASTA
Sama sekwencja (bare sequence)
Sekwencja z numeracją i spacjami
Motywacja
Informacje z baz danych, w celu dalszej
analizy, często muszą zostać pobrane i
przekonwertowane do formatu
kompatybilnego z wykorzystywaną aplikacją
Z plików danych musi zostać
wyekstraktowana tylko część danych np.
pojedynczy model białka z pliku PDB
Dane generowane przez różne aplikacje
muszą zostać zagregowane
Rodzaje danych biologicznych
Sekwencje, np. dane genomowe
Struktury przestrzenne
Drzewa filogenetyczne
Sieci / grafy – np. mapy interakcji białek,
modelowanie oddziaływań
Szlaki metaboliczne
Dane z mikromacierzy i ekspresja genów
Dane obrazowe
Źródło danych – rodzaje baz
Pochodzenie
Dane pochodzące bezpośrednio z eksperymentu
Dane wywiedzione z danych eksperymentalnych
Dane zagregowane
Jakość
Dane deponowane bezpośrednio
Dane deponowane przez „kuratorów”
Zarządzanie błędami – usuwanie błędnych danych
lub ich znakowanie
Sprawdzanie błędów
Spójność, aktualizacje
Organizacja danych
Pliki płaskie
Relacyjne bazy danych
Obiektowe bazy danych
Dostępność danych
Dostępne (ang. available) publicznie
bez restrykcji
Dostępne (ang. available), ale
chronione prawami autorskimi
Dostępne (ang. accessible), ale bez
możliwość pobrania
Dostępne dla środowiska
akademickiego
Komercyjne
Opiekunowie/kuratorzy baz
Duże instytucje publiczne (NCBI, EMBL)
Instytucje kwasi-akademickie (Swiss
Institute of Bioinformatics)
Grupa akademicka lub naukowiec
Firma komercyjna
Algorytmy i analizy
1)
Proste operacje – wyszukiwanie ciągów znaków, zliczanie, itp.
2)
Porównywanie sekwencji
3)
Konstrukcja drzew (filogenetycznych)
4)
Detekcja wzorców w sekwencjach
5)
Modelowanie struktur 3D z sekwencji
6)
Wnioskowanie dot. mechanizmów regulacji komórkowej
7)
Przewidywanie lub determinacja funkcji białek i szlaków
metabolicznych
8)
Asemblacja fragmentów DNA
Języki skryptowe
Języki interpretowane
Zwykle nie wymagają kompilacji
Często stosują automatyczne typowanie
Przykłady:
Powłoka systemu linux/unix np. język skryptów Bash
Pliki wsadowe .bat
AWK (Zobacz:
http://www.cs.put.poznan.pl/jnawrocki/ics/0203/02wpr5awk.ppt)
Perl
Python
Ruby
Języki skryptowe
BioPerl jest zbiorem modułów Perl-a
Trzy paradygmaty projektowe w BioPerlu
Separacja interfejsów od implementacji
Dostarczenie bazowego wzorca (frameworku) dla odpowiednich operacji poprzez
generalizacię typowych procedur do
pojedynczego modułu
Wykorzystanie wzorców projektowych
opracowanych przez Ericha Gamma: metoda
wytwórcza i wzorzec strategii
Języki skryptowe
Biopython jest zbiorem modułów
Python
Kluczowe elementy projektu
BioPython
tworzenie parserów do danych
biologicznych
Projektowanie interfejsów użytecznych w
przetwarzaniu sekwencji
Języki skryptowe
BioPHP dawniej GenePHP, „seeks to
encourage the use of PHP as a “glue”
language to bind web-based
bioinformatics applications and
databases”
Funkcje zaimplementowane w BioPHP
Odczyt danych biologicznych w formatach
GenBank-u, Swissprot-a, Fasta,
alignment-ów Clustal-a (ALN)
Proste analizy sekwencji
Języki skryptowe
Ruby jest obiektowym językiem
skryptowym
Projekt BioRuby jest wspierany i
finansowany przez
Human Genome Center na
Uniwersytecie w Tokyo
Bioinformatics Center na Uniwersytecie
w Kyoto
XML i składowanie danych
XML jest uniwersalnym i roszerzalnym
formatem przechowywania i wymiany
danych oraz dokumentów
ustrukturalizowanych
Dwie inicjatywy godne odnotowania:
Bioinformatics Sequence Markup Language
(BSML)
BIOpolymer Markup Language (BioML)
Programowanie deklaratywne i
funkcyjne
Przykład czysto funkcyjnego języka
Pod nazwa Biohaskell zbierane są
wszelkie programy i biblioteki
związane z zastosowaniem haskell-a w
biologii.
Programowanie deklaratywne i
funkcyjne
Biomedical Logic Programming (Blip)
Zbiór modułów stworzonych z myślą o
zastosowaniach bioinformatycznych i
biomedycznych
Zintregrowany system zapytań
Zaimplementowane w SWI-Prolog
Programowanie deklaratywne
i funkcyjne
BioBike jest interaktywnym (z interfejsem
web) środowiskiem programistycznym, które
umożliwia biologom analizę systemów
biologicznych poprzez połączenie wiedzy i
danych poprzez bezpośrednie
programowanie dokonywane przez
użytkownika końcowego
Zaimplementowano przy użyciu BioLisp
(Lisp z dodatkiem funkcjonalności
biologicznej)
AWK - PRZYPOMNIENIE
Przypomnienie wykładu prof. J.
Nawrockiego:
http://www.cs.put.poznan.pl/jnawrocki/ic
s/0203/02wpr5-awk.ppt