Ariel Zakrzewski
Wstęp. Jak programować w DNA? Idea oraz przykład. Problem FSAT charakterystyka i rozwiązanie za pomocą DNA. Jak w ogólności rozwiązywać problemy matematyczne z użyciem DNA? Gdzie są problemy? Podsumowanie
Czym jest programowanie w DNA? Jak wygląda DNA? Matematyczne podstawy działań z DNA. Nasze operacje na DNA.
Algorithmic Self-Assembly of DNA, Thesis by Eric Winfree
Podejście kognitywistyczne: Wykorzystywanie modeli biologicznych do tworzenia oprogramowania? Podejście bioinformatyczne: Wykorzystywanie i tworzenie narzędzi informatycznych do rozwiązywania problemów z zakresu biologii?
PCR Whiplash PCR Elektroforeza
Reakcja łańcuchowa polimerazy Metoda ma za zadanie powielanie łańcuchów DNA w warunkach laboratoryjnych. Powielanie to polega na reakcji łańcuchowej polimerazy DNA w wyniku wielokrotnego podgrzewania i oziębiania próbki.
Substrat - matryca DNA (fragment DNA do skopiowania: wystarczy pojedyncza cząsteczka, może to być również fragment DNA nie oddzielony od genomu); Krótkie, jednoniciowe fragmenty DNA oligonukleotydy, umożliwiające rozpoczęcie procesu replikacji (tzw. startery); Pozostałe substraty tej reakcji nukleozydotrifosforany (ATP, GTP, CTP, TTP); Enzym katalizujący tę reakcję polimeraza DNA.
Denaturacja - rozdzielenie nici DNA (temperatura 95 C); Renaturacja - hybrydyzacja komplementarnych oligonukleotydów z rozplecionymi nićmi DNA (temperatura 54 C); Replikacja DNA - polimeraza DNA, przyłączając ATP, GTP, CTP, TTP, buduje komplementarne nici DNA (temperatura 72 C).
Technika prowadzenia autonomicznych obliczeń molekularnych, gdzie maszyna stanów jest przedstawiona za pomocą pojedynczej nici DNA, a przejścia między stanami są wykonywane przez naprzemienne reakcje łańcuchowe polimerazy oraz zmiany termiczne.
Nić DNA składa się z ramek postaci: Sekwencja początkowa ramki; Sekwencja rozszerzająca; Sekwencja stop.
Formuła boolowska, w której wartość każdej ze zmiennych jest sprawdzana co najwyżej jeden raz
Ramka wartości zmiennej: Znacznik zmiennej, Wartość zmiennej, Sekwencja stop. Ramka operacji odczytu wartości zmiennej: Wartość poprzedniej zmiennej, Znacznik zmiennej, Sekwencja stop.
Idea oraz przykład
Mając formułę boolowską stworzyć drzewo binarne, spełniające warunki: Liście tego drzewa będą posiadały wartości true lub false. Węzłami drzewa są zmienne zawarte w formule boolowskiej. Kierunek przejścia zależy od wartości węzła. Każda ścieżka od korzenia do liścia ewaluuje jednoznaczną wartość wejściowej formuł z dokładnością do wartości zmiennych na tej ścieżce. Na każdej ścieżce od korzenia do liścia wartość każdej zmiennej jest odczytywana co najwyżej raz.
Chcemy sprawdzić, czy dla wartości x1=1, x2=1, x3=0, x4=1, formuła f = (x 1 v ~x 3 ) ^ (~x 2 v x 4 ) będzie spełniona. Budujemy drzewo binarne spełniające warunki formuły:
Mając drzewo binarne, przechodzimy do budowania nici DNA. Schemat nici: Fragment danych, Fragment operacji.
Fragment danych: (x1,x1+)(x2,x2+)(x3,x3-)(x4,x4+) Fragment operacji: (x1+,x2)(x1-,x3) (x2+,x4)(x2-,out+) (x3+,out-)(x3-,x2) (x4-,out-)(x4+,out+)
Całkowita postać nici po połączeniu: (x1)(x1+,x2)(x1-,x3)(x2+,x4)(x2-,out+)(x3+,out-)(x3-,x2)(x4-,out-)(x4+,out+) (x1,x1+)(x2,x2+)(x3,x3-)(x4,x4+)
Całkowita postać nici po połączeniu: (x1)(x1+,x2)(x1-,x3)(x2+,x4)(x2-,out+)(x3+,out-)(x3,x2)(x4,out)(x4+,out+) (x1,x1+)(x2,x2+)(x3,x3-)(x4,x4+) (x1) (x1+,x1)(x1) (x2,x1+)(x1+,x1)(x1) (x2+,x2)(x2,x1+)(x1+,x1)(x1) (x4,x2+)(x2+,x2)(x2,x1+)(x1+,x1)(x1) (x4+,x4)(x4,x2+)(x2+,x2)(x2,x1+)(x1+,x1)(x1) (out+,x4+)(x4+,x4)(x4,x2+)(x2+,x2)(x2,x1+)(x1+,x1)(x1)
Charakterystyka i rozwiązanie
Czy dla zadanej formuły logicznej istnieje przynajmniej jedno podstawienie wartości zmiennych, dla których formuła jest prawdziwa? Równoznaczne z: czy negacja danej formuły logicznej jest tautologią? Problem np-zupełny.
Przygotowanie zbioru wszystkich możliwych wejść biblioteki danych DNA. Przygotowanie nici operacji reprezentującej operację boolowską. Powielenie jej do ilości odpowiadającej rozmiarowi biblioteki danych DNA. Połączenie każdej nici danych wejściowej z jedną kopią nici operacji. Wykonanie cykli whiplash PCR do uzyskania wyjść out+, out-.
Utworzenie biblioteki danych DNA. Utworzenie nici operacji realizujących zadany problem. Skopiowanie nici operacji w ilości odpowiadającej rozmiarowi biblioteki. Wykonanie zbioru cykli Whiplash PCR. Zebranie wyników.
Jak tworzyć pętle? Jak tworzyć ramki postaci: (x1+x2+, x3x3+x4x4+)? Co ze strukturami wyższego rzędu?
Wstęp. Jak programować w DNA? Idea oraz przykład. Problem FSAT charakterystyka i rozwiązanie za pomocą DNA. Jak w ogólności rozwiązywać problemy matematyczne z użyciem DNA? Gdzie są problemy? Podsumowanie