MOLECULAR DOCKING: Introduzione alla disciplina

Molte funzioni biologiche sono mediate da interazioni tra molecole. Queste interazioni possono essere di due tipi: fisiche (una molecola forma un complesso con un'altra molecola) o logiche (una molecola controlla il comportamento di un'altra molecola senza però stabilire nessuna interazione fisica con essa, ad esempio, come spesso avviene per le proteine, regolandone l'espressione o modificando la concentrazione di un fattore che è percepito dalla molecola target).

Il Molecular Docking è una complessa tecnica computazionale multi-step, orientata alla predizione ed alla valutazione dell'interazione fisica strutturale tra due molecole. Possiamo distinguere diverse tipologie di Docking, sulla base delle differenti interazioni molecolari possibili:

AUTODOCK

Docking Proteina-Proteina
Docking Proteina-Acidi Nucleici
Docking Proteina-Ligando

Diversi motivi tecnici ci spingono a focalizzare la nostra attenzione esclusivamente verso la terza tipologia di Docking (Proteina-Ligando), spesso utilizzata per cercare di rispondere alle seguenti domande: dove si legano determinate molecole all'interno della proteina? con quale orientamento? con quale affinità? Quando le condizioni lo consentono, il Docking può addirittura fornire preziose informazioni su come modificare la molecola ligando per aumentarne la sua affinità di legame e la sua specificità verso il recettore, processo noto sotto il nome di Ligand Design.

I programmi di Docking offrono una predizione del complesso strutturale Proteina-Ligando andando alla ricerca del "corretto modo di legame", tramite due passi: 1] Il campionamento dello spazio conformazionale, attraverso l'implementazione di specifici algoritmi di ricerca 2] La successiva valutazione dell'energia di legame (Binding) per ogni conformazione del complesso, stimata attraverso opportune funzioni (dette di scoring).

Limiti ed Approssimazioni

Attualmente il Docking rappresenta un settore "di frontiera" in forte sviluppo anche grazie all'elevatissimo numero di strutture 3D disponibili nelle banche dati (ad oggi più di 51.000). Il processo si basa su di una approfondita conoscenza strutturale (a livello atomico), sia della componente proteica che della componente non proteica (ligando). L'assenza di informazione strutturale dettagliata, in special modo della componente proteica, è forse uno dei più grandi limiti della procedura. Le banche dati strutturali rappresentano quindi uno strumento insostituibile che ha positivamente incrementato lo sviluppo di questa tecnica computazionale in diversi settori della moderna ricerca scientifica. Molte di queste molecole proteiche giocano infatti ruoli critici in diversi pathways metabolici e possono essere utilizzate come potenziali target terapeutici, favorendo la progettazione di nuovi farmaci ad azione molecolare mirata (Drug Design).

In molte tecniche di Docking automatico, il Ligando (flessibile) viene generalmente posizionato in una macromolecola proteica a conformazione bloccata (rigida). Questo perchè la difficoltà di effettuare analisi considerando anche la flessibilità della componente proteica, rende impossibile l'ottenimento di risultati in tempi ragionevoli. Diversi lavori, tra i quali ricordiamo quello di AR Leach (J. Mol. Biol - 1994), hanno cercato di trattare il problema della flessibilità della componente proteica, sviluppando metodi in grado di consentire variazioni conformazionali almeno ad un sottoinsieme limitato di catene laterali, ritenute significative nell'interazione. Questo rimane ancora oggi un problema di difficile soluzione ed anche se è noto che, in numerosi casi, l'interazione Proteina-Ligando viene accompagnata da ampie variazioni conformazionali della componente proteica, la capacità di predire tali cambiamenti risulterà di fondamentale importanza nella comprensione dei meccanismi di attivazione recettoriale e trasduzione del segnale.

Infine, la presenza di molecole di solvente all'interno del sito attivo della proteina, l'aumento delle dimensioni del ligando, l'mpossibilità nel simulare la formazione e/o la rottura di legami covalenti ed i complessi calcoli energetici richiesti dalle funzioni di scoring, introducono difficoltà aggiuntive che possono, molte volte, allontanare i risultati ottenuti dalla realtà.

[Torna su]





PROGRAMMI DI DOCKING

AUTODOCK Il numero di software in grado di effettuare docking di piccole molecole (ligandi) all’interno di strutture proteiche è ampio e diversi metodi, più o meno efficaci, sono stati messi a punto e testati negli ultimi anni. Questo non sorprende affatto se si considera che lo studio dei complessi di interazione Proteina-Ligando è oggi di estremo interesse, specie nel settore bio-tecnologico e farmaceutico. Parecchi studi mostrano comparazioni dei diversi programmi di docking in termini di accuratezza, capacità nel riprodurre i risultati sperimentali, capacità nella selezione delle migliori pose in funzione della loro energia libera di legame ed abilità nel discriminare rapidamente migliaia di molecole teoricamente interessanti (generalmente selezionate da una banca dati), individuando quelle più affini al sito attivo della proteina di interesse (virtual screening). Risulta quindi veramente difficile esprimere giudizi che abbiano una validità generale.

Una lista dei principali programmi (gratuiti) di Docking la trovate alla sezione Bio-Links.

Nel ricco scenario dei Molecular Docking Programs [Figura], AutoDock gode di ottima reputazione. La licenza libera per uso accademico, la buona affidabilità e l’alta versatilità, hanno fatto di AutoDock uno dei programmi di docking più apprezzati e questo spiega l’alto numero di citazioni in diversi lavori scientifici. Il moderno AutoDock 4.0 implementa un robusto e collaudato metodo di docking automatico chiamato Lamarckian Genetic Algorithm (LGA), includendo anche un Monte Carlo Simulated Annealing (SA) ed un tradizionale Genetic Algorithm (GA), entrambi meno efficienti ed affidabili rispetto al primo. Il programma utilizza inoltre una funzione di scoring calibrata (AMBER Force Field), per il calcolo dell’energia libera.

AutoDock è costituito da due programmi: Il motore di docking (AutoDock) che esegue il docking del ligando basandosi su un set di griglie descriventi la proteina target ed AutoGrid, che pre-calcola queste griglie. Rispetto alle precedenti versioni, AutoDock 4.0 si mostra ricco di perfezionamenti. Il docking risulta essere più accurato ed affidabile, il programma è adesso capace di tenere in considerazione, oltre la flessibilità del ligando, anche la flessibilità della componente proteica e questo abilità AutoDock verso la possibilità di effettuare studi di interazione proteina-proteina. Infine, AutoDock è dotato di una comoda interfaccia grafica multipiattaforma chiamata AutoDock Tools (ADT), sviluppata dagli stessi autori del programma.

Oggi è disponibile una nuova versione ottimizzata di questo programma chiamata AutoDock Vina. Vina è un software per molecular docking e virtual screening sviluppato per essere compatibile con tutti i formati di file utilizzati da AutoDock e con gli esistenti software ausiliari oggi comunemente utilizzati. Vina implementa una avanzata funzione di scoring che ne migliora l'accuratezza delle predizioni e offre una incredibile velocità di esecuzione dovuta sia all'implementazione del multithreading sia al fatto che il programma calcola automaticamente le griglie descriventi la proteina senza la necessità di utilizzare un secondo software come AutoGrid.

Download:

AutoDock 4.2 Disponibile sotto la GNU General Public Licence, dopo una breve registrazione.

AutoDock Vina Ottimizzazione del programma AutoDock.

MGL-Tools (ADT) 1.5.4 Interfaccia Grafica ai programmi.

[Torna su]





SIMULAZIONE PREDITTIVA CON AUTODOCK

Sezione che mostra un caso pratico di studio atto a testare le straordinarie capacità predittive del programma AutoDock 4 nel riprodurre, con grande precisione, un determinato dato sperimentale: GO

[Torna su]





ALGORITMI DI RICERCA

Sofisticati algoritmi di ricerca sono stati proposti negli ultimi anni per cercare di migliorare le performance dei programmi di Docking. Molta attenzione viene oggi rivolta al metodo "ibrido" conosciuto sotto il nome di Lamarckian Genetic Algorithm, implementato in AutoDock a partire dalla versione 3.0 e rivelatosi uno dei più efficienti metodi oggi a disposizione. Il seguente capitolo descrive alcuni aspetti logici, alla base dei moderni Evolutionary Algorithms (EAs), partendo dai Genetic Algorithms (GA) ed arrivando al Lamarckian Genetic Algorithm (LGA). Considerata la complessità e la continua evoluzione di questi studi, quanto descritto non pretende di essere esaustivo sull'argomento.

Genetic Algorithms

Si tratta di algoritmi stocastici intelligenti, descritti per la prima volta nel 1975 da John H. Holland ed utilizzati per l'ottimizzazione di determinati problemi. La ricerca delle soluzioni è condotta imitando il comportamento degli organismi viventi che hanno una riproduzione sessuata: si generano delle popolazioni di soluzioni e si selezionano, secondo un criterio prestabilito, i migliori individui, analogamente a quanto avviene in natura secondo la teoria evolutiva di Charles Darwin. L'ottimizzazione mediante Genetic Algorithms è dunque un processo scandito dalle fasi dell'evoluzione: si parte da una popolazione iniziale di possibili soluzioni ed alcuni "Operatori Genetici" agiscono sulle popolazioni generandone continuamente di nuove. Le soluzioni che mostrano essere più adatte delle altre, sopravvivono alla prossima generazione e si riproducono di nuovo. Le soluzioni ritenute peggiori vengono scartate, e non hanno quindi discendenza. Il processo ha termine quando gli Operatori Genetici non riescono a migliorare ulteriormente le soluzioni trovate.

Funzionamento dei Genetic Algorithms ed Applicazione al Molecular Docking

Per poter parlare, in maniera più generale, dei Genetic Algorithms è necessario innanzitutto stabilire una codifica della soluzione al problema trattato in termini di stringhe binarie. La ricerca di una buona soluzione diventa quindi la ricerca di particolari stringhe binarie, considerate come individui, all'interno di una determinata popolazione. Si parte da una popolazione iniziale casuale dove ciascun individuo mantiene una data soluzione al problema da ottimizzare, data da un insieme di parametri o stati variabili, codificati all'interno della stringa binaria. Ogni parametro è visto come un gene, in quanto, come tale, definisce una determinata caratteristica all'individuo. Ad ogni individuo della popolazione viene successivamente assegnato un valore di fitness che, in accordo con la "genetica delle popolazioni", definisce e valuta l'insieme delle caratteristiche dell'individuo stesso (ovvero la sua combinazione di geni) e quindi la sua possibilità di riprodursi: individui con valore di fitness migliore hanno una probabilità più alta di essere selezionati per generare discendenza. Questa operazione di selezione può essere vista come una metafora della sopravvivenza naturale dove, il valore di Fitness di un individuo determina l'abilità nel superare tutti gli ostacoli imposti dall'ambiente.

Un tradizionale GA consiste nelle seguenti operazioni:

1] Generazione casuale di una popolazione iniziale di individui (possibili soluzioni). Ogni individuo è diverso dall'altro in quanto possiede particolari caratteristiche dettate dalla combinazione dei suoi geni e quindi dal suo genotipo.

2] Mapping e calcolo del valore di fitness F(Xi), per ogni individuo della popolazione corrente.

3] Generazione di nuovi individui mediante "accoppiamento" degli individui ritenuti più idonei ed applicazione degli Operatori Genetici in modo da generare variabilità all'interno della popolazione. Esistono numerosi Operatori Genetici, quelli più comuni sono: CrossOver e Mutations.

L'operatore di CrossOver prende parti dei due individui (genitori) e crea un nuovo individuo (figlio), combinando queste parti. In questo modo i figli conterranno caratteristiche di entrambi i genitori e, come spesso avviene, una parte buona di un genitore può rimpiazzare una parte meno buona dell'altro genitore, creando un figlio migliore. L'operatore Mutations (di mutazione), cambia casualmente i valori di un gene di un individuo appena creato.

La generazione di nuovi individui viene solitamente definita sulla base di due modelli, secondo i quali la popolazione si evolve: Nel Modello di Generazione Discreto si tiene ogni generazione distinta dall'altra. In questo modo riusciamo a distinguere la popolazione dei genitori dalla popolazione dei figli. Se tutti i genitori hanno prodotto i loro figli, questi ultimi diventeranno i nuovi genitori della generazione successiva e così via. Nel Modello di Generazione Continuo la decisione di sopravvivenza del figlio viene fatta immediatamente dopo la sua creazione, anzichè dopo la generazione di tutti gli altri figli. I figli con valori di fitness migliori possono quindi diventare immediatamente disponibili come genitori. In questo caso non è possibile distinguere nella generazione corrente tra genitori e figli.

4] Nuovamente Mapping e calcolo del valore di fitness per la nuova generazione di individui. Se le soluzioni possono essere ancora migliorate, si ripetono le operazioni dal punto 3, altrimenti l'algoritmo termina dopo un numero prefissato di generazioni consecutive senza che si sia verificato alcun miglioramento della soluzione migliore della popolazione.

Le straordinarie potenzialità dei Genetic Algorithms nel risolvere i più svariati problemi, hanno permesso di includerli persino nelle procedure di Molecular Docking. Gli algoritmi di Docking posizionano un Ligando nel sito di legame di una Proteina, mediante ottimizzazione della complementarietà sterica, idrofobica ed elettrostatica, andando alla ricerca dell'energia minima globale di interazione.

Nel caso del Molecular Docking il particolare arrangiamento di un Ligando flessibile può essere definito da un set di valori che ne descrivono: La traslazione, la rotazione e la torsione, rispetto alla proteina target. Questi sono considerati come stati variabili del Ligando e, come abbiamo già detto, ogni stato variabile corrisponde ad un gene. Per ogni individuo: 3 geni definiscono la traslazione (secondo gli assi X, Y, Z), 4 geni definiscono la rotazione (orientamento) ed un numero variabile di geni definiscono la torsione. La figura a lato mostra, a scopo esemplificativo, una piccola molecola che presenta 4 possibili punti di torsione, ogni punto è descritto dal corrispettivo gene, che ne definisce la relativa informazione. L'insieme degli stati variabili del Ligando definiscono quindi il suo genotipo, mentre le rispettive conformazioni assunte (coordinate atomiche), definiscono il corrispondente fenotipo. Si comincia quindi con una popolazione casuale di N individui, che nel Docking corrispondono ad N differenti conformazioni del Ligando (possibili soluzioni). Una funzione di Mapping trasforma gli stati variabili di un individuo (genotipo), nel suo fenotipo, ovvero nel suo corrispondente set di coordinate atomiche. Questo permette la successiva valutazione della fitness, definita come l'energia minima globale di interazione del sistema Proteina-Ligando, valutata utilizzando una opportuna funzione energetica.

Un sistema molecolare Proteina-Ligando si trova a viaggiare attraverso un complesso paesaggio energetico ad imbuto, alla ricerca della sua conformazione più stabile, ad energia più bassa (figura a lato). Questo paesaggio energetico, specifico per ogni sistema considerato, si presenta piuttosto tormentato, ricco di introflessioni e comprende generalmente, oltre ad un minimo assoluto (globale), anche molti minimi energetici locali. Questi rappresentano alcuni possibili stati di interazione molecolare transitori (non ottimali), che resistono fino a quando la relativa barriera energetica non viene superata, solo in quel caso, il sistema può procedere verso una conformazione più stabile, ad energia più bassa.

Un algoritmo di ricerca "ideale" dovrebbe condurre ad una soluzione ottimale, come quella rappresentata nella figura in basso.

Pur mostrando spicate capacità nel fornire soluzioni adeguate rispetto a molti algoritni applicati in principio nelle procedure di Molecular Docking, i Genetic Algorithms hanno mostrato di non essere capaci di convergere verso un ottimo globale se non si introducono al loro interno, determinate procedure di ricerca locale. In effetti, la caratteristica dei GA non sta tanto nel fatto di ritrovare soluzioni ottime globali, ma bensì nella loro capacità di produrre molte soluzioni comunque buone.

Lamarckian Genetic Algorithm

La combinazione di un Genetic Algorithm (GA) con un metodo di Local Search (LS), come ad esempio quello di Solis e Wets, costituiscono un nuovo algoritmo ibrido chiamato: Lamarckian Genetic Algorithm (LGA), in grado di ottenere performance superiori rispetto ai due metodi da soli. L'algoritmo è sviluppato in analogia con uno dei principi cruciali della teoria evolutiva di Jean-Baptiste Lamarck: Le caratteristiche fenotipiche, acquisite durante la vita di un individuo, possono riflettersi all'interno del suo genotipo e diventare tratti ereditabili. Nell'algoritmo ibrido GA + LS, il risultato della ricerca locale è utilizzato per migliorare la fitness associata ad un individuo, ottenuta mediante una ricerca globale.

Immaginiamo lo spazio genotipico, definito in termini di caratteristiche intrinseche dell'individuo, come una linea orizontale più bassa mentre lo spazio fenotipico come una linea orizontale più alta (Garrett M. Morris, 1998 - Figura). La ricerca locale è normalmente condotta a livello dello spazio fenotipico ed è influenzata dalle informazioni dettate dall'ambiente (paesaggio energetico). Dopo un certo numero di iterazioni di ricerca locale si arriva ad un minimo locale ed una funzione di "Mapping inversa" è generalmente utilizzata per convertire il miglior fenotipo trovato, nel suo corrispondente genotipo (in accordo con il principio di Lamarck).

Una nuova caratteristica di questo algoritmo è data dal metodo di ricerca locale detto di Solis e Wets. Questo metodo, implementato in AutoDock, ricerca attraverso lo spazio genotipico piuttosto che nel più tipico spazio fenotipico. Questo vuol dire che l'algoritmo non necessita di una funzione di Mapping inversa in quanto l'influenza dell'ambiente si riperquote direttamente sul genotipo e gli adattamenti ambientali acquisiti dall'individuo durante la ricerca locale, saranno direttamente ereditati dalla discendenza.

[Torna su]