<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>House-Tiere              -d(~_~)b- &#187; Bioinformatik</title> <atom:link href="http://house-tiere.de/category/bioinformatik/feed/" rel="self" type="application/rss+xml" /><link>http://house-tiere.de</link> <description>.. was auch immer das heißen mag.</description> <lastBuildDate>Sun, 05 Jun 2011 15:49:42 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.1.3</generator> <item><title>Neuronale Netze und Matlab</title><link>http://house-tiere.de/bioinformatik/neuronale-netze-und-matlab/</link> <comments>http://house-tiere.de/bioinformatik/neuronale-netze-und-matlab/#comments</comments> <pubDate>Thu, 30 Jul 2009 16:10:13 +0000</pubDate> <dc:creator>Woody</dc:creator> <category><![CDATA[Bioinformatik]]></category> <category><![CDATA[Scripts]]></category> <category><![CDATA[künstliche Intelligenz]]></category> <category><![CDATA[matlab]]></category> <guid
isPermaLink="false">http://house-tiere.de/?p=348</guid> <description><![CDATA[In meinem Bio-Seminar, wo ein neuronales Netz entwickelt werden sollte, hab ich mich intensiv mit der Neural Network Toolbox in Matlab beschäftigt. Dieser Teil der Matlab Bioinformatic Tools ermöglicht einem relativ schnell und einfach ein neuronales Netz zur Mustererkennung zu entwickeln. Auf den ersten Blick scheint es zwar ein wenig verwirrend, aber hat man sich [...]]]></description> <content:encoded><![CDATA[<p>In meinem Bio-Seminar, wo ein neuronales Netz entwickelt werden sollte, hab ich mich intensiv mit der <em>Neural Network Toolbox</em> in <a
href="http://www.mathworks.com/products/neuralnet/">Matlab</a> beschäftigt. Dieser Teil der <em>Matlab Bioinformatic Tools </em>ermöglicht einem relativ schnell und einfach ein neuronales Netz zur Mustererkennung zu entwickeln. Auf den ersten Blick scheint es zwar ein wenig verwirrend, aber hat man sich erstmal eingearbeitet sind Modifikationen an Neuronalen Netz, Netztyp, Trainingsparameter etc. relativ leicht zu bewerkstelligen.<span
id="more-348"></span></p><p>Man braucht zunächst eine Matrix mit Trainingsmustern. Ein einzelnes Muster besteht aus einem Vektor, die Vektoren zusammen ergeben dann die Muster-Matrix. Zu jedem Muster gehört zusätzlich eine Klassifizierung, bei binären Problemen (&#8220;Ist vom Muster vom A oder B?&#8221;) ist dies im Allgemeinen 1 oder 0. Somit hat man als Zielmatrix einen transponierten Vektor, für jedes Muster ein Klassifizierungswert 1 oder 0. Eine neue Instanz eine neuronalen Netzes erhält man durch:</p><div
class="wp_syntax"><div
class="code"><pre class="matlab" style="font-family:monospace;">net = newff<span style="color: #080;">&#40;</span>MusterMatrix,ZielMatrix, <span style="color: #080;">&#91;</span><span style="color: #33f;">10</span> <span style="color: #33f;">2</span><span style="color: #080;">&#93;</span>, <span style="color: #080;">&#123;</span><span style="color:#A020F0;">'logsig'</span>,<span style="color:#A020F0;">'logsig'</span><span style="color: #080;">&#125;</span>,<span style="color:#A020F0;">'trainrp'</span>,<span style="color:#A020F0;">'learngdm'</span>,<span style="color:#A020F0;">'mse'</span><span style="color: #080;">&#41;</span>;</pre></div></div><p>Die ersten beiden Parameter geben somit die Muster und ihre Klassifizierung an. Man kann hierfür auch zusätzlich die Testdaten nehmen, die Muster werden in diesem Schritt nur benötigt, um die Größe der Eingabeschicht zu ermitteln, Werte zu normalisieren und eventuell die Koordinate, für die Werte in jedem Muster gleich ist, zu ignorieren (in diesem Fall wird keine Verbindung zur verdeckten Schicht erstellt).<br
/> Der dritte Paramter ist ein Zeilenvektor, in diesem Beispiel (10 2). dieser spezifiziert die Anzahl der verdeckten Schichten. Eingabeschicht und Ausgabeschicht werden wie bereits erwähnt automatisch anhand der Muster und der Sollklassifizierung ermittelt. Mit (10, 2) würde man zum Beispiel 2 verdeckte Schichten mit 10 bzw. 2 Neuronen erstellen.<br
/> Der nächste Parmater ist ein Cellarray und spezifiziert die zu nutzende <a
href="http://de.wikipedia.org/wiki/Aktivierungsfunktion#Aktivierungsfunktionen"><em>Aktivierungsfunktion</em></a> für jedes Netz. Die logistische Funktion (<em>logsig</em>) ist meist die Regel bei neuroanlen Netzen.<br
/> Dann folgenden noch 3 Strings, die Trainingsfunktion, die Lernfunktion und die Fehlerfunktion, am gebräuchlichsten ist wohl der mittlere quadratische Fehler (<em>mse</em>). Als Trainingsfunktion bevorzuge ich persönliche <a
href="http://de.wikipedia.org/wiki/Resilient_Propagation">Resilient Backpropagation</a> (<em>trainrp</em>), sie bezieht die Historie des Fehlergradienten mit ein und ist in der Regel performanter als <a
href="http://de.wikipedia.org/wiki/Backpropagation">Standard-Backpropagation</a>. Standardmäßig ist die Trainingsfunktion in der Toolbox jedoch Levenberg-Marquardt Backpropagation (<em>trainlm</em>).<br
/> Damit hat man ein Netz erstellt, dass nun trainiert werden soll, dazu benutzt man ganz einfach train:</p><div
class="wp_syntax"><div
class="code"><pre class="matlab" style="font-family:monospace;">net = train<span style="color: #080;">&#40;</span>net,MusterMatrix,ZielMatrix<span style="color: #080;">&#41;</span>;</pre></div></div><p>Dabei sollte man natürlich nur Trainingsdaten nehmen. Es öffnet sich ein Fenster, dass Fortschritt und Performanz in jeder Iteration anzeigt. Anschließend kann man das Netz testen, oder für einzelne Muster auswerten:</p><div
class="wp_syntax"><div
class="code"><pre class="matlab" style="font-family:monospace;">out = sim<span style="color: #080;">&#40;</span>net, TestDaten<span style="color: #080;">&#41;</span>;</pre></div></div><p><em>out</em> enthält anschließend vorhergesagte Werte.<br
/> Vor dem Training kann man auch noch einige Anpassungen vornehmen, z.B.</p><div
class="wp_syntax"><div
class="code"><pre class="matlab" style="font-family:monospace;">net.<span style="">trainParam</span>.<span style="">showWindow</span> = <span style="color: #33f;">0</span>; <span style="color: #228B22;">% Gui nicht anzeigen, hilfreich bei automatischen tests</span>
net.<span style="">trainParam</span>.<span style="">lr</span> = <span style="color: #33f;">0.1</span>;              <span style="color: #228B22;">% Lernarte ändern</span>
net.<span style="">trainParam</span>.<span style="">epochs</span> = <span style="color: #33f;">100</span>;      <span style="color: #228B22;">% Anzahl der Trainigsdurchläufe</span>
net.<span style="">trainParam</span>.<span style="">goal</span> = 1e-3;         <span style="color: #228B22;">% Abbruchbedingung bezüglich Fehler</span></pre></div></div><p>Auch für das Netz kann man zahlreiche Änderungen vornehmen, wenn man zum Beispiel nicht will, dass gleiche Werte in den Mustern ignoriert werden und trotzdem Verbindungen zur verdeckten Schicht erstellt werden, kann mal folgendes machen:</p><div
class="wp_syntax"><div
class="code"><pre class="matlab" style="font-family:monospace;">ipf = <span style="color: #080;">&#123;</span><span style="color: #080;">&#125;</span>;
tpf = <span style="color: #080;">&#123;</span><span style="color: #080;">&#125;</span>;
ddf = <span style="color:#A020F0;">'dividerand'</span>;
net = newff<span style="color: #080;">&#40;</span>MusterMatrix,ZielMatrix, <span style="color: #080;">&#91;</span><span style="color: #33f;">10</span> <span style="color: #33f;">2</span><span style="color: #080;">&#93;</span>, <span style="color: #080;">&#123;</span><span style="color:#A020F0;">'logsig'</span>,<span style="color:#A020F0;">'logsig'</span><span style="color: #080;">&#125;</span>,<span style="color:#A020F0;">'trainrp'</span>,<span style="color:#A020F0;">'learngdm'</span>,<span style="color:#A020F0;">'mse'</span>,ipf,tpf,ddf<span style="color: #080;">&#41;</span>;</pre></div></div><p>Zur Bestimmung der Qualität erstellter Netze gibt es noch einige weitere Tools, Stichwort<em> rocplot</em>.<br
/> Kleiner Wehrmutstropfen ist, dass die Neural Network Toolbox manchmal sehr knapp dokumentiert ist, vor allem wenn es um kleine Parameter geht. Auch google hilft einem nicht immer weiter. Oft hilft nur probieren und mal in den Quellcode schauen.<br
/> Nichts desto trotz ist es eine mächtige Toolbox, man kann viele Netzarten und -architekturen realisieren, wie z.B. <a
href="http://de.wikipedia.org/wiki/Time_Delay_Neural_Network">Input-Time-Deay-Netze</a>, <a
href="http://de.wikipedia.org/wiki/Elman-Netz">Elman-Netze</a>, rekurrente Netze. Und dabei kann man vieles selber nach eigenen Bedürfnissen anpassen, ohne dass man eine komplett neue Software schreiben muss.</p> ]]></content:encoded> <wfw:commentRss>http://house-tiere.de/bioinformatik/neuronale-netze-und-matlab/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Cologne Spring Meeting 2009: The Variable Genome</title><link>http://house-tiere.de/bioinformatik/cologne-spring-meeting-2009-the-variable-genome/</link> <comments>http://house-tiere.de/bioinformatik/cologne-spring-meeting-2009-the-variable-genome/#comments</comments> <pubDate>Sat, 21 Mar 2009 20:02:11 +0000</pubDate> <dc:creator>Woody</dc:creator> <category><![CDATA[Bioinformatik]]></category> <category><![CDATA[DNA]]></category> <category><![CDATA[Genom]]></category> <category><![CDATA[Konferenz]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[Neandertaler]]></category> <category><![CDATA[Sequenzierung]]></category> <guid
isPermaLink="false">http://house-tiere.de/?p=71</guid> <description><![CDATA[Ja, letzte Woche, vom 18. bis 20. März, war mal wieder das alljährliche Cologne Spring Meeting &#8211; und ich war auch da, zumindest am Mittwoch. Thema dieses Jahr war The Variable Genome. Dieses Jahr stehen die Themen natürlich auch unter dem Schatten des Darwin-Jahres. Aufgefallen bei den Vorträgen ist mir vor allem, dass fast alle [...]]]></description> <content:encoded><![CDATA[<p>Ja, letzte Woche, vom 18. bis 20. März, war mal wieder das alljährliche <a
href="http://www.genetik.uni-koeln.de/spring2009/">Cologne Spring Meeting</a> &#8211; und ich war auch da, zumindest am Mittwoch. Thema dieses Jahr war The Variable Genome. Dieses Jahr stehen die Themen natürlich auch unter dem Schatten des Darwin-Jahres. Aufgefallen bei den Vorträgen ist mir vor allem, dass fast alle mittlerweile mit <a
href="http://en.wikipedia.org/wiki/454_Sequencing">454-Sequencing</a> arbeiten. Mittwochs gings dann um The Impact of New Technologies in Genomics.</p><p><span
id="more-71"></span>Zunächst hat <a
href="http://www.sanger.ac.uk/Teams/faculty/durbin/">Dr. Richard Durbin</a>, ein ziemlich bekannter Bioinformatiker vom Trust Sanger Institute, einen Vortrag über &#8220;Studying human genetic variation by whole genome sequencing&#8221; gehalten. Dabei gings vor allem um das <a
href="http://en.wikipedia.org/wiki/The_1000_Genomes_Project">1000 Genomes Project</a>,  2009 sollen hier bereits 3 Populationen je 400 Menschen sequenziert worden sein. Besonders interessant, dass man anhand der genetischen Information (es wurde vor allem die Variation betrachtet, SNPs, das Finden einer korrekten Sequenz stand nicht im Mittelpunkt) und einen Hidden Markov Models Wanderungsbewegungen und Falschenhälse der Vergangenheit identifizieren kann.</p><p>Dann hat noch Adrian Briggs in Vertretung für Sven Pääbo, vom Max Planck Institut für evolutionäre Anthropologie, einen sehr interessanten Vortrag &#8220;A Neadertal perspective on human origins&#8221; gehalten. Hier wurde aus verschiedenen Neadertaler-Knochen Proben entnommen und nach aufwändigen Reinigungs-, Filter- und Rekonstruktionsprozessen stark fragmentierte DNA gewonnen, die man tatsächlich noch sequenzieren konnte.</p><p>Am spannendsten fand ich persönlich den Vortrag von Stephan C. Schuster, von der Pennsylvania University, &#8220;Genomics of extinct und endangered species&#8221;. Zunächst wurden hier eine ausgestorbene Tierarten sequenziert, <a
href="http://www.thylacine.psu.edu/">Tylacine</a>, <a
href="http://www.mammoth.psu.edu/">Mammuts</a>, Whooly Rhino und Moa. Realsiert wurde das ganze über Haare, Horn und /oder  Hufe, die man aus Museen bekam. Es konnte z.B. festgestellt werden, dass es wohl zwei Unterarten von Mammuts gab, die sich morphologisch wohl nicht trennen ließen. Zuletzt wurde dann noch das <a
href="http://www.tassiedevil.com.au/research.html">Tasmanian Devil Sequencing Project</a> vorgestellt. Die vom Aussterben bedrohten Tasmanischen Teufel leiden unter der bislang mysteriösen <a
href="http://en.wikipedia.org/wiki/Devil_facial_tumour_disease">Devil facial tumour disease</a>, deren Ursachen lange Zeit unbekannt und umstritten waren. Die Population wurde in den letzten Jahren dadurch beträchtlich dezimiert. DFTD ist nach neusten Erkenntnissen eine übertragbare, parasitäre Krebserkrankung, was eine Seltenheit gibt, denn es gibt daneben nur noch einen anderen bekannten übertragbaren Krebs. Die Ergebnisse der Sequenzierung legen laut Schuster nahe, dass die Ursache für die rasche Verbreitung ein Mangel an genetischer Diversität ist, der die Tiere anfällig macht. Außerdem fanden sie Subpopulationen, die eine höhere Diversität aufweisen und gegen DFTD eine gewisse Resistenz aufweisen. Demnach seien die Chancen gut, dass DFTD nicht alle Tasmanischen Teufel befallen wird und ein Fortbestand der Art möglich ist. Außerdem wurde die Vermutung geäußert dass es sich hierbei um eine natürliche Populationsschwankung handeln könnte, die in einer bestimmten Frequenz auftritt.</p><div
id="attachment_73" class="wp-caption alignright" style="width: 206px"><img
class="size-medium wp-image-73" title="750px-tuz-logosvg" src="http://house-tiere.de/wp-content/uploads/750px-tuz-logosvg-300x240.png" alt="Tuz, im nächsten Linux Kernel löst er einmalig den Pinguin ab." width="196" height="156" /><p
class="wp-caption-text">Tuz - Im nächsten Linux Kernel löst er einmalig den Pinguin ab.</p></div><p>Nebenbei will auch Linus Torvalds auf das Schicksal der Tasmanischen Teufel aufmerksam machen, so soll im Linux Kernel 2.6.29 der Tasmanische Teufel unter den Namen <a
href="http://http://www.h-online.com/open/Kernel-Log-Tasmanian-devil-to-be-Linux-s-temporary-mascot-new-Radeon-drivers--/news/112890">Tuz</a> die Funktion des Linux Maskottchen übernehmen, der bereits auf der Linux Konferenz in Australien als Maskottchen gedient hat. Aufällig ist hier der aufgesetzte Pappschnabel, der als Metapher für das durch DFTD entstellte Gesicht des Tasmansichen Teufels dienen soll.</p><p>Für ein wenig Schmunzeln in der anschließenden Fragerunde sorgte das Auftreten des Intelligent-Design-Anhängers <a
href="http://www.spiegel.de/wissenschaft/natur/0,1518,607704,00.html">Wolf-Ekkehard Lönnig</a>, der versuchte, die Belege für die Kälteanpassung der Mammuts in Frage zu stellen.</p><div
id="attachment_76" class="wp-caption alignleft" style="width: 196px"><img
class="size-medium wp-image-76" title="dsc00074" src="http://house-tiere.de/wp-content/uploads/dsc00074-300x225.jpg" alt="Britischer Autor zeigt Errungenschaften seiner Tiefseeexpedition" width="186" height="139" /><p
class="wp-caption-text">Britischer Autor zeigt Errungenschaften seiner Tiefseeexpedition</p></div><p>Nach  zwei weiteren Vorträgen, las zum Schluss noch der britische Autor <a
href="http://en.wikipedia.org/wiki/Redmond_O%27Hanlon">Redmond O&#8217;Hanlon</a> aus seinem Buch &#8220;Trawler&#8221; und zeigte ein paar Dias seiner Tiefseeexpedition.</p><p>Gerne hätte ich mir noch Donnerstags und Freitags ein paar Vorträge angehört, aber dafür fehlte mir leider die Zeit.</p> ]]></content:encoded> <wfw:commentRss>http://house-tiere.de/bioinformatik/cologne-spring-meeting-2009-the-variable-genome/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
