Un esperimento di microarray produce una matrice con migliaia di righe (i geni misurati) e poche decine di colonne (i campioni): il classico regime «p molto maggiore di n», quello in cui la maggior parte dei metodi statistici, pensati per il caso opposto, smette di funzionare bene. Da circa due anni R è lo strumento con cui un numero crescente di laboratori affronta questo regime, e da quest’anno il progetto Bioconductor prova a dare a quei laboratori un’infrastruttura comune al posto di script isolati.
Contesto
R è un’implementazione libera del linguaggio S dei Bell Labs. L’hanno avviata nel 1993 Ross Ihaka e Robert Gentleman all’Università di Auckland, e il gruppo R Core la distribuisce sotto GNU General Public License. La versione 1.0 è del febbraio 2000; la release corrente è la 1.3.1, dell’estate 2001. I pacchetti aggiuntivi passano da CRAN, il Comprehensive R Archive Network.
Tre proprietà del linguaggio contano nel lavoro su dati biologici. Primo: il data.frame e il vettore atomico sono tipi nativi, non strutture da emulare sopra liste e dizionari generici. Secondo: la formula del modello. Scrivere lm(y ~ trattamento + lotto) descrive un modello lineare nella stessa notazione che uno statistico userebbe sulla carta, e la sintassi ~ si estende ai modelli lineari generalizzati e a quelli a effetti misti. Terzo: il kernel numerico è scritto in C e Fortran, e i metodi pesanti — algebra lineare, ottimizzazione — chiamano LAPACK. Così il costo dell’interprete grava sul codice di orchestrazione, non sui cicli interni.
Il dominio in cui tutto questo è diventato urgente è l’espressione genica. Le piattaforme a oligonucleotidi di Affymetrix e gli array a due colori di tipo spotted hanno reso ordinaria la misura simultanea di migliaia di trascritti. Il lavoro di Alizadeh e colleghi sul linfoma diffuso a grandi cellule B, uscito su Nature nel 2000, mostra che il profilo di espressione separa due forme della malattia con prognosi diversa: è uno dei primi casi in cui un microarray porta a una sottotipizzazione clinicamente rilevante e non a una semplice lista di geni interessanti. Risultati analoghi stanno comparendo su mammella, colon e leucemie.
Il problema tecnico
L’analisi non parte dai test statistici ma dai dati grezzi, e lì si annida la maggior parte degli errori. Un chip Affymetrix non misura un gene una volta sola: ogni trascritto è interrogato da una sonda perfect match e da una mismatch che differisce di un nucleotide, e i due valori vanno combinati e corretti per il segnale di fondo prima di arrivare a una stima di abbondanza. Tra un array e l’altro, poi, le intensità complessive cambiano per ragioni puramente tecniche — quantità di RNA, efficienza di ibridazione, lotto del reagente — e confrontare i campioni senza normalizzare vuol dire misurare l’esperimento invece della biologia.
Sono questi i passaggi in cui l’open source pesa più che altrove. Se la pipeline di correzione del fondo e normalizzazione è una scatola chiusa, due laboratori che usano lo stesso strumento commerciale possono ottenere liste di geni differenziali diverse senza riuscire a capire perché. Con R il codice della correzione si ispeziona e si versiona, e un revisore può rieseguire lo script sui dati depositati. È una ragione tecnica, prima ancora che ideologica, della migrazione dei metodi di microarray verso un linguaggio aperto.
Cosa standardizza Bioconductor
Bioconductor, avviato nel 2001 e coordinato da Robert Gentleman, non introduce un metodo statistico nuovo: cerca di mettere d’accordo i pacchetti su come rappresentano un esperimento. Il pezzo centrale è il pacchetto Biobase, che definisce un’unica struttura per tenere insieme tre tabelle che finora ogni script teneva separate: la matrice di espressione, i metadati dei campioni (fenotipo, gruppo di trattamento, dati clinici) e l’annotazione delle sonde. In un solo oggetto, selezionare un sottoinsieme di campioni riallinea da sé la matrice e i metadati, e sparisce un’intera classe di errori da disallineamento di indici, facili da introdurre a mano.
Su questa base si costruiscono i pacchetti applicativi in sviluppo: affy legge i file CEL e CDF delle piattaforme Affymetrix e applica correzione del fondo e normalizzazione; marray lavora sugli array a due colori; e una serie di pacchetti di annotazione mappa gli identificatori delle sonde su UniGene, GenBank e LocusLink. Quest’ultimo punto fa meno scena del calcolo statistico, ma conta altrettanto: una lista di sonde differenziali non dice niente finché non la colleghi a geni e funzioni, e l’annotazione invecchia man mano che i database di sequenze vengono aggiornati.
Il modello di rilascio è l’altra metà del progetto. Invece di pacchetti che evolvono ciascuno per conto suo, Bioconductor punta a release coordinate: i pacchetti di una stessa data vengono testati insieme, contro la stessa versione di R e degli archivi di annotazione. La prima release ufficiale, la 1.0, è attesa per il 2002, con una descrizione del progetto in letteratura peer-reviewed.
Implicazioni
Per un gruppo di ricerca biomedico europeo, compreso un piccolo gruppo italiano, l’effetto immediato è l’accesso senza licenza alle stesse tecniche usate dai gruppi che firmano i lavori di riferimento. Il punto tecnico più solido, però, riguarda la riproducibilità: quando la pipeline analitica è uno script R versionato e i dati grezzi sono depositati, l’analisi torna rieseguibile da terzi. Qualche rivista comincia già a chiedere codice e dati come condizione per pubblicare.
Bioconductor cresce accanto ad altri progetti open source per la biologia computazionale che maturano negli stessi mesi: BioPerl, BioJava al suo primo rilascio quest’anno, BioPython in sviluppo. Cambia il baricentro. Quei progetti portano la bioinformatica dentro linguaggi generalisti; R parte da un linguaggio in cui la sintassi dei modelli statistici è già quella del dominio.
Limiti
Restano tre vincoli concreti. Il primo: R tiene i dati in memoria, e una matrice di espressione di molti array contro decine di migliaia di sonde può saturare la RAM di una workstation del 2001. Il dimensionamento è un problema vero, non un dettaglio. Il secondo è statistico: con migliaia di test simultanei, il controllo dei falsi positivi non è banale, e i metodi per il testing multiplo a questa scala sono ancora in assestamento. Un pacchetto pulito non rende corretta un’analisi impostata male. Il terzo è normativo: per i trial clinici di fase III e la documentazione verso FDA ed EMEA la piattaforma di riferimento resta SAS, validata per quell’uso, e la qualifica di R in contesti regolati è ancora una discussione aperta più che una pratica acquisita.
Il fattore da osservare nei prossimi mesi è la qualità dei pacchetti di base — affy e l’infrastruttura di annotazione su tutti — e la tenuta del modello di release coordinata. Sono questi, più della disponibilità di metodi statistici, a decidere se Bioconductor diventa l’ambiente standard per i dati molecolari clinici o resta uno strumento accademico.
- https://www.r-project.org/
- https://cran.r-project.org/
- https://www.bioconductor.org/
- https://www.nature.com/articles/35000501
- https://www.noze.it/insights/r-bioconductor-bioinformatica/
Immagine di copertina: Tecnico di laboratorio seduto a un computer che mostra sullo schermo la griglia colorata di un microarray di DNA — foto di Bill Branson, pubblico dominio — https://commons.wikimedia.org/wiki/File:Microarray.jpg