Mi experiencia es en genómica, pero recientemente he estado trabajando con problemas relacionados con la estructura de la proteína. Escribí algunos programas relevantes en C, construyendo mi propio analizador de archivos PDB desde cero en el proceso. No me preocupé por hacer un analizador realmente robusto, solo sabía que construir uno yo mismo sería la mejor manera de obligarme a entender realmente el formato PDB.
Ahora que he pasado por este proceso, estoy buscando algo un poco más robusto y maduro. ¿Hay alguna biblioteca de estructura de proteínas de código abierto implementada en C? Pude encontrar algunos en Google, pero nunca antes había oído hablar de ninguno de ellos y no parecen ser muy maduros ni estables. Una pregunta ligeramente relacionada: ¿todos realmente están haciendo todos estos tipos de cálculos usando Python? o código homebrew?
PD. Básicamente estoy buscando una biblioteca que incluya un analizador de archivos PDB, funciones para calcular ángulos de enlace, longitudes de enlace, ángulos de torsión, área de superficie accesible, etc.
fuente
OpenBabel es C ++, pero se usa comúnmente para cosas estructurales generales: su enfoque principal es la conversión y la capacidad de leer una amplia gama de formatos. Sin embargo, hasta donde yo sé, no tiene la capacidad de calcular áreas SAS.
fuente
Para comenzar con su "pregunta relacionada": hago análisis PDB en Python, incluso cuando el procesamiento posterior debe hacerse en algún lenguaje compilado para mayor velocidad. C simplemente no es un buen lenguaje para analizar, en particular no para formatos desordenados como PDB. Y probablemente es por eso que no hay analizadores PDB estables y maduros en C.
Algo más que puede considerar, asumiendo que su objetivo es trabajar con estructuras del PDB, es usar el formato mmCIF en lugar del formato PDB. mmCIF es mucho más regular y, por lo tanto, más fácil de analizar. También obtiene más información analizable de la versión mmCIF de las entradas PDB que de las versiones PDB. Puede encontrar un analizador C para mmCIF en el sitio web de PDB (se llama CIFPARSE), aunque notará que su desarrollo se ha descartado en favor de una reescritura de C ++ llamada CIFPARSE-OBJ.
fuente
Sé que se trata de C, pero hay una excelente manera de hacerlo utilizando la biblioteca GLGRAPHICS, que implementa OPENGL en Processing (un marco basado en Java con sintaxis similar a C ++). OpenGL es básicamente el mismo independientemente del idioma que utilice, por lo que Java no debería marcar una gran diferencia en el rendimiento. De todos modos, la biblioteca GLGRAPHICS viene con un visor pdb que funciona de fábrica. Es muy fácil de ajustar y el foro de procesamiento tiene un seguimiento muy receptivo. Podría ser un buen punto de partida.
Biblioteca GLGRAPHICS http://sourceforge.net/projects/glgraphics/files/glgraphics/1.0/ ver GLGRAPHICS / examples / PDBview
Procesando http://processing.org/
Por último, es posible que desee ver esto (menos ejemplos en 3D pero aún geniales) http://www.mydisk.se/tgn380/webpage/RECEPTOR/
fuente
Si está dispuesto a usar C ++, le recomendaría ESBTL .
En lugar de tratar con archivos en formato PDB, puede considerar descargarlos del Protein Data Bank en formato PDBML , que en realidad es XML. Luego puede analizar archivos PDBML utilizando su biblioteca XML favorita para C (por ejemplo, con Libxml2 ).
fuente
Si bien este no es el uso previsto del software, he encontrado que los analizadores y los métodos generales de procesamiento de la estructura de proteínas que se encuentran dentro del código fuente de VMD son robustos y completos.
VMD es una herramienta de visualización molecular de código abierto. Es relativamente sencillo extenderlo cuando sea apropiado, de lo contrario, el código se puede eliminar de él.
fuente
AP archivos se pueden leer y fáciles de manipular en C ++ utilizando el código abierto (BSD licencia) chemkit biblioteca.
Como ejemplo, aquí hay un código que se leerá en un archivo PDB para hemoglobina (PDB ID: 2DHB ) e imprimirá el número total de átomos, número de cadenas y área de superficie accesible al solvente:
Salida:
Para obtener más información, consulte la documentación de las clases presentadas anteriormente:
fuente
También puede considerar otro "lenguaje" como el SNC , que está específicamente diseñado para trabajar con estructuras moleculares y tiene las funciones que mencionó.
fuente