Mein Hintergrund liegt in der Genomik, aber ich habe kürzlich mit Problemen im Zusammenhang mit der Proteinstruktur gearbeitet. Ich habe einige relevante Programme in C geschrieben und dabei meinen eigenen PDB-Datei-Parser von Grund auf neu erstellt. Ich habe mir keine Gedanken darüber gemacht, einen wirklich robusten Parser zu erstellen. Ich wusste nur, dass es der beste Weg ist, mich dazu zu zwingen, das PDB-Format wirklich zu verstehen.
Nachdem ich diesen Prozess durchlaufen habe, suche ich etwas Robusteres und Reiferes. Gibt es Open-Source-Proteinstrukturbibliotheken, die in C implementiert sind? Ich konnte ein paar auf Google finden, aber ich hatte noch nie von einem davon gehört und sie scheinen nicht sehr ausgereift oder stabil zu sein. Eine etwas verwandte Frage: Führt jeder wirklich all diese Arten von Berechnungen mit Python durch? oder Homebrew-Code?
PS. Ich bin im Wesentlichen auf der Suche nach einer Bibliothek, die einen PDB-Datei-Parser, Funktionen zum Berechnen von Bindungswinkeln, Bindungslängen, Torsionswinkeln, auf der Oberfläche zugänglichen Oberfläche usw. enthält.
quelle
OpenBabel ist C ++, wird jedoch häufig für allgemeine strukturelle Dinge verwendet. Der Schwerpunkt liegt auf der Konvertierung zwischen und der Fähigkeit, eine Vielzahl von Formaten zu lesen. Soweit ich weiß, ist es jedoch nicht möglich, SAS-Bereiche zu berechnen.
quelle
Beginnen Sie mit Ihrer "verwandten Frage": Ich analysiere PDBs in Python, auch wenn die nachfolgende Verarbeitung aus Gründen der Geschwindigkeit in einer kompilierten Sprache erfolgen muss. C ist einfach keine gute Sprache zum Parsen, insbesondere nicht für unübersichtliche Formate wie PDB. Und das ist wahrscheinlich der Grund, warum es in C. keine stabilen und ausgereiften PDB-Parser gibt.
Angenommen, Sie möchten mit Strukturen aus dem PDB arbeiten und verwenden statt des PDB-Formats das mmCIF-Format. mmCIF ist viel regelmäßiger und daher einfacher zu analysieren. Sie erhalten auch mehr analysierbare Informationen aus der mmCIF-Version der PDB-Einträge als aus den PDB-Versionen. Sie finden einen C-Parser für mmCIF auf der PDB-Website (CIFPARSE). Sie werden jedoch feststellen, dass seine Entwicklung zugunsten eines C ++ - Umschreibens mit dem Namen CIFPARSE-OBJ eingestellt wurde.
quelle
Ich weiß, dass es um C geht, aber es gibt eine großartige Möglichkeit, dies mit der GLGRAPHICS-Bibliothek zu tun, die OPENGL in Processing implementiert (ein Java-basiertes Framework mit c ++ -ähnlicher Syntax). OpenGL ist unabhängig von der von Ihnen verwendeten Sprache grundsätzlich gleich, daher sollte Java den Leistungsunterschied nicht zu groß machen. Wie auch immer, die GLGRAPHICS-Bibliothek enthält einen pdb-Viewer, der sofort einsatzbereit ist. Es ist super einfach zu optimieren und das Processing-Forum hat eine wirklich reaktionsschnelle Anhängerschaft. Es könnte ein guter Ausgangspunkt sein.
GLGRAPHICS Library http://sourceforge.net/projects/glgraphics/files/glgraphics/1.0/ siehe GLGRAPHICS / examples / PDBview
wird bearbeitet http://processing.org/
Als letztes möchten Sie vielleicht dieses (weniger 3D, aber immer noch cooles Beispiel) ausprobieren: http://www.mydisk.se/tgn380/webpage/RECEPTOR/
quelle
Wenn Sie bereit sind, mit C ++ zu arbeiten, würde ich ESBTL empfehlen .
Anstatt sich mit Dateien im PDB-Format zu befassen, können Sie sie auch aus der Proteindatenbank im PDBML-Format (eigentlich XML) herunterladen . Sie können dann PDBML-Dateien mit Ihrer bevorzugten XML-Bibliothek für C analysieren (z. B. mit Libxml2 ).
quelle
Obwohl dies möglicherweise nicht die beabsichtigte Verwendung der Software ist, habe ich die Parser und allgemeinen Proteinstruktur-Verarbeitungsmethoden in der gefunden VMD zu finden sind Quellcode enthaltenen robust und umfassend sind.
VMD ist ein Open-Source-Tool zur molekularen Visualisierung. Es ist relativ einfach zu verlängern, wenn dies angemessen ist, da sonst Code daraus ausgeschlachtet werden kann.
quelle
PDB-Dateien können in C ++ mit dem Open-Source- Chemkit (BSD-lizenziert) einfach gelesen und bearbeitet werden Bibliothek .
Als Beispiel sehen Sie hier einen Code, der eine PDB-Datei für Hämoglobin (PDB-ID: 2DHB ) liest und die Gesamtzahl der Atome, die Anzahl der Ketten und die vom Lösungsmittel zugängliche Oberfläche ausgibt :
Ausgabe:
Weitere Informationen finden Sie in der Dokumentation der oben dargestellten Klassen:
quelle
Sie könnten auch eine andere "Sprache" wie CNS in Betracht ziehen , die speziell für die Arbeit mit molekularen Strukturen entwickelt wurde und die von Ihnen genannten Funktionen hat.
quelle