specjalizowane języki programowania
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 PresentationTRANSCRIPT
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:
[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
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