BALL

software di bioinformatica
Disambiguazione – Se stai cercando altri significati, vedi Ball.

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.

BALL
software
Biochemical Algorithms Library.
Biochemical Algorithms Library.
Biochemical Algorithms Library.
GenereBioinformatica
SviluppatoreBALL project team
Ultima versione1.4.2 (28 gennaio 2013; 11 anni fa)
Ultima beta1.4.79 (7 agosto 2014; 9 anni fa)
Sistema operativoUnix-like
macOS
Microsoft Windows
LinguaggioC++
Python
ToolkitQt
LicenzaGNU Lesser General Public License
(licenza libera)
Sito webwww.ball-project.org/

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

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

Collegamenti esterni

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