Transcript Slajd 1
Specjalizowane języki
programowania
dr inż. Maciej Miłostan
Harmonogram zajęć
Wykłady i laboratoria odbywają się co
drugi tydzień
– 7 wykładów (w tygodniach
nieparzystych - „nad kreską”)
– 16 spotkań na laboratoriach
– Lista tygodni:
http://fc.put.poznan.pl/files/rozklady
/tygodnie.pdf
– Przedmiot kończy się zaliczeniem
przed końcem semestru (tj. przed
29.01.2014)
Zasady zaliczenia
• Zgodnie z regulaminem studiów:
1. „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.”
2. „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.”
3. „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, ale sprawozdania
należy oddać ze wszystkich
Na laboratoriach będą obowiązywały regularne sprawozdania z
zajęć jako forma sprawdzania wiedzy, możliwe wejściówki
Konsultacje i kontakt
• Gdzie?
– Centrum Wykładowo-Konferencyjne
Politechniki Poznańskiej
– Pokój 122 (na I piętrze)
• Kiedy?
– Czwartki od 8.15 do 9.40
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.
Karta ETCS
• Pokaż kartę ETCS
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/
02wpr5-awk.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
(framework-u) 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/i
cs/0203/02wpr5-awk.ppt