• Non ci sono risultati.

Nei modelli in silico si può facilmente simulare l'eetto nella rete in seguito alla delezione di particolari geni. Per poter utilizzare tale funzionalità oerta da COBRA Toolbox, è necessario che nel modello sia denita anche la GPR map, ovvero le relazioni esistenti tra i geni e le reazioni a cui partecipano. (Dalla mappa GPR viene denita la matrice gene-reaction e il set di regole booleane che identicano le relazioni tra ciascuna reazione e i geni della rete).

Questo Toolbox permette di eseguire due tipi di analisi riguardanti la simulazione di delezione dei geni: 1. Single essential gene delections (delezione di un singolo gene);

2. Pairs of syntetic lethal genes (delezione di coppie di geni).

I risultati che si possono osservare in relazione a tali KnockOut sono tre. ˆ usso obiettivo invariato;

ˆ usso obiettivo ridotto;

B.10.1 Essential gene study

Per simulare la delezione di un singolo gene è suciente richiamare il metodo:

[grRatio, grRateKO, grRateW T, hasEf f ectdelRxns, f luxSolution] = = singleGeneDeletion(model, method, geneList, verbF lag);

che richiede come unico input obbligatorio il modello in analisi. I vincoli opzionali permettono di restrin-gere lo studio a degli insiemi di geni di interesse e/o di settare il metodo da utilizzare:

method: può valere0F BA0 (default),0M OM A0 o 0lM OM A0;

geneList: lista di geni da eliminare (uno alla volta) (default: tutti i geni);

verbF lag: se posto uguale a0true0 visualizza l'output (default: 0f alse0).

In uscita tale funzione ci restituisce diverse informazioni interessanti:

grRatio: rapporto tra il rate di crescita (o dell'obiettivo cellulare impostato) del modello mutato e del modello

originale (wild type);

grRateKO: rate di crescita nel modello privato del gene (1/h);

grRateW T: rate di crescita nel modello wild type (1/h);

hasEf f ect: indica se la delezione del gene ha comportato la rimozione di qualche reazione della rete;

delRxns: lista delle reazioni rimosse a causa di ogni gene KO (KnockOut);

f luxSolution: ussi ottenuti da FBA/MOMA/lMOMA nel modello mutato per ogni gene rimosso.

Con questa analisi è possibili capire facilmente per quali geni il KnockOut diventa letale per l'ottimizzazione in corso: i geni che, una volta bloccati, portano a zero il usso obiettivo, sono quindi da considerarsi essenziali.

B.10.2 Synthetic lethal study

Per analizzare come si comporta la rete in seguito al KnockOut di coppie di geni, è suciente eseguire il comando:

[grRatioDble, grRateKO, grRateW T ] =

= doubleGeneDeletion(model, method, geneList1, geneList2, verbF lag); dove:

method: può valere0F BA0 (default),0M OM A0 o 0lM OM A0;

geneList1: lista di geni da eliminare, che corrispone a model.genes (defualt: tutti i geni);

geneList2: lista di geni che corrisponde ad un secondo set di geni da eliminare (default: tutti i geni);

verF lag: se posto uguale a0true0 visualizza l'output (default: 0f alse0).

La chiamata di tale funzione restituisce:

grRatioDble: rapporto tra il rate di crescita (o dell'obiettivo cellulare impostato) del modello mutato e del

modello originale (wild type);

grRateKO: rate di crescita nel modello privato dei due geni (1/h);

B.11 Metabolic engineering

Una delle principali innovazioni della seconda versione del Toolbox è quella di poter eettuare diversi tipi di Metabolic engineering. In particolare vengono implementati tre metodi:

1. OptKnock; 2. OptGene; 3. GDLS.

B.11.1 OptKnock

Per eseguire l'algoritmo di OptKnock, al ne di determinare un insieme di reazioni da bloccare per realizzare la doppia ottimizzazione dell'obiettivo cellulare e della produzione di particolari metaboliti all'interno della rete, occore utilizzare il metodo:

[optKnockSol, bilevelM ILP problem] = OptKnock(model, selectedRxnList, options, constrOpt, prevSol, verbF lag, solF ileN ameT mp);

i cui ingressi obbligatori sono solamente il modello e il primo campo della stuttura options:

options.targetRxndenisce il usso target da ottimizzare.

Per eettuare un'analisi più adeguata alle particolari esigenze è bene però settare anche gli input opzionali:

options.numDel: numero di KO permessi (default: 5);

options.numDelSense: direzione dei vincoli di KO (G: greater; E: equal; L: less). Di default vale 'L';

options.vM ax: usso massimo (default: 1000);

options.solveOptKnock: se 'true' (default) risolve il problema all'interno dell'ambiente Matlab;

options.gamsF ile: nome del le GAMS in input;

constrOpt.rxnList: lista di reazioni che si vuole vincolare;

constrOpt.values: valori cu vincolare le reazioni desiderate;

constrOpt.sense: verso dei vincoli appena assegnati (G/E/L);

prevSol: soluzione precedente;

solF ileN ameT mp: nome del le su cui salvare le soluzioni temporanee.

Il metodo restituisce la struttura optKnockSol, contenente i campi rxnList, contenente la lista delle reazioni bloccate e fluxes, contenente la distribuzione dei ussi ottenuta. Inoltre nella struttura restituita

bilevelM ILP problem, possiamo visualizzare la struttura del problema OptKnock.

Al ne di valutare correttamente i risultati, è necessario tenere a mente che OptKnock utilizza i valori

−vM axe vMax (se reversibile) oppure 0 e vMax (se irreversibile) come lower ed upper bound dei ussi: è

quindi necessario usare constrOpt per vincolare in modo dierente le reazioni desiderate.

B.11.2 OptGene

OptGene viene utilizzato per determinare delle strategie di KnockOut al ne di ottenere una sovrapproduzione di un prodotto specico. Uno dei suoi maggiori vantaggi consiste nel permettere anche la massimizzazione di una funzione obiettivo NON lineare.

Per eseguire tale funzionalità, COBRA Toolbox mette a disposizione il seguente metodo: [x, population, scores, optGeneSol] = optGene(model, targetRxn,

substrateRxn, generxnList, M axKOs, population); i cui input necessari sono:

targetRxn: stringa contenente il nome della reazione da massimizzare;

substrateRxn: specica la reazione di scambio per la crescita;

generxnList: lista che specica quali geni o reazioni possono essere bloccate;

M axKOs: indica il numero massimo di KnockOut ammessi;

L'input opzionale population è una matrice binaria da utilizzare per interrompere la simulazione e riprenderla in seguito.

Il metodo restituisce diversi risultati:

x: il miglior punteggio (score) ottenuto tramite le funzioni optGeneF itness o optGeneF itnessT ilt;

population: una matrice binaria che rappresenta i set di KnockOut ottenuti. Se si vuole reiterare, è necessario

passare questa matrice come input opzionale al metodo OptGene, come sopra descritto;

scores: array dei punteggi;

optGeneSol: struttura che raccoglie i risultati ottenuti dall'invocazione del metodo.

B.11.3 GDLS

Similmente ad OptKnock e OptGene, l'algoritmo GDLS può essere utilizzato per identicare quali KnockOut eettuare al ne di ottimizzare la produzione di particolari prodotti (obiettivo sintetico) oltre l'obiettivo cellulare del modello (obiettivo naturale). Il metodo oerto dal Toolbox per eseguire tale funzionalità richiede le seguenti speciche:

[gdlsSolution, bilevelM ILP P roblem, gdlsSolutionStructs] = GDLS(model, targetRxns, varargin); dove gli unici parametri obbligatori in ingresso sono il modello (model) e le reazioni da massimizzare (targetRxn) (sottoforma di lista di stringhe). varargin rappresenta i parametri opzionali che si possono aggiungere, sia sottoforma di struttura, sia come lista di nomi dei parametri, ciascuno seguito dal suo valore. I parametri opzionali sono i seguenti:

0nbhdsz0: dimensione dl vicinato (default: 1), che corrisponde al parametro K, utilizzato nella descrizione

del metodo nella parte introduttiva;

0M0: numero di path di ricerca (default: 1);

0maxKO0: numero massimo di KO (default: 50), corrispondente al parametro C usato nella descrizione

dell'algoritmo;

0koCost0: costo (numero di geni da bloccare) per mettere in KO una reazione, un set di geni o un gene. Può

essere denito un costo per ciascun KnockOut (di default sono posti tutti a costo pari a 1);

0selectedRxns0: lista di reazioni/geneSet che possono essere bloccate;

0koT ype0: denisce cosa bloccare: reazioni (0rxns0), geneSet (0geneSets0) o geni (0genes0);

0iterationLimit0: massimo numero di iterazioni (default: 70);

0timeLimit0: tempo massimo in secondi (default: 252000);

0minGrowth0: minimo rate di crescita accettabile.

L'esecuzione del metodo restituisce la soluzione dell'algoritmo GDLS sottoforma di struttura (gdlsSolution), una struttura contenente il problema bilevel MILP utilizzato per la risoluzione (bilevelMILP P roblem) e le soluzioni intermedie (gdlsSolutionStructs), calcolate durante l'esecuzione delle varie ricerche locali eettuate dall'algoritmo.

Rispetto all'esecuzione di OptKnock, che eettua una ricerca globale, tipicamente GDLS impiega meno tempo per restituire i risultati, tuttavia non garantisce che la sua tecnica di ricerca locale porti allo stesso risultato di una soluzione ottima globale.

B.12 Descrizione della struttura di un le SBML compilabile in