BALL
| BALL | |
|---|---|
Biochemical Algorithms Library. |
|
| Sviluppatore | BALL project team |
| Ultima versione | 1.4.1 (28 novembre 2011) |
| Sistema operativo | Unix-like Mac OS X Windows |
| Linguaggio | C++ |
| Genere | Bioinformatica |
| Licenza | GNU Lesser General Public License (Licenza libera) |
| Sito web | www.ball-project.org |
BALL (Biochemical Algorithms Library) è un progetto open source consistente in un insieme di classi C++, una libreria di algoritmi e strutture dati per la modellistica molecolare e la bioinformatica computazionale, un'interfaccia python alla libreria stessa ed al visualizzatore BALLView (anche esso open source); accanto all'interfaccia in python BALL offre un'interfaccia da riga di comando.
Esistono versioni per Linux, Solaris, Microsoft Windows and MacOS X. BALL utilizza Qt così come OpenGL. BALL si è evoluto da un prodotto commerciale in un progetto gratuito, open source sotto licenza GNU Lesser General Public License (LGPL).
Il progetto viene sviluppato e mantenuto da gruppi di ricerca dell'università di Saarland, dell'università di Magonza, dell'università di Tubinga. Sia le librerie che BALLView sono utilizzati per insegnamento universitario e ricerca. Pacchetti per Debian sono stati resi disponibili il 04/2010.
Indice |
Esempio [modifica]
Il seguente programma legge un file PDB, aggiunge informazioni mancanti quali legami ed atomi di idrogeno, ottimizza le posizioni degli atomi di idrogeno utilizzando AMBER e scrive il risultato in un secondo file PDB.
using namespace std; using namespace BALL; int main() { // legge un file PDB PDBFile file("test.pdb"); System S; file >> S; file.close(); // Aggiunge informazioni mancanti // ovvero idrogeni e legami FragmentDB fragment_db(""); S.apply(fragment_db.normalize_names); S.apply(fragment_db.add_hydrogens); S.apply(fragment_db.build_bonds); // Controllo per cariche, lunghezza di legame, // atomi mancanti ResidueChecker checker(fragment_db); S.apply(checker); // Crea un campo di forze AMBER AmberFF FF; S.deselect(); FF.setup(S); Selector selector("element(H)"); S.apply(selector); // Ottimizza le posizioni degli atomi di // idrogeno ConjugateGradientMinimizer minimizer; minimizer.setup(FF); minimizer.setEnergyOutputFrequency(1); minimizer.minimize(50); // Scrive un file PDB file.open("test_out.pdb", ios::out); file << S; file.close(); }
Interfaccia python [modifica]
Si utilizza SIP per creare classi python per tutte le classi C++ esistenti nella libreria BALL per avere la medesima interfaccia. I nomi delle classi in C++ e python sono identici così da aumentare la portabilità. Il codice python corrispondente al precedente è il seguente:
# Example file = PDBFile("test.pdb") system = System() file.read(system) file.close() // Aggiunge informazioni mancanti // ovvero idrogeni e legami fragment_db = FragmentDB("") system.apply(fragment_db.normalize_names) system.apply(fragment_db.add_hydrogens) system.apply(fragment_db.build_bonds) // Controllo per cariche, lunghezza di legame, // atomi mancanti checker = ResidueChecker(fragment_db) system.apply(checker) // Crea un campo di forze AMBER FF = AmberFF() system.deselect() FF.setup(system) selector = Selector("element(H)") system.apply(selector) // Ottimizza le posizioni degli atomi di // idrogeno minimizer = ConjugateGradientMinimizer() minimizer.setup(FF) minimizer.setEnergyOutputFrequency(1) minimizer.minimize(50) // Scrive un file PDB outfile = PDBFile("test_out.pdb", File.MODE_OUT) outfile.write(system) outfile.close()
L'interfaccia python è pienamente integrata con BALLView e permette quindi la visualizzazione di risultati ottenuti tramite script in python.
Bibliografia [modifica]
- Hildebrandt, Andreas (2010). BALL - Biochemical Algorithms Library 1.3. BMC Bioinformatics 11: 531ff. DOI:10.1186/1471-2105-11-531.
- Kohlbacher, Oliver (2000). BALL—rapid software prototyping in computational molecular biology. Bioinformatics 16 (9): 815–24. DOI:10.1093/bioinformatics/16.9.815. PMID 11108704.
- Moll, Andreas (2005). BALLView: a tool for research and education in molecular modeling. Bioinformatics 22 (3): 365–6. DOI:10.1093/bioinformatics/bti818. PMID 16332707.
- Moll, Andreas (2006). BALLView: an object-oriented molecular visualization and modeling framework. Journal of Computer-Aided Molecular Design 19 (11): 791–800. DOI:10.1007/s10822-005-9027-x. PMID 16470421.