Vai al contenuto

BALL

Da Wikipedia, l'enciclopedia libera.
Disambiguazione – Se stai cercando altri significati, vedi Ball.
BALL
software
Biochemical Algorithms Library.
Biochemical Algorithms Library.
Biochemical Algorithms Library.
GenereBioinformatica
SviluppatoreBALL project team
Ultima versione1.4.2 (28 gennaio 2013; 13 anni fa)
Ultima beta1.4.79 (7 agosto 2014; 11 anni fa)
Sistema operativoUnix-like
macOS
Microsoft Windows
LinguaggioC++
Python
ToolkitQt
LicenzaGNU Lesser General Public License
(licenza libera)
Sito webwww.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 (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à della 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.

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 | modifica wikitesto]

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.

Collegamenti esterni

[modifica | modifica wikitesto]
  • 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).