BALL (pronunciado "bola") es un software que consta de la versátil biblioteca de algoritmos bioquímicos (BALL) del marco de clase C ++ , un conjunto de algoritmos y estructuras de datos para el modelado molecular y la bioinformática estructural computacional , una interfaz Python para esta biblioteca y una interfaz gráfica de usuario a BALL, el visor de moléculas BALLView .
Desarrollador (es) | Equipo de proyecto BALL |
---|---|
Lanzamiento estable | 1.4.2 / 28 de enero de 2013 |
Versión de vista previa | 1.4.79 / 7 de agosto de 2014 |
Repositorio | paquetes |
Escrito en | C ++ , Python |
Sistema operativo | Linux , Unix , macOS , Windows |
Plataforma | IA-32 , x86-64 |
Disponible en | inglés |
Tipo | Marco de software |
Licencia | LGPL |
Sitio web | ball-project |
BALL ha evolucionado de un producto comercial a un software de código abierto gratuito con licencia de GNU Lesser General Public License (LGPL). BALLView tiene la licencia GNU General Public License (GPL).
BALL y BALLView se han adaptado a los sistemas operativos Linux , macOS , Solaris y Windows .
El visor de moléculas BALLView, también desarrollado por el equipo del proyecto BALL, es una aplicación C ++ de BALL que utiliza Qt y OpenGL con el trazador de rayos en tiempo real RTFact como back- end de renderizado . Para ambos, BALLView ofrece visualización tridimensional y estereoscópica en varios modos diferentes, y aplica directamente los algoritmos de la biblioteca BALL a través de su interfaz gráfica de usuario.
El proyecto BALL es desarrollado y mantenido por grupos en la Universidad de Saarland , la Universidad de Mainz y la Universidad de Tübingen . Tanto la biblioteca como el visor se utilizan mucho para la educación y la investigación. Los paquetes BALL estuvieron disponibles en el proyecto Debian en abril de 2010. [1]
Caracteristicas clave
- Dibujo molecular interactivo y edición conformacional (+)
- Lectura y escritura de formatos de archivos moleculares (PDB, MOL2, MOL, HIN, XYZ, KCF, SD, AC)
- Lectura de fuentes de datos secundarias, por ejemplo (DCD, DSN6, GAMESS, JCAMP, SCWRL, TRR)
- Generación de moléculas y combinación de expresiones SMILES y SMARTS con moléculas
- Optimización de geometría
- Clases de minimizador y dinámica molecular
- Soporte para campos de fuerza (MMFF94, AMBER, CHARMM) para puntuación y minimización de energía
- Interfaz de Python y funcionalidad de secuencias de comandos
- Infraestructura de complementos (Navegador espacial 3D, seguimiento de cabeza basado en WII *, OpenSim *)
- Gráficos moleculares (3D, visualización estereoscópica, trazado de rayos *) (+)
- documentación completa (Wiki, fragmentos de código, documentación de clase en línea, rastreador de errores)
- pruebas de regresión completas
- Formato de proyecto BALL para presentaciones e intercambio colaborativo de datos (+)
- QSAR *
- RMN
- atajos editables (+)
(*) Función experimental de la próxima versión (+) Función de BALLView
Biblioteca BALL
La biblioteca de algoritmos bioquímicos (BALL) es un marco de desarrollo de aplicaciones rápido e integral para la bioinformática estructural. Ha sido cuidadosamente diseñado para satisfacer las necesidades de los expertos en programación y los principiantes. Los usuarios pueden explotar las ricas funciones de BALL, mientras se les ofrece un marco extenso de estructuras de datos y algoritmos C ++, y una variedad de algoritmos bioinformáticos estructurales estándar. Se pueden agregar nuevos algoritmos fácilmente.
El uso de BALL como una caja de herramientas de programación permite reducir en gran medida los tiempos de desarrollo de aplicaciones y ayuda a garantizar la estabilidad y la corrección al evitar la reimplementación, a menudo propensa a errores, de algoritmos complejos y reemplazarlos con llamadas a una biblioteca que ha sido bien probada por muchos desarrolladores.
- Importación-exportación de archivos
BALL admite una gran variedad de formatos de archivos moleculares como PDB, MOL2, MOL, HIN, XYZ, KCF, SD, AC y fuentes de datos secundarias como DCD, DSN6, GAMESS, JCAMP, SCWRL y TRR. Las moléculas también se pueden crear utilizando el constructor de péptidos de BALL o basándose en expresiones de SMILES.
- Análisis de estructura general
La preparación adicional y la validación de la estructura es posible mediante, por ejemplo, los procesadores Kekuliser-, Aromaticity-, Bondorder-, HBond- y Secondary Structure. Una biblioteca de fragmentos infiere automáticamente la información que falta, por ejemplo, los hidrógenos o enlaces de una proteína. Una biblioteca de rotámeros permite determinar, asignar y cambiar entre las conformaciones de cadena lateral más probables de una proteína. Los procesadores de transformación de BALL guían la generación de estructuras 3D válidas. Su mecanismo de selección permite especificar partes de una molécula mediante expresiones simples (SMILES, SMARTS, tipos de elementos). Esta selección puede ser utilizada por todas las clases de modelado como procesadores o campos de fuerza.
- Mecánica molecular
Las implementaciones rápidas y estables de los populares campos de fuerza CHARMM, Amber y MMFF94 se pueden combinar con las clases de minimización y simulación de BALL (descenso más pronunciado, gradiente conjugado, L-BFGS y L-VMM desplazado).
Se ofrece una variedad de algoritmos bioinformáticos estructurales estándar y se pueden agregar fácilmente nuevos algoritmos.
Ejemplo
El siguiente programa lee un archivo PDB, agrega información faltante como enlaces e hidrógenos, optimiza las posiciones del hidrógeno usando el campo de fuerza AMBER y escribe la molécula resultante en un segundo archivo pdb.
usando el espacio de nombres std ; usando el espacio de nombres BALL ; int main () { // leer un archivo PDB PDBFile file ( "test.pdb" ); Sistema S ; archivo >> S ; archivo . cerrar (); // agregar información faltante // por ejemplo, hidrógenos y enlaces FragmentDB fragment_db ( "" ); S . aplicar ( fragment_db . normalize_names ); S . aplicar ( fragment_db . add_hydrogens ); S . aplicar ( fragment_db . build_bonds ); // verifica cargas, longitudes de enlace, // y átomos faltantes ResidueChecker checker ( fragment_db ); S . aplicar ( verificador ); // crea un campo de fuerza AMBER AmberFF FF ; S . deseleccionar (); FF . configuración ( S ); Selector selector ( "elemento (H)" ); S . aplicar ( selector ); // optimizar las posiciones del hidrógeno ConjugateGradientMinimizer minimizer ; minimizador . configuración ( FF ); minimizador . setEnergyOutputFrequency ( 1 ); minimizador . minimizar ( 50 ); // escribe un archivo de archivo PDB . open ( "test_out.pdb" , ios :: out ); archivo << S ; archivo . cerrar (); }
Interfaz de Python
SIP se utiliza para crear automáticamente clases de Python para todas las clases de C ++ relevantes en la biblioteca BALL para permitir las mismas interfaces de clase. Las clases de Python tienen el mismo nombre que las clases de C ++, por lo que transferir el código que usa BALL de C ++ a Python, y viceversa, suele ser una tarea trivial.
Por ejemplo, el código C ++ anterior se traduce en:
# Ejemplo de archivo = PDBFile ( "test.pdb" ) system = System () file . archivo de lectura ( sistema ) . cerrar () # Agregue la información faltante # por ejemplo, hidrógenos y enlaces. fragment_db = Sistema FragmentDB ( "" ) . aplicar ( fragment_db . normalize_names ) sistema . aplicar ( fragment_db . add_hydrogens ) sistema . aplicar ( fragment_db . build_bonds ) # Compruebe si hay cargas, longitudes de enlace, # y átomos faltantes. corrector = ResidueChecker ( fragment_db ) sistema . aplicar ( verificador ) # Crea un campo de fuerza AMBER. FF = sistema ámbarFF () . deseleccionar () FF . selector de configuración ( sistema ) = Selector ( "elemento (H)" ) del sistema . aplicar ( selector ) # Optimice las posiciones del hidrógeno. minimizador = ConjugateGradientMinimizer () minimizador . minimizador de configuración ( FF ) . setEnergyOutputFrequency ( 1 ) minimizador . minimizar ( 50 ) # Escriba un archivo PDB. archivo_salida = PDBFile ( "test_out.pdb" , del archivo . MODE_OUT ) archivo_salida . escribir archivo de salida ( sistema ) . cerrar ()
La interfaz de Python está completamente integrada en la aplicación de visor BALLView y, por lo tanto, permite la visualización directa de los resultados calculados por los scripts de Python. Además, BALLView se puede operar desde la interfaz de secuencias de comandos y las tareas recurrentes se pueden automatizar.
BALLView
BALLView es la aplicación de visualización y modelado de moléculas independiente de BALL. También es un marco para desarrollar funciones de visualización molecular.
BALLView ofrece modelos de visualización estándar para átomos, enlaces, superficies y visualización basada en cuadrículas de, por ejemplo, potenciales electrostáticos. BALLView permite cargar varias moléculas al mismo tiempo y todas las representaciones se pueden ocultar o mostrar a voluntad. Una gran parte de la funcionalidad de la biblioteca BALL se puede aplicar directamente a la molécula cargada en BALLView.
BALLView admite varios métodos modernos de visualización y entrada como, por ejemplo, diferentes modos estéreo, navegador espacial y dispositivos de entrada compatibles con VRPN.
En CeBIT 2009, BALLView se presentó de manera destacada como la primera integración completa de la tecnología de trazado de rayos en tiempo real en un visor molecular y una herramienta de modelado. [2]
Ver también
Referencias
- ^ Debian: Paquete fuente: Ball
- ^ "BALLView con capacidades de trazado de rayos en tiempo real demostradas en la conferencia de prensa oficial de Intel", sitio web de BALL, 3 de marzo de 2009. Archivado el 25 de julio de 2011 en Wayback Machine. Consultado el 13/12/10.
Otras lecturas
- Hildebrandt, Andreas; Dehof, Anna Katharina; Rurainski, Alexander; Bertsch, Andreas; Schumann, Marcel; Toussaint, Nora C; Moll, Andreas; Stockel, Daniel; Monedas de cinco centavos, Stefan; Mueller, Sabine C; Lenhof, Hans-Peter; Kohlbacher, Oliver (2010). "BOLA - Biblioteca de algoritmos bioquímicos 1.3" . BMC Bioinformática . 11 : 531ss. doi : 10.1186 / 1471-2105-11-531 . PMC 2984589 . PMID 20973958 .
- Kohlbacher, Oliver; Lenhof, Hans-Peter (2000). "BOLA: creación rápida de prototipos de software en biología molecular computacional". Bioinformática . 16 (9): 815–24. doi : 10.1093 / bioinformatics / 16.9.815 . PMID 11108704 .
- Moll, Andreas; Hildebrandt, Andreas; Lenhof, Hans-Peter; Kohlbacher, Oliver (2005). "BALLView: una herramienta para la investigación y educación en modelado molecular" . Bioinformática . 22 (3): 365–6. doi : 10.1093 / bioinformatics / bti818 . PMID 16332707 .
- Moll, Andreas; Hildebrandt, Andreas; Lenhof, Hans-Peter; Kohlbacher, Oliver (2006). "BALLView: un marco de visualización y modelado molecular orientado a objetos". Revista de diseño molecular asistido por computadora . 19 (11): 791–800. doi : 10.1007 / s10822-005-9027-x . PMID 16470421 .
enlaces externos
- Página web oficial
- BALÓNVer página web
- Biblioteca de código
- Galería
- Tutoriales