Projekt: Biomatematik och bioinformatik MAA135

Projekt: Biomatematik och bioinformatik MAA135
Grundläggande information
Projektet skall göras i grupper om 2-3 personer och består av en rapport på 5-15 sidor och en presentation på 20-30 minuter.
Det går bra att skriva rapport och presentation både på svenska eller engelska.
Rapporten ska lämnas in senast den 26 Maj 24.00, vill ni ha några kommentarer om hur ni kan förbättra rapporten går det bra att lämna in ett utkast av rapporten under kursens gång, dock senast 1 vecka
innan sista inlämningsdag.
Det är rekommenderat (men inget krav) att skriva rapporten i LATEX.
Tillsammans med slutgiltig rapport ska även andra filer som använts och kan vara relevanta för examinationen bifogas (t.ex. program kod, .tex filer, etc).
Betyget på projektet baseras i huvudsak på rapporten.
Viktiga saker att tänka på inför och under projektet
• Formulera vad ni vill göra noggrant och utförligt så tidigt som möjligt. Om ni ska kunna samarbeta i gruppen måste det vara klart vem som har vilken uppgift och när den behöver vara
klar.
• Om ni har problem eller frågor, hör av er till lärarna. Vi är här för att hjälpa till och ge råd.
• Om ni väljer ett projekt som är kopplat till ett ämne som dyker upp senare i kursen, börja ändå
så fort ni valt projekt. Stora delar av kursen är fristående.
• Referera era källor tydligt.
• Det viktigaste med rapporten och presentationen är att ni visat att ni har förstått ämnet ni studerat
så pass bra att ni kan förklara det för någon annan med era egna ord. Det finns knappast något
bättre sätt att lära sig än att förklara för andra, pröva gärna att göra det inom gruppen.
• Var inte rädda att be om hjälp och be om hjälp i god tid. Lärarna är här för att hjälpa till men de
har många andra arbetsuppgifter så vi kan inte alltid hjälpa er på en gång.
Undersökningar av populationsmodeller
I det här projektet skall ni se om ni kan hitta en bra populationsmodell för att förklara hur en verklig
population förändras över tiden.
• Välj minst två intressanta populationer och hitta data för den:
– Ni kan hitta information om populationen av många olika djur på olika platser i världen
i Global Population Dynamics Database (www3.imperial.ac.uk/cpb/databases/gpdd). Det
finns t.ex. data för rävar och harar i norra Sverige.
– Man kan hitta data för befolkningsmängden på WolframAlpha (wolframalpha.com) genom
att skriva ”population” och sedan landets namn.
• Fundera på vilka samband det kan finnas mellan populationerna och vilken modell som skulle
kunna beskriva sambandet. Om ni vill kan ni också försöka modellera populationera var för sig.
• Se om ni kan få modellen kommit fram till att passa datan.
Ni kan också utveckla er frågeställning ytterligare.
• Om er modell inte förklarar sambandet mellan två populationer, kan ni förbättra modellen genom
att hitta en tredje population?
• Om er modell förklarar populationsdynamiken på ett bra sätt, kan ni då använda den för att
förutsäga hur populationen kommer att utvecklas framåt i tiden? Hur långt fram i tiden?
• Om ni ändrar på parametrarna i modellen lite grann, kommer populationsdynamiken att förändras mycket eller lite?
Biologiska och medicinska modeller
• Välj från lista av modeller
• Beskriv modell matematiskt
• Beskriv hur modell kan användas och tolkas
• Ge exempel där modell används
Spridning av sjukdomar
Syftet med det här projektet är att beskriva olika modeller som kan användas för att beskriva hur
sjukdomar sprids i en population.
Detta projekt är inte inriktat på att jämföra de resultat som modellerna ger med verkligheten utan det
viktigaste är att beskriva hur modellerna konstrueras:
• Exakt vad beskriver modellen? Beskriver den hur sjukdomen sprids från individ till individ eller
beskriver den hur stor del av populationen som kommer att vara smittad/sjuk/frisk vid varje
tillfälle?
• Vilken information behövs för att konstruera modellen?
• Vad är skillnaden mellan diskreta, kontinuerliga, stokastiska och deterministiska modeller?
• Hur kan modellerna generaliseras ytterligare?
Målet är att beskriva åtminstone tre olika modeller. Ett bra ställe att börja titta kan vara första kapitlet i
”Dynamical Modeling and Analysis of Epidemics” av Jia Li och Zhien Ma. Den finns tillgänglig som
e-bok via MDHs bibliotek.
Modellering av antal kopior av DNA
En av de bidragande faktorerna till utvecklingen av en tumör är extra kopior av genetiskt material.
För att identifiera dessa områden med mer (eller mindre) kopior av DNA kan en så kallad array CGH
användas. Detta ger en estimering av mängd DNA för olika korta delar av DNA vilket sedan kan
användas för att segmentera en hel kromoson för att se vilka områden som har mer (eller mindre)
kopior än vad som är normalt.
I projektet bör ni först och främst tydligt beskriva problemet, vad ni vill uppnå och en del bakgrund så
som vad en array CGH är. För den andra delen av projektet vill ni att ni själva försöker göra denna typ
av segmentering utav riktig data av denna typ (antingen som ni hämtar själva eller så använder ni ett
dataset vi har förberett sedan innan). Problemet kan lösas med t.ex. dynamisk programmering (vilket
också är den metod vi rekommenderar). Har ingen i gruppen någon direkt erfarenhet i programmering
rekommenderar vi att ni antingen väljer ett annat ämne, eller säger till i mycket god tid då vi har
tidigare kod för detta som kan göras tillgänglig (efter att den har setts över).
Några artiklar som kan vara intressanta att titta på och annat material:
• A statistical approach for array CGH data analysis. Franc Picard, Marc Lavielle (2005)
www.biomedcentral.com
• The array CGH and its clinical applications. Shinawi M, Cheung SW (2008)
• Algorithms for the optimal identification of segment neighborhoods. Ivan E. Auger, Charles E.
Lawrence link.springer.com
• Hämta egen data kan göras från t.ex. www.ebi.ac.uk
• Exempeldata och/eller Matlab kod att arbeta med? Fråga Christopher.
Genetiska algoritmer
Genetiska algoritmer är en typ av optimeringsalgoritm baserad på hur gener utvecklas i verkligeheten.
Genetiska algoritmer används framförallt på problem som annars är väldigt svåra att lösa för att istället försöka hitta en så bra lösning som möjligt, t.ex. om där är stora icke-linjära beroenden, eller om
problemet i sig är för stort för att lösa med många andra metoder.
En genetisk algoritm i stora drag går till som så att den börjar med att slumpa ett antal lösningar så
kallade "individer", som sorteras beroende på hur bra de löser problemet. Efter det så skapas nya lösningar genom att kombinera bra tidigare lösningar. Dessa nya lösningar genomgår sedan vissa mindre
slumpade ändringar så kallade mutationer för att slutligen bli startpopulationen för nästa steg.
I projektet förväntas ni att i stora drag förklara hur de olika stegen i en genetisk algoritm fungerar,
ge något/några exempel på hur lösningar kan väljas ut och sedan kombineras till nya lösningar samt
hur mutationer kan gå till. Ni bör även ge en kort förklaring hur Genetiska algoritmer hänger ihop
med genetiska termer så som chromosomer, gener och mutationer. Har ni läst någon programmering
tidigare är ni starkt rekommenderade att även implementera en egen Genetisk algoritm och testa att
använda denna för att lösa något exempel. Två introduktioner till genetiska algoritmer som kan vara
intressanta att läsa är:
• A Genetic Algorithm Tutorial by Darrell Whitley.
• Introduction to Genetic Algorithms by Erik D. Goodman, (the tutorial itself is found at the
bottom of the page).
Neurala nätverk
Neurala nätverk är en beräkningsmodel inspirerad av hur våra hjärnor fungerar. Neurala nätverk används speciellt inom t.ex. mönster igenkänning så som att hitta ett ansikte i en bild men kan också
användas till många andra komplicerade optimerings problem.
Ett neuralt nätverk kan representeras med en graf, där varje nod får någon indata antingen från en
annan nod eller indata till systemet. Varje nod gör sedan någon väldigt enkel beräkning och skickar
sedan vidare resultatet till en eller flera nya noder eller som utdata från systemet.
Parametrar, länkar mellan noder, o.s.v. optimeras för problemet i fråga genom en träningsprocess (så
kallad machine learning").
I projektet bör ni förklara grunderna av vad ett neuralt nätverk är, samt något om relationen med hur
en hjärna / centrala nervsystemet fungerar.
Ni kan också försöka implementera ett enkelt neuralt nätverk och försöka använda det på ett enkelt
problem. Ett exempel kan vara att försöka lära det att känna igen en kvadrat(eller något annat) i en
liten svartvit bild.
• Kan ni hitta kvadraten oavsett var i bilden den ligger?
• Kan ni lära nätverket att känna igen kvadraten även om ni varierar storleken?
• Går det lära nätverket att inte bara hitta om där finns någon kvadrat, utan också var den ligger?
• Annat att titta på kan vara om ni har flera kvadrater eller roterar kvadraten.
Ni kan självklart komma med förslag på något eget problem också, vi har även ett annat alternativ
relaterat till modellering av inlärning av blinkreflexer som kan vara intressant. Hör av er till Christopher
om ni vill höra mer.
Jag rekommenderar att låna någon bok i ämnet, t.ex. finns följande böcker på biblioteket (och många
fler).
PRINCIPLES OF ARTIFICIAL NEURAL NETWORKS (3RD EDITION) (EBSCO E-bok)
Artificial Neural Networks (K300)
Neural networks for pattern recognition (P4152)