260 likes | 451 Views
Specjalizowane języki programowania. d r inż. Maciej Miłostan. Harmonogram zajęć. Wykłady i laboratoria odbywają się co drugi tydzień 7 wykładów (w tygodniach nieparzystych - „nad kreską”) 7/8 spotkań na laboratoriach (pierwsza grupa „nad kreską” / druga „pod kreską”)
E N D
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ą”) • 7/8spotkań na laboratoriach (pierwsza grupa „nad kreską” / druga „pod kreską”) • Lista tygodni: http://fc.put.poznan.pl/files/rozklady/tygodnie.pdf • Przedmiot kończy się zaliczeniem przed końcem semestru (tj. przed 25.01.2012)
Zasady zaliczenia • 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 dwa laboratoria • 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.13 do 9.43 Lub inny umówiony termin (np. w tygodniu parzystym przed laboratorium) • Informacje kontaktowe: Maciej.Milostan@cs.put.poznan.pl 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.
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 (baresequence) • 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 • Proste operacje – wyszukiwanie ciągów znaków, zliczanie, itp. • Porównywanie sekwencji • Konstrukcja drzew (filogenetycznych) • Detekcja wzorców w sekwencjach • Modelowaniestruktur 3D z sekwencji • Wnioskowanie dot. mechanizmów regulacji komórkowej • Przewidywanie lub determinacja funkcji białek iszlaków metabolicznych • Asemblacjafragmentó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
BioPerljest zbiorem modułów Perl-a Trzy paradygmaty projektowe w BioPerlu Separacja interfejsów od implementacji Dostarczenie bazowego wzorca (framework-u) dla odpowiednich operacjipoprzez generalizacię typowych procedur do pojedynczego modułu Wykorzystanie wzorców projektowych opracowanych przez ErichaGamma:metoda wytwórcza i wzorzec strategii Języki skryptowe
Języki skryptowe • Biopythonjest zbiorem modułów Python • Kluczowe elementy projektu BioPython • tworzenie parserówdo danych biologicznych • Projektowanie interfejsów użytecznych w przetwarzaniu sekwencji
Języki skryptowe • BioPHP dawniejGenePHP,„seeks to encourage the use of PHP as a “glue” language to bind web-based bioinformatics applications and databases” • Funkcje zaimplementowane wBioPHP • Odczyt danych biologicznych w formatachGenBank-u, Swissprot-a, Fasta, alignment-ówClustal-a (ALN) • Proste analizy sekwencji
Ruby jest obiektowym językiem skryptowym Projekt BioRubyjest wspierany i finansowany przez Human Genome Center na Uniwersyteciew Tokyo Bioinformatics Center na Uniwersytecie w Kyoto Języki skryptowe
XML iskł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 • BioBikejest 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życiuBioLisp(Lisp z dodatkiemfunkcjonalności biologicznej)
Przypomnienie wykładu prof. J. Nawrockiego: http://www.cs.put.poznan.pl/jnawrocki/ics/0203/02wpr5-awk.ppt