Simulationstool für die Sequenzentwicklung

Ich suche nach einem Werkzeug zur Simulation der Sequenzentwicklung bei einem bestimmten Mutationsmodell und einem Geburts-Todes-Modell. Mir sind Tools und Pakete wie INDELible, Seq-Gen und PhyloSim bekannt, aber sie simulieren die Evolution entlang phylogenetischer Bäume. Was ich möchte, ist, eine Sequenz zu geben und das Tool zu bitten, die Entwicklung dieser Sequenz durch N Generationen zu simulieren. Die Ausgabe sollte eine große Menge von Nachkommensequenzen sein. Ich habe darüber nachgedacht, selbst ein solches Tool zu schreiben, aber es ist immer besser, nach etwas bereits Codiertem zu suchen.

Antworten (1)

Es gibt eine Reihe von Populationsgenetik-Vorwärts- und Rückwärtssimulationsplattformen (Koaleszenz). Hier ist eine nicht erschöpfende Liste. Sie alle unterscheiden sich und Sie müssen ihr Handbuch durchgehen, um zu sehen, was Ihren Bedürfnissen besser entspricht.

Liste der Software

Hier ist eine lange Liste solcher Plattformen . Die Liste könnte heute jedoch wohl etwas veraltet sein und viele dieser Softwares könnten langsam sein oder von ihren Autoren aufgegeben werden.

Die gängigste Software meiner Erfahrung nach

Einige sind bekannter als andere. Ich persönlich habe bereits Verwendungen der folgenden Plattformen in Veröffentlichungen gesehen: SimCoal, Nemo, Slim und SFS_Code.

SimBit

Natürlich muss ich meine eigene Simulationsplattform SimBit angeben . Meiner Erfahrung nach ist SimBit normalerweise schneller als Nemo. Es ist langsamer als SFS_Code und SLim für sehr kleine Simulationen, wird aber viel schneller als SFS_Code und SLim, wenn Sie Simulationen mit einer geringeren Menge an genetischer Vielfalt benötigen.

Wichtigster Punkt zu diesen Softwares

Sie sollten Software basierend auf vergleichen

  • Verfügbarkeit des Autors, um Ratschläge zu geben und neue Funktionen zu bringen
    • Ich werde hier aus Respekt vor den Autoren nicht über meine persönlichen Erfahrungen sprechen!
  • Geschwindigkeit / RAM-Auslastung
    • Ich denke, SimBit ist normalerweise schneller (und verbraucht weniger RAM) als Nemo. SFS_code und SLim sind sehr schnell für Simulationen mit geringer genetischer Diversität, aber sehr langsam für Simulationen mit hoher genetischer Diversität.
  • Flexibilität
    • Nemo, SLim und SimBit sind sehr flexibel (aber sie tun unterschiedliche Dinge), aber SFS_code ist es nicht wirklich.
  • Benutzeroberfläche
    • Ich finde den Nemo-Fehlerbericht ziemlich schlecht. Ich mag den SimBit-Fehlerbericht. Die SLim-Schnittstelle ist sehr nett (mit Eidos) und es kommt sogar mit einer GUI (ich habe die GUI nie selbst benutzt).
  • Frei von Bugs
    • Mehrere Leute haben wichtige Fehler in SFS_code gefunden (persönliche Kommunikation und Erfahrung).

Etwas detaillierterer Vergleich zwischen Nemo, SLim, SFS_code und SimBit

Ich habe in der Vergangenheit persönlich NEMO, SFS_CODE und SLim verwendet (ich verwende jetzt nur noch SimBit). Ich kann also nur über diese 4 unten sprechen.

Alle vier Modelle werden von ihren Autoren gut aktualisiert und gepflegt, und natürlich hat jeder Zugriff auf den Quellcode.

SFS_code und SLim sind sehr schnell für kleine Simulationen. Das Problem von SFS_code und SLim ist, dass die RAM-Nutzung und Laufzeit eine exponentielle Funktion der genetischen Vielfalt sind. Das bedeutet, dass einige Simulationen schnell völlig unüberschaubar werden können. Aber es ist ein großartiges Werkzeug, wenn Sie wenig genetische Vielfalt erwarten.

SimBit ist normalerweise schneller als Nemo, zumindest für große Genome. Dieser Unterschied wird besonders deutlich für große Genome. Man könnte denken „Oh, mir geht es gut, ein paar zusätzliche Tage zu warten, um meine Ergebnisse zu erhalten“, aber der Geschwindigkeitsunterschied zwischen zwei Softwares kann auch einen Unterschied darin ausmachen, ob Sie eine Woche oder 20 Jahre warten müssen, um Ihre Ergebnisse zu erhalten Vernachlässigen Sie nicht die Bedeutung der Laufzeit und der RAM-Nutzung , ohne Ihren Bedarf abzuschätzen.

Nemo ist sehr flexibel, wenn es um die Reihenfolge der Lebenszyklusereignisse geht (z. B. Migration vor oder nach der Selektion) und die neueste Version ermöglicht die Simulation einer altersstrukturierten Bevölkerung. SimBit ist sehr flexibel, sehr schnell und ermöglicht die Simulation mehrerer Arten und ihrer ökologischen Wechselwirkungen. SFS_code ist weniger flexibel.


Meine einzigen Bedenken bezüglich NEMO sind, dass jedes Individuum nach der Fortpflanzung stirbt und dass es nicht mehr als 256 Allele gleichzeitig geben kann.

SFS_code begrenzt die Anzahl der Allele auf 4. Nemo begrenzt die Anzahl der Allele auf 256 (aber Sie können auch den Phänotyp verwenden und an jedem Locus eine Gleitkommazahl haben). SimBit verwendet entweder biallelische Loci, einen Block, in dem die Anzahl der Mutationen gezählt wird (max.: 256 Mutationen; dies ist anders als 256 Allele pro Beispiel) oder eine kontinuierliche Float-Nummer an jedem Locus für den Phänotyp. Brauchst du wirklich mehr Allele? Warum können Sie nicht einfach mehrere Loci verwenden, um eine Sequenz mit mehreren Allelen darzustellen? Die echte Biologie kann nur 4 Allele in ihrem kleinsten Locus haben! SimBit verwendet ein Bit-für-Bit-System. Wenn Sie beispielsweise 50.000 Allele benötigen, müssen Sie nur nach einer Sequenz von 16 Bits (2 Bytes) fragen, und Sie können sie erhalten 2 16 = 65 , 536 Allele.

Wenn Sie mehr Allele in einem einzigen Block benötigen (was mich a priori etwas überrascht), können Sie wahrscheinlich einfach den Autor fragen, und er akzeptiert möglicherweise, Ihnen zu helfen, wenn Sie ihn davon überzeugen, dass es von Interesse ist, diese Funktion hinzuzufügen (er könnte auch eher bereit sein, im Austausch gegen die Urheberschaft zu helfen, wenn Sie mehr Unterstützung benötigen).

Ich hoffe, das hilft. Viel Glück!

Nun, vielen Dank. Du hast mir viel Zeit gespart.
Obwohl ich kein Tool gefunden habe, das gut genug für die Aufgabe geeignet ist, enthält die Liste mehrere Links zu R- und C-Paketen, die mir eine erhebliche Menge an Aufwand ersparen würden, der erforderlich wäre, um selbst eines zu entwickeln.
Mehr Tipps kann ich dir leider nicht geben, da ich nicht genau weiß, wonach du suchst. Aber Sie können mit NEMO eine ganze Reihe von Dingen simulieren und hinterher die Gene jedes einzelnen Individuums erhalten. NEMO ist nicht sehr effizient, um eine tatsächliche Zeichenfolge von A, T, C, G zu simulieren (obwohl es machbar ist), aber vielleicht würde etwas wie SFS_code oder SimCoal den Zweck erfüllen. Vielleicht möchten Sie Nemo herunterladen (natürlich kostenlos) und die Beispielsimulation ausführen, die mit dem Paket geliefert wird, um einen besseren Eindruck davon zu bekommen, was es tut.
Meine einzigen Bedenken bezüglich NEMO sind, dass jedes Individuum nach der Fortpflanzung stirbt und dass es nicht mehr als 256 Allele gleichzeitig geben kann. Auf Koaleszenz basierende Techniken rekonstruieren Genealogien, anstatt den Sequenzraum aufzublähen. In meinem Labor arbeiten wir an der Struktur von Sequenzräumen und haben mehrere hohle Regionen gefunden. Mathematisch gesehen ist das Problem so kompliziert, dass wir denken, dass es besser ist, es mit maximaler Wahrscheinlichkeit zu versuchen, um mögliche Parameter der bakteriellen Sequenzentwicklung abzuschätzen, die zu diesen Vertiefungen geführt haben könnten. Daher die Notwendigkeit eines Simulators für die Evolution der Vorwärtssequenz.
@EliKorvigo Ich habe Ihren Kommentar noch einmal gelesen und festgestellt, dass ich ihn möglicherweise nicht richtig angesprochen habe. Ich habe meine Antwort bearbeitet. Der Kommentar ist jetzt 2,5 Jahre alt. Ich bin neugierig, was hast du am Ende gemacht?
Es tut mir schrecklich leid, dass ich deinen Silvester-Kommentar total verpasst habe. Am Ende habe ich ein paralleles grundlegendes Evolutionsmodell mit (fast) unbegrenzter Populationsgröße in C implementiert.