Latar belakang saya adalah genomik, tetapi saya baru-baru ini bekerja dengan masalah yang berkaitan dengan struktur protein. Saya menulis beberapa program yang relevan di C, membangun parser file PDB saya sendiri dari awal dalam proses. Saya tidak khawatir membuat parser yang benar-benar kuat, saya hanya tahu bahwa membuat parser sendiri akan menjadi cara terbaik untuk memaksa diri saya untuk benar-benar memahami format PDB.
Sekarang saya telah melalui proses ini, saya mencari sesuatu yang sedikit lebih kuat dan dewasa. Apakah ada pustaka struktur protein open source yang diimplementasikan di C? Saya dapat menemukan beberapa di Google, tetapi saya belum pernah mendengar satu pun dari mereka sebelumnya dan mereka tampaknya tidak terlalu matang atau stabil. Pertanyaan yang sedikit terkait: apakah semua orang benar-benar melakukan semua jenis perhitungan ini menggunakan Python? atau kode homebrew?
PS. Saya pada dasarnya mencari perpustakaan yang menyertakan pengurai file PDB, fungsi untuk menghitung sudut ikatan, panjang ikatan, sudut torsi, luas permukaan yang dapat diakses permukaan, dll.
sumber
OpenBabel adalah C ++, tetapi umumnya digunakan untuk hal-hal struktural umum - fokus utamanya adalah konversi di antara dan kemampuan membaca berbagai format. Sejauh yang saya tahu itu tidak memiliki kemampuan untuk menghitung area SAS.
sumber
Untuk memulai dengan "pertanyaan terkait" Anda: Saya melakukan parsing PDB dengan Python, bahkan ketika pemrosesan selanjutnya perlu dilakukan dalam beberapa bahasa yang dikompilasi untuk kecepatan. C sama sekali bukan bahasa yang baik untuk parsing, khususnya bukan untuk format berantakan seperti PDB. Dan itu mungkin mengapa tidak ada parser PDB stabil dan matang di C.
Hal lain yang dapat Anda pertimbangkan, dengan asumsi tujuan Anda adalah bekerja dengan struktur dari PDB, adalah menggunakan format mmCIF daripada format PDB. mmCIF jauh lebih teratur dan dengan demikian lebih mudah diurai. Anda juga mendapatkan lebih banyak informasi yang dapat diuraikan dari versi mmCIF dari entri PDB daripada dari versi PDB. Anda dapat menemukan parser C untuk mmCIF di situs Web PDB (disebut CIFPARSE), meskipun Anda akan mencatat bahwa pengembangannya telah dibatalkan karena penulisan ulang C ++ yang disebut CIFPARSE-OBJ.
sumber
Saya tahu ini tentang C, tetapi ada cara yang bagus untuk melakukan ini menggunakan perpustakaan GLGRAPHICS, yang mengimplementasikan OPENGL dalam Pemrosesan (kerangka kerja berbasis java dengan sintaksis seperti c ++). OpenGL pada dasarnya sama terlepas dari bahasa apa yang Anda gunakan, jadi Java seharusnya tidak membuat terlalu besar perbedaan kinerja. Pokoknya, perpustakaan GLGRAPHICS hadir dengan penampil pdb yang berfungsi dengan baik. Sangat mudah untuk mengubah dan forum Pemrosesan memiliki pengikut yang sangat responsif. Ini bisa menjadi titik awal yang baik.
Perpustakaan GLGRAPHICS http://sourceforge.net/projects/glgraphics/files/glgraphics/1.0/ lihat GLGRAPHICS / contoh / PDBview
Memproses http://processing.org/
Terakhir, Anda mungkin ingin memeriksa ini (kurang 3d tapi masih keren contoh) http://www.mydisk.se/tgn380/webpage/RECEPTOR/
sumber
Jika Anda bersedia menggunakan C ++, maka saya akan merekomendasikan ESBTL .
Alih-alih berurusan dengan file dalam format PDB, Anda dapat mempertimbangkan mengunduhnya dari Protein Data Bank dalam format PDBML , yang sebenarnya adalah XML. Anda kemudian dapat mengurai file PDBML menggunakan pustaka XML favorit Anda untuk C (misalnya, dengan Libxml2 ).
sumber
Meskipun ini mungkin bukan tujuan penggunaan perangkat lunak, saya telah menemukan parser dan metode pemrosesan struktur protein umum yang ditemukan dalam kode sumber VMD menjadi kuat dan komprehensif.
VMD adalah alat visualisasi molekul open source. Relatif maju untuk memperpanjang ketika itu sesuai, jika tidak kode dapat dikanibal darinya.
sumber
File PDB dapat dibaca dan dimanipulasi dengan mudah dalam C ++ menggunakan pustaka chemkit open-source (BSD berlisensi) .
Sebagai contoh di sini adalah beberapa kode yang akan membaca dalam file PDB untuk hemoglobin (PDB ID: 2DHB ) dan mencetak jumlah total atom, jumlah rantai, dan area permukaan yang dapat diakses pelarut:
Keluaran:
Untuk informasi lebih lanjut, lihat dokumentasi untuk kelas yang disajikan di atas:
sumber
Anda mungkin juga mempertimbangkan "bahasa" lain seperti CNS , yang dirancang khusus untuk bekerja dengan struktur molekul dan memiliki fungsi yang Anda sebutkan.
sumber