Specjalizowane języki programowania

26
Specjalizowane języki programowania dr inż. Maciej Miłostan

description

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ą”) - PowerPoint PPT Presentation

Transcript of Specjalizowane języki programowania

Page 1: Specjalizowane języki programowania

Specjalizowane języki programowaniaSpecjalizowane języki programowania

dr inż. Maciej Miłostandr inż. Maciej Miłostan

Page 2: Specjalizowane języki programowania

Harmonogram zajęć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/tygodnie.pdf

Przedmiot kończy się zaliczeniem przed końcem semestru (tj. przed 30.01.2015)

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/tygodnie.pdf

Przedmiot kończy się zaliczeniem przed końcem semestru (tj. przed 30.01.2015)

Page 3: Specjalizowane języki programowania

Zasady zaliczeniaZasady 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 (dwa bez

usprawiedliwienia) Na laboratoriach będą obowiązywały regularne sprawozdania

z zajęć jako forma sprawdzania wiedzy

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 (dwa bez

usprawiedliwienia) Na laboratoriach będą obowiązywały regularne sprawozdania

z zajęć jako forma sprawdzania wiedzy

Page 4: Specjalizowane języki programowania

Konsultacje i kontaktKonsultacje 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.45Lub inny umówiony termin (np. w tygodniu

parzystym przed laboratorium) Informacje kontaktowe:

[email protected].: +48-61-665-29-78

Gdzie? Centrum Wykładowo-Konferencyjne

Politechniki Poznańskiej Pokój 122 (na I piętrze)

Kiedy? Poniedziałki od 8.15 do 9.45Lub inny umówiony termin (np. w tygodniu

parzystym przed laboratorium) Informacje kontaktowe:

[email protected].: +48-61-665-29-78

Page 5: Specjalizowane języki programowania

Plan przedmiotuPlan 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 kompetencjeStudent 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

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 kompetencjeStudent 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

Page 6: Specjalizowane języki programowania

Plan zajęć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)

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)

Page 7: Specjalizowane języki programowania

MotywacjaMotywacja

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

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

Page 8: Specjalizowane języki programowania

MotywacjaMotywacja

Istnieje wiele formatów przechowywania podobnych danych Np. formaty sekwencji aminokwasowych i

nukleotydowych: PIR FASTA

Sama sekwencja (bare sequence)

Sekwencja z numeracją i spacjami

Istnieje wiele formatów przechowywania podobnych danych Np. formaty sekwencji aminokwasowych i

nukleotydowych: PIR FASTA

Sama sekwencja (bare sequence)

Sekwencja z numeracją i spacjami

Page 9: Specjalizowane języki programowania

MotywacjaMotywacja

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

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

Page 10: Specjalizowane języki programowania

Rodzaje danych biologicznych

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

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

Page 11: Specjalizowane języki programowania

Źródło danych – rodzaje baz

Ź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

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

Page 12: Specjalizowane języki programowania

Organizacja danychOrganizacja danych

Pliki płaskieRelacyjne bazy danychObiektowe bazy danych

Pliki płaskieRelacyjne bazy danychObiektowe bazy danych

Page 13: Specjalizowane języki programowania

Dostępność danychDostę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

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

Page 14: Specjalizowane języki programowania

Opiekunowie/kuratorzy baz

Opiekunowie/kuratorzy baz

Duże instytucje publiczne (NCBI, EMBL)

Instytucje kwasi-akademickie (Swiss Institute of Bioinformatics)

Grupa akademicka lub naukowiec Firma komercyjna

Duże instytucje publiczne (NCBI, EMBL)

Instytucje kwasi-akademickie (Swiss Institute of Bioinformatics)

Grupa akademicka lub naukowiec Firma komercyjna

Page 15: Specjalizowane języki programowania

Algorytmy i analizyAlgorytmy 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

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

Page 16: Specjalizowane języki programowania

Języki skryptoweJę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 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

Page 17: Specjalizowane języki programowania

Języki skryptoweJęzyki skryptowe

BioPerl jest zbiorem modułów Perl-a Trzy paradygmaty projektowe w BioPerlu

Separacja interfejsów od implementacjiDostarczenie 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

BioPerl jest zbiorem modułów Perl-a Trzy paradygmaty projektowe w BioPerlu

Separacja interfejsów od implementacjiDostarczenie 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

Page 18: Specjalizowane języki programowania

Języki skryptoweJęzyki skryptowe

Biopython jest zbiorem modułów Python

Kluczowe elementy projektu BioPythontworzenie parserów do danych

biologicznychProjektowanie interfejsów

użytecznych w przetwarzaniu sekwencji

Biopython jest zbiorem modułów Python

Kluczowe elementy projektu BioPythontworzenie parserów do danych

biologicznychProjektowanie interfejsów

użytecznych w przetwarzaniu sekwencji

Page 19: Specjalizowane języki programowania

Języki skryptoweJę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 BioPHPOdczyt danych biologicznych w

formatach GenBank-u, Swissprot-a, Fasta, alignment-ów Clustal-a (ALN)

Proste analizy sekwencji

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 BioPHPOdczyt danych biologicznych w

formatach GenBank-u, Swissprot-a, Fasta, alignment-ów Clustal-a (ALN)

Proste analizy sekwencji

Page 20: Specjalizowane języki programowania

Języki skryptoweJę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

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

Page 21: Specjalizowane języki programowania

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

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)

Page 22: Specjalizowane języki programowania

Programowanie deklaratywne i funkcyjne

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.

Przykład czysto funkcyjnego języka

Pod nazwa Biohaskell zbierane są wszelkie programy i biblioteki związane z zastosowaniem haskell-a w biologii.

Page 23: Specjalizowane języki programowania

Programowanie deklaratywne i funkcyjne

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

Biomedical Logic Programming (Blip)Zbiór modułów stworzonych z

myślą o zastosowaniach bioinformatycznych i biomedycznych

Zintregrowany system zapytańZaimplementowane w SWI-Prolog

Page 24: Specjalizowane języki programowania

Programowanie deklaratywne

i funkcyjne

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)

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)

Page 25: Specjalizowane języki programowania

AWK - PRZYPOMNIENIEAWK - PRZYPOMNIENIE

Page 26: Specjalizowane języki programowania

Przypomnienie wykładu prof. J. Nawrockiego:

http://www.cs.put.poznan.pl/jnawrocki/ics/0203/02wpr5-awk.ppt

Przypomnienie wykładu prof. J. Nawrockiego:

http://www.cs.put.poznan.pl/jnawrocki/ics/0203/02wpr5-awk.ppt