Specjalizowane języki programowania

Post on 23-Jan-2016

80 views 0 download

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

Specjalizowane języki programowaniaSpecjalizowane języki programowania

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

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)

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

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:

Maciej.Milostan@cs.put.poznan.plTel.: +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:

Maciej.Milostan@cs.put.poznan.plTel.: +48-61-665-29-78

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

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)

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

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

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

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

Ź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

Organizacja danychOrganizacja danych

Pliki płaskieRelacyjne bazy danychObiektowe bazy danych

Pliki płaskieRelacyjne bazy danychObiektowe bazy danych

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

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

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

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

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

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

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

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

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)

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.

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

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)

AWK - PRZYPOMNIENIEAWK - PRZYPOMNIENIE

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