Auffinden von Proteinen in der DNA-Sequenz

Ich muss eine Aufgabe für eine Universitätsaufgabe erledigen und ich muss einige Dinge verstehen, bevor ich herausfinde, wie es geht.

Die Aufgabe ist folgende:

Finden Sie Übereinstimmungen bekannter Proteine ​​(DNA-PolyI, II, III) mit der spezifischen E.Coli-DNA-Sequenz.

Ich habe im FASTA - Format die Proteinsequenz von DNA-Poly3 DNA-Poly1 von E. coli (Stamm K-12) und die gesamte DNA-Sequenz von E. coli heruntergeladen.

Ich habe ein bisschen online studiert und mit dem BioRuby - Edelstein und der Ruby-Programmiersprache ein Programm geschrieben, das DNA in Proteinsequenzen übersetzt. Dann versuchte ich, die bekannte DNA-Poly3-Sequenz abzugleichen, aber es stimmte nicht überein. Nachdem ich wieder ein bisschen online gesucht hatte, lernte ich den ORF und die 6 möglichen Lesearten jedes Rahmens kennen. Je länger die ORF-Konformation in Bezug auf Codons gewählt wird, es gibt jedoch keine Möglichkeit, mit Sicherheit zu sagen, dass das Protein unter Verwendung dieses Rahmens hergestellt wurde.

Dann habe ich von TATA-Boxen gelesen, aber ich kann diese nicht verwenden, da sie nur in Eukaryoten und Archaea zu finden sind.

Wie sollte ich also vorgehen, um dieses Problem zu lösen: Wie kann ich nachweisen , dass das DNA-Poly3 von einem bestimmten Bereich (Gen) in der DNA-Sequenz produziert wird?

Vielen Dank für Ihre Zeit,

p.s. Einblicke und Hinweise sind sehr willkommen, da dies für mich nur die Spitze des Eisbergs ist und ich sehr bereit bin, Bioinformatik zu studieren :-)

BEARBEITEN : Dies ist ein Update für Informationen, die in der entsprechenden Antwort angefordert werden

Die Dateien, die ich verwendet habe, sind die folgenden:

➜  Bioinfo  ruby dogma.rb 
----------------
DNA Length: 4639675
gi|48994873|gb|U00096.2| Escherichia coli str. K-12 substr. MG1655, complete genome
----------------
DNA Poly-1 sample: 928
gi|16131704|ref|NP_418300.1| fused DNA polymerase I 5'->3' polymerase/3'->5' exonuclease/5'->3' exonuclease [Escherichia coli str. K-12 substr. MG1655]

Sie können sie hier herunterladen: E.Coli DNA und E.Coli DNA-Poly1 .

HINWEIS : Mein Probenprotein ist DNA-Polymerase I (und nicht 3).

Müssen Sie ein Programm schreiben, das dies tut, oder sind vorhandene Tools in Ordnung?
Ich sollte das Programm schreiben und ein Webinterface einrichten.
OK, aber brauchen Sie einen völlig neuen Algorithmus oder können Sie vorhandene Tools wie BLAST verwenden? Wenn es sich um einen Informatikkurs handelt, sollten Sie die Algorithmen selbst implementieren (schätze ich), wenn es sich um einen Bioinformatikkurs handelt, sollten Sie das Rad nicht neu erfinden. Es gibt viele, sehr, sehr gute Programme, die bereits das tun, was Sie brauchen. Ist es in Ordnung, sie in Ihr Webinterface zu integrieren?
Ja, ich sollte (auf keinen Fall) etwas neu erfinden. Ich kann bereits verwendete Algorithmen verwenden. Ich weiß, dass es sehr ausgeklügelte Werkzeuge für den Job gibt. Was ich wirklich zuerst wissen möchte, ist, wie es funktioniert, dann kann ich fertige Algorithmen verwenden.
Um ein klares Beispiel zu geben, alle meine Daten stammen von ncbi (BLAST). Wie kommt es, dass ich nicht mithalten kann? Ich habe alle 6 möglichen Konformationen von ORFs ausprobiert und kann immer noch keine Sequenz "produzieren", die mit DNA-Poly3 übereinstimmt! :-/
Sind die RBS- und Shine Delgarno-Sequenzen nicht ein viel besserer Suchbegriff?
Hallo @bobthejoe, könnten Sie mir Links geben und einen kurzen Hinweis darauf geben, warum sie besser geeignet sind?
Die DNA-Sequenz, die Sie haben, ist das gesamte Genom des Bakteriums. Es enthält eine Vielzahl von ORFs, die für alle Arten von Proteinen kodieren. Was Sie tun müssen, ist BLAST zu verwenden oder besser zu entlasten, wie in meiner Antwort beschrieben. Das gesamte Genom zu übersetzen und dann zu versuchen, ein einzelnes Protein zu finden, ist sowohl unglaublich ineffizient und fehleranfällig als auch sehr schwierig.
Ich versuche, einige Ergebnisse zu erstellen. Nachdem ich die Handbücher gelesen hatte - es hat eine unglaubliche Menge an Optionen - habe ich das folgende CLI verwendet: exonerate -Q protein -T dna -E -m protein2genome:bestfit dna-polyI.e-coli.fasta e-coli-K12.fasta und ich warte darauf, dass es fertig ist. Meine Hardware ist ein Macbook Air i5 1,7 Ghz mit SSD.
Sie interessieren sich hier nur für das beste Ergebnis, da dies das kodierende Gen sein wird. Sie wollen NICHT erschöpfend (E), das ist nur für stark divergierende Sequenzen nützlich, nicht wenn Sie an derselben Art arbeiten. Versuchen Sie Folgendes: exonerate -m p2g dna-polyI.e-coli.fasta e-coli-K12.fastaAuf meinem Laptop dauerte es ungefähr 2 Sekunden, und das erste Ergebnis ist das, was Sie wollen.

Antworten (3)

WICHTIGE BEARBEITUNG: In Ihrem speziellen Fall, wenn Sie mit bakteriellen Genen arbeiten, ist das Spleißen kein Problem, da Bakterien keine Introns haben. Ich lasse die Informationen hier, da sie für jemand anderen nützlich sein könnten. Ich empfehle Ihnen jedoch, sich auf die UTRs zu konzentrieren, da diese wahrscheinlich Ihre Probleme verursachen.


Es gibt drei Dinge, die Ihnen Probleme bereiten könnten. Ich werde jeden kurz ansprechen. Ich werde über alle Gene sprechen, bedenken Sie, dass Bakterien keine Introns haben, daher ist jede Diskussion über Spleißen und/oder Introns und Exons nicht direkt relevant für Ihr Problem.

1. UTRs

Untranslated Regions (UTRs) sind Sequenzen am Anfang und Ende eines Gens, die nicht in Protein übersetzt werden. UTRs sind Regionen, die Teil der ursprünglichen genomischen Sequenz sind, sie sind auch Teil der reifen mRNA (tatsächlich werden UTRs manchmal durch Spleißereignisse modifiziert, sie sind Exons, keine Introns) , aber sie werden nicht in Protein übersetzt. Schauen Sie sich zur Veranschaulichung diese vereinfachte Darstellung eines mRNA-Moleküls an:

Geben Sie hier die Bildbeschreibung ein

Nur die grünen Exons schaffen es in das endgültige Protein. Introns werden herausgespleißt und UTRs werden nicht übersetzt.

Wenn Sie also das gesamte Gen übersetzen, erhalten Sie nicht das richtige Protein.

2. Leserahmen

Gene werden in Wörtern aus drei Buchstaben (den Codons) abgelesen. Die Sequenz ATGTGTACCTGA hat sechs mögliche Leserahmen (drei auf jedem Strang), die wie folgt gelesen und übersetzt werden können:

  • 5'3' Rahmen 1

        ATG TGT ACC TGA
         M   C   T  Stop
    
  • 5'3' Rahmen 2

        a TGT GTA CCT ga
           C   V   P    
    
  • 5'3' Rahmen 3

        at GTG TAC CTG a
            V   Y   L    
    
  • 3'5' Rahmen 1

    TCA GGT ACA CAT
     S   G   T   H  
    
  • 3'5' Rahmen 2

    t CAG GTA CAC at
       Q   V   H    
    
  • 3'5' Rahmen 3

    tc AGG TAC ACA t
        R   Y   T    
    

DNA ist doppelsträngig. Die Sequenz eines Strangs ist komplementär zu der des anderen. Wenn Sie also einen Strang haben, können Sie die Sequenz des komplementären Strangs ableiten. Gene können auf beiden Strängen gefunden werden, die beiden sind biologisch gleichwertig. Sequenzierungsprojekte wählen jedoch einen der beiden Stränge (zufällig) und nennen ihn den Plus-Strang (+) und speichern dann alle Sequenzen in Bezug auf diesen Strang. Das bedeutet, dass die genomische Sequenz, die Sie aus einer Datenbank herunterladen, manchmal die Ergänzung der tatsächlichen Sequenz ist, nach der Sie suchen.

3. Namen

Ich habe das mal jemanden auf einer Konferenz sagen hören

Biologen teilen lieber eine Zahnbürste als einen Gennamen.

Das mag zwar etwas übertrieben sein, aber die Namenskonventionen variieren zwischen Forschungsgemeinschaften, Arten und Datenbanken. Sind Sie also sicher , dass Sie das richtige Gen heruntergeladen haben? Wo hast du es her? Wie haben Sie es identifiziert? Enthält die Sequenz auch stromaufwärts/stromabwärts gelegene regulatorische Regionen, Promotoren, Enhancer und dergleichen? Wenn Sie die genaue Sequenz posten, die Sie verwenden möchten, kann ich Ihnen spezifischere Hilfe geben.

Beispielsweise sind die ersten 20 Treffer bei der Suche nach E. coli DNA Polymerase 3 in der Nukleotiddatenbank von ncbi Schrotflintensequenzen des gesamten Genoms. Diese entsprechen nicht der gesuchten Gensequenz. Sie sind riesige Teile des Genoms (oder sogar des gesamten Genoms), die Ihr Gen und viele andere enthalten werden. Sehen Sie sich den Abschnitt Tools unten an, um Vorschläge zum Extrahieren Ihres Gens aus dem gesamten Genom zu erhalten.


4. Spleißen (für Bakterien irrelevant)

Ein weiteres mögliches Problem ist das Spleißen . Beginnen wir mit den Grundlagen, der Prozess der Herstellung eines eukaryotischen (Bakterien haben keine Introns) Proteins aus einer genomischen Sequenz ist im Bild unten zusammengefasst (leicht modifiziert von hier ):

Geben Sie hier die Bildbeschreibung ein

Die Transkription beginnt an der Transkriptionsstartstelle (TSS), aber nicht die gesamte transkribierte Sequenz wird in Protein übersetzt. Zuerst werden die Introns aus der mRNA gespleißt, um die reife mRNA herzustellen (andere Dinge wie Capping und Poly-A-Addition treten ebenfalls auf, sind hier aber nicht relevant). Die reife mRNA enthält also die Exons des codierenden Gens. Dies bedeutet, dass eine lineare Übersetzung der Gensequenz nicht dem produzierten Protein entspricht. Sie müssen das Spleißen berücksichtigen.

Denken Sie auch daran, dass das Spleißen den Leserahmen verändert .

Wenn nun die Sequenz ATGTbeispielsweise an gespleißt würde AT/gt(die meisten Spleißereignisse schneiden/verbinden an GT/AG-Standorten) und mit der Sequenz verbunden agATTATTwürde, wäre die resultierende (gespleißte) Sequenz (der Splicing-Prozess entfernt die gtaus der ersten Sequenz und die agvon der zweiten):

ATATTATT

Wie Sie sehen können, hat sich der Leserahmen nun geändert. Wo wir vorher im ersten Leserahmen das Codon hatten ATG, das kanonische Translationsinitiationscodon, haben wir jetzt ATAwelche Codes für Isoleucin (I). Ich hoffe, das ist klar, der Hauptpunkt ist, dass das Spleißen den Leserahmen verändern kann.


5. Werkzeuge

OK, das war der Hintergrund. Jetzt müssen Sie vorhandene Programme verwenden, die Spleißstellen modellieren und eine Proteinsequenz korrekt an genomischer DNA ausrichten können. Meine persönlichen Favoriten sind Exonerate und Genewise . Auf einer Debian-basierten Linux-Distribution können Sie sie mit diesem Befehl installieren:

sudo apt-get install exonerate wise

Um das Protein dann an seinem Gen auszurichten, tun Sie Folgendes:

exonerate -m protein2genome -n 1 prot.fa dna.fa > out.txt 

oder

genewise -pep -pretty -gff -cdna prot.fa dna.fa > out.txt 

Meiner Erfahrung nach ist Exonerate (viel) schneller, aber genewise ist etwas genauer. Normalerweise verwende ich exonerate, wenn ich es mit einem ganzen Genom zu tun habe, und genewise, wenn ich nur ein paar Kilobasen Sequenz habe. Beide sind sehr gut und beide werden in der Lage sein, ein Protein an seinem Ursprungsgenom auszurichten.

Ich werde nicht alle diese Optionen erläutern, da dies den Rahmen dieser Website sprengen würde. Werfen Sie einen Blick auf ihre Dokumentation (die ziemlich gut und klar ist) und wenn Sie immer noch Probleme haben, können Sie eine Frage auf unserer Schwesterseite Bioinformatics Stackexchange stellen

Alternativ könnten Sie Ihre Webanwendung mit dem BLAT -Dienst des ucsc-Genombrowsers verknüpfen. Klicken Sie hier , um die Ergebnisse des Alignments des RPB1-Proteins der Untereinheit der menschlichen DNA-gesteuerten RNA-Polymerase II anzuzeigen .

Danke für die Antwort! Ich werde die Antwort in ein paar Stunden studieren, wenn ich Zeit habe! Vielen Dank für Ihre Zeit!
Nur um Sie wissen zu lassen, die Möglichkeit, sich auf den Stack Exchange-Netzwerkseiten zu bedanken, besteht darin, die Antwort zu positiv zu bewerten und, wenn (und nur wenn) Ihre Frage beantwortet wird, sie zu akzeptieren. Danke wird natürlich immer geschätzt, ich lasse Sie nur wissen, wie diese Seiten funktionieren. Wie auch immer, du bist sehr willkommen :).
Das OP fragte nach einem E. coli-Protein und dem E. coli-Genom. Ich glaube nicht, dass sein Problem irgendetwas mit dem Spleißen zu tun hat.
@AlanBoyd ah, du machst einen guten Punkt. Wahrscheinlich bis zu den UTRs dann. Ich werde meine Antwort bearbeiten.
Hallo, danke für die Erklärung, es war aufschlussreich, ich werde versuchen, heute Abend daran zu arbeiten. Wissen Sie, welches das Hauptverfahren ist, durch das das Protein an der DNA ausgerichtet wird? :-) Danke noch einmal!
Bitte lesen Sie meine Antwort noch einmal, ich habe eine wesentliche Änderung vorgenommen. Sie können alles ignorieren, was ich über das Spleißen gesagt habe. Wie @AlanBoyd sehr richtig betonte, spielt es keine Rolle, wenn Sie an Bakterien arbeiten. Verwenden Sie zum Ausrichten von Proteinen an DNA exonerate oder genewise wie beschrieben. Sie können auch einen Genom-Browser wie ucsc oder ensembl verwenden.
Klar, schon! Danke nochmal für die Tipps!
@terdon Ich habe meine ursprüngliche Frage geändert und einige spezifischere Fragen hinzugefügt! Vielen Dank für Ihre Hilfe, es ist sehr, sehr viel! Du hast mir einiges an Zeit gespart!
@terdon Sequenzierungsprojekte wählen jedoch (zufällig) einen der beiden Stränge aus und nennen ihn den Plus-Strang (+) und speichern dann alle Sequenzen in Bezug auf diesen Strang. Das bedeutet, dass die genomische Sequenz, die Sie aus einer Datenbank herunterladen, manchmal die Ergänzung der eigentlichen Sequenz ist, nach der Sie suchen. Was sind die ernsthaften Auswirkungen dieser Methode? Bitte erläutern Sie dies. Danke
@ Raghavakrishna was meinst du? Welche Methode? Wenn Sie die beiden von mir erwähnten Tools meinen, sucht exonerate standardmäßig beide Stränge und genewise tut dies, wenn Sie ihm das -trevFlag geben.
@terdon Ich meinte die Methoden, die von den Sequenzierungsprojekten verwendet werden, um einen der beiden Stränge (zufällig) auszuwählen und ihn den Plus-Strang (+) zu nennen und dann alle Sequenzen in Bezug auf diesen Strang zu speichern
@ Raghavakrishna Ich verstehe immer noch nicht, was du fragst. Sequenzierungsprojekte sequenzieren einen Strang und nennen ihn den +Strang und extrapolieren dann die Sequenz des -Strangs. Wenn Sie eine Frage dazu haben, stellen Sie bitte eine neue Frage , damit Sie sie klar erklären und eine vollständige Antwort erhalten können.

Für das, was es wert ist - ich habe repliziert, was Sie mit einem Python-Skript versuchen. Das ist nicht elegant, aber ich wollte nur für Sie überprüfen, ob es möglich ist und ob es wirklich eine Übereinstimmung gibt.

Pseudocode ist

Nehmen Sie die Genomsequenz

Machen Sie eine Reverse-Complement-Sequenz

für jede der beiden DNA-Sequenzen, für jeden der drei Leserahmen:

Übersetzen Sie die DNA in eine einzelne Kette von Aminosäuren mit "*" an Stoppcodons

Teilen Sie die Zeichenfolge bei "*" Zeichen auf, nennen Sie diese Wörter

Finden Sie den ersten Met-Rest in jedem Wort, die Zeichenfolge von diesem Met bis zum Ende des Wortes ist ein ORF

Wenn der ORF > 99 ist (willkürliche Abschaltung), fügen Sie ihn in eine große Liste von ORFs ein

haben jetzt eine Liste aller ORFs in allen 6 Leserastern

Durchsuchen Sie diese Liste nach einer Übereinstimmung mit der polI-Sequenz (ich habe tatsächlich nur nach der ersten Zeile in der Fasta-Sequenz gesucht).

Der Treffer ist identisch mit der gesamten polI-Sequenz in einem CLUSTAL-Alignment.

Beachten Sie, dass dieser Algorithmus keine ORFs erkennt, die den Bruchpunkt in der linearen Sequenz überschreiten, die das zirkuläre Genom von E. coli darstellt . Geht auch davon aus, dass alle Initiatorcodons ATG/Met sind, aber ich erinnere mich, dass einige E.coli- Initiationscodons GTG/Val sind

Anstatt alles von Grund auf neu zu machen, würden Sie, wenn Sie Ihre eigene Instanz von BLAST hätten, eine sprengbare Datenbank Ihrer e.coli-Sequenz erstellen und tblastn mit Ihrer mutmaßlichen Polymerase-Proteinsequenz als Abfrage ausführen.

Dies würde die am besten passende Sequenz im Genom finden und funktioniert selbst dann, wenn es eine ganze Reihe von Unterschieden zwischen dem Protein, das Sie ihm gegeben haben, und dem, was Ihre DNA-Sequenz tatsächlich übersetzt, gibt.