Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:2009:piw09_clp [2009/06/08 13:16] piw09 |
pl:miw:2009:piw09_clp [2019/06/27 15:50] (aktualna) |
Funkcje, które realizuje aplikacja to:\\ | Funkcje, które realizuje aplikacja to:\\ |
* Obliczanie wartości silni | * Obliczanie wartości silni |
* Obliczanie n-tego wyrazu iągu Fibonnaciego | * Obliczanie n-tego wyrazu ciągu Fibonacciego |
* Obliczanie pierwiastków równania kwadratowego | * Obliczanie pierwiastków równania kwadratowego |
* Obliczanie kolorów dla 6 zdefiniowanych państw | * Obliczanie kolorów dla 6 zdefiniowanych państw |
| |
| |
==== Implementacja ==== | ==== Interfejs użytkownika ==== |
| Interfejs użytkownika został stworzony przy pomocy biblioteki SWING.\\ |
| {{:pl:miw:2009:asia1.png|}}\\ |
| Wynik działania dla problemu plecakowego:\\ |
| {{:pl:miw:2009:asia2.png|}} |
====== Sekwencjonowanie DNA ====== | ====== Sekwencjonowanie DNA ====== |
===== Teoria ===== | ===== Teoria ===== |
| **Sekwencjonowanie DNA** to procedura w której odczytuje się dokładną kolejność zasad (A, C, T i G) tworzących cząsteczkę DNA.\\ |
| Przykład sekwencji DNA (początek operonu laktozowege E. coli):\\ |
| <code> GACACCATCGAATGGCGCAAAACCTTTCGCGGTATGGCATGATAGCGCCCGGAAGAGAGTCAATTCAGGG</code>\\ |
| |
| Poniższy rysunek przedstawia etapy sekwencjonowanie DNA.\\ |
| {{:pl:miw:2009:asia3.gif|}}\\ |
| Źródło:http://www.scq.ubc.ca/genome-projects-uncovering-the-blueprints-of-biology/ \\ |
| |
| Obecnie metoda odczytu została zautomatyzowana dzięki wykorzystaniu znakowanych fluorescencyjnie trifosforanów dideoksynukleotydów i pozwala na odczyt 300-1000 par zasad z jednej kapilary lub linii na żelu.\\ |
| Autorem alternatywnej metody sekwencjonowania DNA, z wykorzystaniem specyficznej, chemicznej degradacji DNA, byli Walter Gilbert i Allan Maxam (metoda Maxama-Gilberta). Gilbert wraz z Frederickiem Sangerem otrzymali za to osiągnięcie nagrodę Nobla. Metoda Maxama-Gilberta obecnie jest rzadko stosowana.\\ |
| Nowoczesne masowo równoległe aparaty do sekwencjonowania DNA są w stanie pracować z szybkością rzędu milionów par zasad na godzinę. Tranzystory polowe DNA umożliwiają użycie natywnego DNA w hybrydyzacji do mikromacierzy i odczyt w czasie rzeczywistym.\\ |
| |
| **Diagnostyka genetyczna** jest prężnie rozwijającą się dziedziną, wykorzystującą najnowsze osiągnięcia technologiczne, naukowe, informatyczne i medyczne. Dzięki postępowi który dokonał się w ostatnich latach możliwe jest przeprowadzenie badań i uzyskanie istotnych informacji medycznych wyprzedzających kliniczne pojawienie się schorzenia. Jest to bardzo istotny aspekt dla zdrowia pacjenta. Dzięki niemu może jeszcze przed pojawieniem się choroby- najczęściej śmiertelnej- jej zapobiec. Mając do dyspozycji narzędzie w postaci testów genetycznych można z dużym prawdopodobieństwem określić ryzyko zachorowania, uzupełnić i potwierdzić obecność dziedzicznego obciążenia genetycznego, a przede wszystkim rozpocząć odpowiednią terapię lub po prostu częściej przeprowadzać badania kontrolne. \\ |
| Obecnie podczas testowania genetycznego możemy wykryć mutacje/zmiany powodujące takie choroby jak na przykład: |
| • czerniak złośliwy\\ |
| • rak piersi\\ |
| • rak prostaty\\ |
| • choroby nowotworowe\\ |
| • HPV\\ |
| • Rak tarczycy\\ |
| • Mukowiscydoza\\ |
| • Alzheimer\\ |
| |
===== Implementacja sekwencjonowania DNA w PROLOGu ===== | ===== Implementacja sekwencjonowania DNA w PROLOGu ===== |
==== Wybór środowiska ==== | ==== Wybór środowiska ==== |
| Projekt został napisany w Javie z wykorzystaniem SWI Prolog’u.\\ |
| Funkcje, które realizuje aplikacja to:\\ |
| • Tworzenie komplementarnej nici DNA\\ |
| • Porównywanie dwóch nici - czy są komplementarne\\ |
| • Sprawdzanie, czy w sekwencji DNA znajduje się odpowiednia/dowolna sekwencja\\ |
| • Próba rozpoznawania mukowiscydozy\\ |
| • Rozpoznawanie guzowatości korzenia na podstawie sekwencji DNA \\ |
| • Rozpoznawanie błędów addycji/delecji/inwersji \\ |
| |
| **Rozpoznawanie guzowatości korzenia na podstawie sekwencji DNA** \\ |
| Rozpoznanie guzowatości korzenia( crown Gall tumor) następuje poprzez znalezienie sekwencji „TATA box”. TATA box jest to sekwencja w której znajdują się tylko zasady azotowe takie jak: adenina (A) oraz tymina (T). \\ |
| TATA Box może mieć postać: TATA. TAATA, AATAATa,AATATA,ATATA\\ |
| |
| **Rozpoznawanie mutacji segmentowych -błędów addycji/delecji/inwersji** |
| |
| Do __mutacji segmentowych/punktowych__ zaliczamy- __addycję, delecję oraz inwersję__. Wszystkie z tych zmian charakteryzują się najczęściej występowaniem tych samych zasad azotowych obok siebie. Mutacje punktowe mogą powodować takie choroby jak: albinizm, anemię sierpowatą czy hemofilię.\\ |
| {{:pl:miw:2009:asia3.png|}}\\ |
| Źródłow: Wykłady MSIB AGH \\ |
| **Porównywanie dwóch nici - czy są komplementarne** \\ |
| Brak komplementarności nici powoduje mutacje np. nowotworowe i powoduje niewłaściwe kodowanie białek.\\ |
| **Próba rozpoznawania mukowiscydozy**\\ |
| Powodem mukowiscydozy jest mutacja odcinka genomu CFTR. Odcinek zmutowany nazywamy: ∆F508. |
| {{:pl:miw:2009:asia4.png|}}\\ |
| Źródło: http://genome.gsc.riken.go.jp/hgmis/posters/chromosome/cftr.html \\ |
| |
| |
| |
==== Interfejs użytkownika ==== | ==== Interfejs użytkownika ==== |
| **Wybór środowiska** \\ |
| Projekt napisany w języku JAVA, przy użyciu biblioteki graficznej Swing zintegrowany z SWI Prolog. Program charakteryzuje się modułową budową, umożliwiającą dodawanie funkcjonalości (na przykład nowych sposobów ekstrakcji cech). \\ |
| **Interfejs użytkownika** \\ |
| Interfejs użytkownika powstał dzięki wykorzystaniu biblioteki Java Swing. Interfejs użytkownika składa się z siedmiu paneli i pozwala na intuicyjne poruszanie się między nimi. \\ |
| |
| Po uruchomieniu aplikacji mamy możliwość zapoznania się z możliwościami aplikacji: |
| {{:pl:miw:2009:asia5.png|}}\\ |
| Przykład dla nici komplementarnej:\\ |
| {{:pl:miw:2009:asia6.png|}}\\ |
| |
| Przykład dla rozpoznawania sekwencji mukowiscydozy:\\ |
| {{:pl:miw:2009:asia7.png|}}\\ |
| |
====== Podsumowanie ====== | ====== Podsumowanie ====== |
| Prolog wykorzystuje szereg technologii w celu optymalnego rozwiązywania skomplikowanych problemów. Programista może skorzystać z CLP, CHR ale także z clpfd, clp_distinct, czy modułu Simplex. Pomimo tego, że Prolog został stworzony w 1971 roku nadal prężnie się rozwija i rozszerza moduły. Prolog jest zaawansowanym a zarazem prostym językiem programowania. Umożliwia pisanie długich skomplikowanych programów w dosłownie kilku linijkach.\\ |
| **Zastosowanie Prolog’a :**\\ |
| |
| • Inteligentne Systemy - programy, które wykonują przydatne zadania przez używanie technik sztucznej inteligencji. \\ |
| |
| |
| • Systemy ekspertowe - inteligentne systemy, które potrafią podejmować decyzje na poziomie ludzkiego eksperta. \\ |
| |
| • Naturalne systemy językowe - które mogą analizować i odpowiadać na zadane pytania w formie zrozumiałej dla człowieka\\ |
| |
| • Systemy relacyjnej bazy danych \\ |
| |
| **Ciekawe gotowe produkty:**\\ |
| |
| • “Expert System for Selecting Chemical Processing Agitators” (AstraZeneca) – system ekspertowy pomocny chemikom przy mieszaniu różnych substancji\\ |
| |
| • "Tax Assistant” (VerTec Solutions) – asystent podatkowy \\ |
| |
| • Intelligent Testing (Pacific AI) – narzędzie do treningu i testowania wiedzy (np. studenta) \\ |
| |
| • Virtual Pal - First Seamless Natural Language Self-Help (APIIT ) – Ekspert pomagający na stronie WWW \\ |
| |
| • Breast Cancer Decision Guide – Internetowy doradca w sprawach raka piersi \\ |
| |
| • Configuration Advice (Xircom Inc.) – Doradca w sprawach konfiguracji sprzętu komputerowego \\ |
| |
| • FleetPlan – system ekspercki dla sieci lotniczych, który ostatecznie ma „zwiększyć” zyski firmy lotniczej \\ |
| |
| • PDC-Booking - system skutecznego zarządzania zasobami całego szpitala (wykorzystanie personelu, sprzętu, pokojów,etc.) \\ |
| |
| |
| ====== Źródła ====== |
| ===== Dokumentacja ===== |
| ===== Źródła kodów ===== |
| - Źródło dla aplikacji -przykłady\\ |
| {{:pl:miw:2009:prolog.rar|}}\\ |
| - Źródło dla aplikacji -sekwencjonowanie DNA\\ |
| {{:pl:miw:2009:sekwencjonowanie.rar|}}\\ |
| |
| |
| |
| |
| |