BALL
BALL software | |
---|---|
Biochemical Algorithms Library. | |
Genere | Bioinformatica |
Sviluppatore | BALL project team |
Ultima versione | 1.4.2 (28 gennaio 2013; 11 anni fa) |
Ultima beta | 1.4.79 (7 agosto 2014; 9 anni fa) |
Sistema operativo | Unix-like macOS Microsoft Windows |
Linguaggio | C++ Python |
Toolkit | Qt |
Licenza | GNU Lesser General Public License (licenza libera) |
Sito web | www.ball-project.org/ |
Modifica dati su Wikidata · Manuale |
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 (anch'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. 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à del 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.
Esempio
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
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
- Andreas Hildebrandt, Anna Katharina Dehof, Alexander Rurainski, Andreas Bertsch, Marcel Schumann, Nora C Toussaint, Andreas Moll, Daniel Stockel e Stefan Nickels, BALL - Biochemical Algorithms Library 1.3, in BMC Bioinformatics, vol. 11, 2010, pp. 531ff, DOI:10.1186/1471-2105-11-531.
- Oliver Kohlbacher e Hans-Peter Lenhof, BALL—rapid software prototyping in computational molecular biology, in Bioinformatics, vol. 16, n. 9, 2000, pp. 815–24, DOI:10.1093/bioinformatics/16.9.815, PMID 11108704.
- Andreas Moll, Andreas Hildebrandt, Hans-Peter Lenhof e Oliver Kohlbacher, BALLView: a tool for research and education in molecular modeling, in Bioinformatics, vol. 22, n. 3, 2005, pp. 365–6, DOI:10.1093/bioinformatics/bti818, PMID 16332707.
- Andreas Moll, Andreas Hildebrandt, Hans-Peter Lenhof e Oliver Kohlbacher, BALLView: an object-oriented molecular visualization and modeling framework, in Journal of Computer-Aided Molecular Design, vol. 19, n. 11, 2006, pp. 791–800, DOI:10.1007/s10822-005-9027-x, PMID 16470421.
Collegamenti esterni
- Pagina web del progetto BALL, su ball-project.org.
- Pagina web di BALLView, su ballview.org. URL consultato il 13 febbraio 2012 (archiviato dall'url originale il 1º ottobre 2006).
- Libreria di codici, su ball-trac.bioinf.uni-sb.de. URL consultato il 13 febbraio 2012 (archiviato dall'url originale il 19 luglio 2011).
- Galleria, su ballview.org. URL consultato il 13 febbraio 2012 (archiviato dall'url originale il 25 luglio 2011).
- Tutorial, su ball-trac.bioinf.uni-sb.de. URL consultato il 13 febbraio 2012 (archiviato dall'url originale il 19 luglio 2011).