Specjalizowane języki programowania

1 Specjalizowane języki programowaniadr inż. Maciej Miłos...
Author: Franciszka Domeradzki
0 downloads 0 Views

1 Specjalizowane języki programowaniadr inż. Maciej Miłostan

2 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ą”) Lista tygodni: Przedmiot kończy się zaliczeniem przed końcem semestru (tj. przed )

3 Zasady zaliczenia Zgodnie z regulaminem studiów: Ergo:„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

4 Konsultacje i kontakt Gdzie? Kiedy? Informacje kontaktowe: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: Tel.:

5 Plan przedmiotu Treści kształceniaJę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.

6 Plan zajęć Informacje organizacyjne i wprowadzenie do przedmiotuJęzyki skryptowe i przetwarzanie tekstów (1x) Perl i BioPerl (3x) Python i BioPython (2x + 1/2x) Zaliczenie (1/2x)

7 Motywacja Współczesne eksperymenty generują duże ilości danych, które wymagają zautomatyzowanego przetwarzania i gromadzenia w rozmaitych bazach danych

8 Motywacja Istnieje wiele formatów przechowywania podobnych danychNp. formaty sekwencji aminokwasowych i nukleotydowych: PIR FASTA Sama sekwencja (bare sequence) Sekwencja z numeracją i spacjami

9 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

10 Rodzaje danych biologicznychSekwencje, 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

11 Źródło danych – rodzaje bazPochodzenie 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

12 Organizacja danych Pliki płaskie Relacyjne bazy danychObiektowe bazy danych

13 Dostępność danych Dostępne (ang. available) publicznie bez restrykcjiDostępne (ang. available), ale chronione prawami autorskimi Dostępne (ang. accessible), ale bez możliwość pobrania Dostępne dla środowiska akademickiego Komercyjne

14 Opiekunowie/kuratorzy bazDuże instytucje publiczne (NCBI, EMBL) Instytucje kwasi-akademickie (Swiss Institute of Bioinformatics) Grupa akademicka lub naukowiec Firma komercyjna

15 Algorytmy i analizy Proste operacje – wyszukiwanie ciągów znaków, zliczanie, itp. Porównywanie sekwencji Konstrukcja drzew (filogenetycznych) Detekcja wzorców w sekwencjach Modelowanie struktur 3D z sekwencji Wnioskowanie dot. mechanizmów regulacji komórkowej Przewidywanie lub determinacja funkcji białek i szlaków metabolicznych Asemblacja fragmentów DNA

16 Języki skryptowe Języki interpretowane Zwykle nie wymagają kompilacjiCzęsto stosują automatyczne typowanie Przykłady: Powłoka systemu linux/unix np. język skryptów Bash Pliki wsadowe .bat AWK (Zobacz: Perl Python Ruby

17 Języki skryptowe BioPerl jest zbiorem modułów Perl-aTrzy 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

18 Języki skryptowe Biopython jest zbiorem modułów PythonKluczowe elementy projektu BioPython tworzenie parserów do danych biologicznych Projektowanie interfejsów użytecznych w przetwarzaniu sekwencji

19 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

20 Języki skryptowe Ruby jest obiektowym językiem skryptowymProjekt BioRuby jest wspierany i finansowany przez Human Genome Center na Uniwersytecie w Tokyo Bioinformatics Center na Uniwersytecie w Kyoto

21 XML i składowanie danychXML 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)

22 Programowanie deklaratywne i funkcyjnePrzykład czysto funkcyjnego języka Pod nazwa Biohaskell zbierane są wszelkie programy i biblioteki związane z zastosowaniem haskell-a w biologii.

23 Programowanie deklaratywne i funkcyjneBiomedical Logic Programming (Blip) Zbiór modułów stworzonych z myślą o zastosowaniach bioinformatycznych i biomedycznych Zintregrowany system zapytań Zaimplementowane w SWI-Prolog

24 Programowanie deklaratywne i funkcyjneBioBike 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)

25 AWK - pRZYPOMNIENIE

26 Przypomnienie wykładu prof. J. Nawrockiego: