Bioinformatica e Web 2.0

Inside Bioinfo

9 novembre 2007 - 11:09

Progetto bioSapiens (corsi e dintorni)

There is talk of the project BioSapiens , another of those huge agglomerations of European institutions around a project too big to be conducted by a single institution. These scientific joint ventures will also be in fashion (because they circulate a good amount of funding), but they also fulfill a fundamental task, which is often underestimated: the integration of work platforms . In fact, these projects must forcibly integrate the bioniform tools into their startup phase, as explained in the article:

In Europe, industry luminaries gathered in the Network of Excellence called BioSapiens, funded under the thematic area ‘Life sciences, genomics and biotechnology for health’ under the Sixth Framework Program. So far, one of the project’s main achievements has been the development of new bioinformatics tools and their integration into existing biological data management systems.
Biosapiens also has a wide spectrum of collateral activities. The article says that the project will last one more year and during this period the researchers plan to refine their tools for the next phase of the ENCODE project, which involves the annotation of the remaining 99% of the human genome. In addition it also provides a training component . This aspect intrigued me a lot, and pushed me to go to deepen the official website . Personally I always try to keep myself informed about the training proposals in the bioinformatics field, and, being able,

Our goal is to empower therapists with the knowledge, wisdom and hop over to this website needed to create their strategies for successfully serving their clients.

But I advise all those bioinformatics who would like to make a beautiful foreign training experience (so all, right?) to look in the training section . There are some very interesting information about the ESB: The European School In Bioinformatics and above all c ‘is the ISCB Listing of Degree / Certificate Programs Worldwide , a mini search engine containing information about all the bioinformatics courses that are carried out in the European institutes .
A very convenient way to avoid having to browse the sites of universities and institutions.

Tags: bioinformatica, Cordis, formazione
6 novembre 2007 - 15:03

Genome Commons (Farsi il genoma da soli)

Ricordo quando anni fa incontrai per la prima volta la parola “Commons” insieme a “proteomica”. Proteomecommons fu un sito di grande interesse. Lo si sarebbe dovuto mettere su un piedistallo solo per 2 aspetti: distribuivano l’archivio dei dati e dei tool via torrent, e avevano realizzato la geniale trovata della fetta di torta che viene mangiata mentre si naviga nel sito.

Purtroppo è ormai un progettino messo da parte. :-( In compenso, ecco nascere un progetto che al momento pare limitato ma che nvece è molto ambizioso: genomecommons. Tutto parte da un articolo pubblicato su Nature, che risulta stimolante e futuribile.
Come dice il suo esimio autore Steve Brenner

The Genome Commons and Genome Commons Navigators are open resources I propose to assist with personal genome interpretation.

Il progetto è stato ispirato dai progressi della genotipizzazione e sequenziamento, e la possibilità abbastanza comune ormai per le persone fisiche di ottenere il proprio genoma sequenziato. Alcuni di questi pensieri sono enunciati nel post iniziale del blog del progetto.

Tutto il materiale è sotto licenza Creative Commons, che è un’ottima decisione. In questo caso Commons significa una distribuzione pubblica della conoscenza della variabilità genetica umana e i suoi effetti; conoscenza sostenuta da database, laboratori diagnostici, e letteratura scientifica.
Consiglio d’andare a darci un’occhiata. Anche solo per rendersi conto come il web e la filosofia del Commons sta aprendo panorami nuovi e stimolanti.

Tags: bioinformatica, creative commons, genoma
17 ottobre 2007 - 23:52

openbiosource.org: progetto bioinformatico italiano

Diamo il benvenuto ad un altro progetto che si propone di creare un luogo di incontro e di discussione per i bioinformatici e biologi italiani: openbiosource.org

Si tratta di un progetto decisamente innovativo e interessante, che mette a disposizione un forum e diversi link utili a chiunque abbia bisogno di discutere di problematiche relative all’uso dei computer per fare ricerca scientifica.

Il tutto condito da un perfetto spirito opensource: ovvero quello di condividere le proprie conoscenze e le proprie risorse, in modo da poter crescere e imparare più velocemente.

Un po’ di competizione per noi di molecularlab forse :) …. ma non é un problema, visto che contribuisce a migliorare al livello della ricerca nel nostro Paese e in generale.

In bocca al lupo! :)

17 ottobre 2007 - 10:16

Protein ID mapping (come passar da una nomenclatura ad un’altra in due facili click)

Chiunque abbia lavorato con le proteine in silico non può che rendersi conto di quanto sia un pandemonio gestirne la nomenclatura.
La loro complessità disperde la ricerca in mille rivoli; la varietà dei progetti che nascono e i database che ne derivano hanno un tratto in comune: non avere un gran che in comune. Tanto che esistono progetti di integrazione che servono proprio per collezionare e linkare quante più informazioni possibili da diverse fonti.
Spesso risulta necessario fare del “ID Mapping“. Un esempio qualsiasi? Si ha tra le mani una bellissima lista di proteine che si vorrebbe correlare con una lista complementare scaricata dalla rete. E ti ritrovi a non poterlo fare perchè la loro nomenclatura non è compatibile!
Il bio-metodo più puro credo sia mettersi a giocare un po’ con SRS, fare qualche query intelligente con getz e quindi estrarre le corrispondenze. Qualcosa che possa partire da:

#
# SRS query
#
my $query="getz -e \'[database -acc:\"nomeproteina\"]\' |";
open (HANDLE, "$query")or die "can't open $query: $!\n";
while ($line=<HANDLE>) {
if ($line=~/^campo_di_interesse/gi) {
# qualunque operazione ti possa servire
next;
}
}

Naturalmente in questo caso non si è tenuto conto della pigrizia del bioinformatico :-)

SRS è un potente mezzo, e consiglio a tutti quanti di perderci un po’ di tempo, ma non tutti hanno sempre bisogno (o voglia) di lavorar per linea di comando. Magari l’ID mapping non è una attività così comune all’interno del vostro progetto. O gli elementi da convertire non sono poi così tanti. In questo caso vi voglio suggerire tre strumenti on line che possono fare per voi:

Ecco fatto! Certo, non è come farselo da sè, ma d’altra parte, se c’è tanta gente così gentile da lavorare per facilitarci la vita…

15 ottobre 2007 - 17:35

Piccolo momento di autocoscienza bioinformatica (per non sforzare i neuroni)

Quando leggo o sento parlar di scienza in Italia, di come essa sia il futuro del paese (dell’umanità!), e di come siamo tutti tanto orgogliosi del nobel assegnati ai nostri migliori cervelli, non so mai se sorridere o piagnucolare. Inanzitutto perchè subito mi tornano in mente i valori dei finanziamenti che vengono investiti nel nostro paese, in confronto al resto dell’europa, e secondariamente perchè un click mi dice che il nostro orgoglioso nobel è migrato da più di venti anni altrove . Non vogliamo far troppe polemiche, ma costui è considerabile italiano??!
Poi, spontaneamente, protendo al pianto. Leggevo quest’articolo proprio ieri; esemplare sfogo di come ci sia ben poco da stare allegri se veramente nel nostro DNA c’è scritto l’istinto del ricercatore:

L’Italia mi sta cacciando. Sta perdendo una persona che ama il suo paese, ama Napoli e ama la ricerca scientifica. Voglio fare la ricercatrice ma in Italia non ho speranze, non ho futuro. Sono costretta a partire, anche se non vorrei. Mi sento rifiutata dal mio paese

Non dovrei proprio parlare. In effetti io ho scelto di tenere la bioinformatica non come fonte primaria di sopravvivenza, ma come piacere e sfogo per un un informatico che a volte trova il lavoro al computer poco creativo e molto frustrante. Dopo anni di dottorato, di tante soddisfazioni e studi appassionati, mi sono messo in discussione e ho fatto un breve momento di auto-analisi. (AARGH!)

E’ il momento in cui ci si guarda dentro e si fa un bilancio tra quanto ti piace fare scienza, quali sono gli svantaggi a cui vai incontro in quest’Italia, cosa sei disposto a fare per continuare, quali prospettive hai, e quanto effettivamente vali come scienziato. Ora, come diceva il mai troppo compianto Gaber, di solito questo non è un bel momento, non tanto perchè il tempo si fa un po’ più scuro e cupo, quanto perchè tu ti fai un po’ più schifo. :-)

Ora, la scienza già è -ora come ora- qualcosa solo per pochi privilegiati. In Italia è naturalmente fatta “all’italiana” con tutto quel comporta: amicizie, favori, burocrazia, poca meritocrazia. La bioinformatica, per quanto sbandierata come uno strumento fondamentale d’integrazione, assolutamente indispensabile per far compiere in breve tempo, quel passo quantico ad ogni progetto che comporti aspetti computazionali intensi, e’ posta nell’angolino del sottoscala della ricerca di base. Far bioinformatica in Italia significa IMHO essere molto coraggiosi, o molto lungimiranti, ma anche non molto furbi.

Non voglio spaventare nussuno, sia ben chiaro. Il periodo in cui ho fatto bioinfo full time è stato interessantissimo, e forse -fossi 10 anni più giovane- sarei a Toronto a leggere sequenze senza tanti rimpianti di come l’Italia sfratta forzatamente i propri giovani virgulti. Ma ora che sono più grande, sono più interessata a sapere quali sono le migliori creme antirughe per over 60 per farmi sembrare più giovane.

MA quanti, ed eccomi alla domanda che volevo porvi quest’oggi, quanti dei bioinformatici italiani hanno già fatto mente locale su quel che li aspetta, e hanno scelto, razionalmente, in piena coscienza, di continuare con questa difficile carriera? E quanti invece l’unica cosa che possono promettersi è dire “finchè dura…

3 ottobre 2007 - 09:25

gli strumenti indispensabili per il bioinformatico (poco) scaltro

L’idea da cui ero partito per questo articolo era cercare di configurare delle macro-aree di bioinformatica, e per ognuna di esse collezionare i software e gli strumenti on line che un buon bioinformatico non può non conoscere. Un po’ troppo ambizioso, naturalmente. Inanzitutto perchè non è facile individuare delle categorie ben chiare ove collocare questa o quella tipologia di analisi bioinformatica; in secondo luogo perchè a volare un secondo già solo su Expasy si capisce come il mondo del software biomedicale e dintorni si frammenta e s’espande enormemente, in continuazione.

A pensarci bene ad un bioinformatico scaltro serve ricordare solo tre cose seriamente:

  1. Google is yr friend
  2. RTFMF (read the fucking manual first)
  3. Nothing is perfect

Spero di non dover spiegare i tre punti su menzionati a nessuno. Per quanti invece sarebbe necessario, vadano a casa a chiedere delucidazioni al figlio sedicenne prima di continuare a leggere. :-)

Cosciente di queste tre grandi verità, nell’era della bioinformatica, del web 2.0 e della postgenomica, basta adoperarsi con passione e approccio analitico, per poter padroneggiare qualunque tools ci serva di volta in volta.

Questo non toglie che sarebbe carino approcciare l’argomento dei tools che ogni bioinformatico ha in punta di dita, senza essere troppi pretenziosi. Vorrei allora chiedere a chi ha letto fin qui di indicare, a commento di questo post, quale sia lo strumento bioinformatico che usa in assoluto di più. Magari spiegando il perchè, in che settore lo si usa, e come vi facilita la vita. Non vi chiedo una vera recensione (per questo, si faccia riferimento al punto 1). La mia intenzione è quello di raccogliere brevemente qualche esperienza, per magari in futuro approfondire e scriverne ancora con maggior senno.

Inizio io:

Lo strumento bioinformatico in assoluto che uso di più è….Linux!

Why Linux? Basti pensare che con esso si ha accesso libero a centinaia di tools bioniformatici. Possibilità di operare in regime di multiuser, multitasking e accesso remoto. Migliori performance. Accesso da shell. E qui mi fermo.

Ps: io ambizioso lo sono comunque, e quindi provo a stendere un canovaccio per classificare i vari strumenti bioinformatici. Penso si potrebbero distinguere secondo queste aree standard:

  • Biostatistica e biologia computazionale
  • Algoritmi
  • Analisi di sequenze
  • Filogenetica
  • Analisi di espressione genica
  • Proteomica e metabolomica
  • Chemioinformatica
  • Bioinformatica strutturale
  • Modellizzazione molecolare
  • Drug design
  • Database biologici
  • Data managment e annotazione

Che ne dite, potrebbe andare? A voi la parola! Diteci quale è il tool che preferite.

20 settembre 2007 - 15:03

Non solo perl

» di in: tools

Bioinformatica va di pari passo con perl. Questo è un dato di fatto se non quasi un assioma. Di recente ci si è resi conto che perl, nonostante le sue interessanti potenzialità per quanto riguarda la gestione delle stringhe, è totalmente inadeguato quando s’ha da affrontare qualcosa che ha a che fare con i numeri. Negli ultimi anni, come si nota anche da altri post in questo blog, altri linguaggi si sono affiancati alla bioinformatica, tutti con il loro pacchetto bio: bioperl, biopython, biojava, bioruby… Addiritutta biolisp! Tutti questi linguaggi sono molto comodi, facili da usare (forse non Lisp…), e condividono tutti una scarsa efficenza. Oggi come oggi ci affidiamo a macchine potenti, senza preoccuparci del fatto che sprechiamo risorse computazionali.

Esistono altre biolibrerie che permettono lo sviluppo di programmi più efficenti, più prestanti, eppure non sono pubblicizzate. BioCocoa e BioC++, per dirne due. La prima forse interessa solo noi utenti Mac, è arrivata alla release 2.0 (io da poco ci partecipo) e permette di sviluppare applicazioni di biologia molecolare con la facilità con cui si sviluppa per OS X. Sulla seconda, beh, c’è poco da dire: C++ è un linguaggio estremamente potente, si impara relativamente in fretta, è orientato agli oggetti. In entrambi i casi bisogna solo mettersi in testa che la fase di sviluppo e prototyping non corrisponde con la fase di rilascio (già solo per il fatto che i sorgenti vanno compilati!).

Tutto questo non serve per incominciare un flame, una lotta intestina tra bioinformatici su quale sia il miglior linguaggio da usare (anche perché non esiste il miglior linguaggio, esiste quello più adatto allo scopo), ma solo ed esclusivamente per ricordare che se il vostro codice ci mette qualche ora per fare un’analisi, oltre a controllare che non stia eseguendo loop inutili, potreste anche riscriverlo utilizzando degli strumenti più appropriati!

19 settembre 2007 - 12:23

Librerie di oggetti bioinformatici Python (metalinguaggi da laboratorio da condividere)

Sul suo blog personale, Dalloliogm ha scritto un interessante articolo su come python può facilitare la vita dei bioinformatici . Il suo è un bel esempio di come, attraverso una serie di oggetti legati alla genetica, alle banche dati, ecc, è possibile creare una libreria sempre pronta per elaborazioni comode e veloci: un meta linguaggio specifico per le ricerche che il bioinformatico deve svolgere.
Diciamolo subito: amo python. Amo il fatto che non necessiti di parentesi e che lavori esclusivamente ad oggetti. Lo amo per la sua sinteticità! In poche righe è possibile fare grandi operazioni.

Vi propongo un breve esempio comparativo dello sviluppo di una medesima funzione prima in Perl e poi in Python. Tenete presente che io non sono un guru di nessuno dei due linguaggi, e sicuramente le routine che vi proporrò possono essere ottimizzate. Anzi: siete invitati ad ottimizzarle!
La questione è la seguente. La prima operazione che un bioinformatico interessato alla proteomica deve sviluppare è un piccolo algoritmo per svolgere una “digestione in silico delle proteine“. Ovvero: data la sequenza aminoacidica di una proteina, devo poterla spezzare in tanti peptidi attraverso un enzima. Per facilitare la cosa noi simuleremo l’uso della tripsina. Enzima che taglia (FRAMMENTA) la sequenza seguendo le seguenti regole:

  1. Taglia la sequenza quando trova un aminoacido K o R.
  2. Non lo taglia nel caso ci sia una P successiva, ovvero non nel caso KP e RP.
  3. E’ possibile ci sia un “errore di taglio“, ovvero è possibile che l’enzima non funzioni nel 100% dei casi e quindi che lasci la sequenza parzialmente integra

Un esempio per capirci:
La sequenza della nostra proteina sarà: AAAAAKBBKPCCCCRDDDKEEEEPFFRKGGGG
la mia routine deve restituire la seguente lista:
AAAAAK
BBKPCCCR
DDDK
EEEEPFFR
K
GGGG
AAAAAKBBKPCCCR
BBKPCCCRDDDK
DDDKEEEEPFFR
EEEEPFFRK
KGGGG

Ed ecco come faccio la magia in Perl (in input la sequenza e il numero di possibili errori di tagli (miscleavages)). In sostanza la sub percorre la sequenza, taglia prima i singoli pezzi e poi dalla lista creata unisce 2 a 2 per avere le sequenze con miscleavage.
###########################################

sub tryp {
my $seq = shift @_;
my $miscleav = shift @_;
my %Hfrag =();
my @fragments = @fragReturn = ();
my @splittedSeq=split(//,$seq);
my @fragIndex = ();
my $start=0;
my $end=0;
for ($i=0; $i<$#splittedSeq; $i++){
if (($splittedSeq[$i] =~ /[KR]/) && ($splittedSeq[$i+1] =~ /[^P]/)) {
$end = $endf = $i;
@fragment = @splittedSeq[$start..$end];
push @fragments, join(“”,@fragment);
push @fragIndex, $start;
$start = $i+1;
}
}
if ($endf<$#splittedSeq) {
push @fragments, join (“”, @splittedSeq[($endf+1)..$#splittedSeq]);
push @fragIndex, $endf+1;
}
if ($miscleav != 0) {
for ($p=1; $p<=$miscleav; $p++){
for ($j=0; $j<=$#fragIndex-$p-1; $j++) {
@fragment = @splittedSeq[$fragIndex[$j]..$fragIndex[$j+$p+1]-1];
push @fragments , join(“”,@fragment);
}
@fragment = @splittedSeq[$fragIndex[$#fragIndex-$p]..$#splittedSeq];
push @fragments , join(“”,@fragment);
}
}
foreach my $frdef (@fragments) { $Hfrag{$frdef}=1;}
foreach my $frdef (keys %Hfrag) { push @fragReturn, $frdef; }
return @fragReturn;
}

######################################

la stessa cosa scritta in python:

class Protein(object):
def __init__(self,seq):
self.sequence=seq
def dig_tryp(self,misscleavages=0):
seqKP=re.sub(‘KP’,’1′,self.sequence)
seqRP=re.sub(‘RP’,’2′,seqKP)
seqModified=re.sub(‘K’,'K ‘,seqRP)
invseqKP=re.sub(’1′,’KP’,seqModified)
invseqRP=re.sub(’2′,’RP’,invseqKP)
listPeptides=invseqRP.split()
list=listPeptides
listTot=listPeptides
for num in range(1,misscleavages):
listTemp=[]
listTemp=[list[y]+listPeptides[y+num] for y,t in enumerate(list[:len(list)-1]) if listPeptides[y+num] ]
list=listTemp
listTot.extend(list)
return listTot

##################################

Ho semplicemente creato una classe Protein e un oggetto dig_tryp.
Come si può notare la sinteticità del secondo esempio facilita anche la lettura del codice. E anche quando lo si usa
basta a questo punto creare una istanza con qualcosa del tipo:
P1 = Protein(AAAAAKBBKPCCCCRDDDKEEEEPFFRKGGGG)
peptidi = P1.dig_tryp(1);
Naturalmente anche Perl può essere programmato ad oggetti. E’ possibile creare package pm che contengano le varie sub da richiamare in altri script, ma Perl non è nato come un linguaggio Object oriented e quindi ne eredita certe limitazioni.
Altro vantaggio non da poco del python: il 99.9% dei moduli che vi potranno mai servire sono integrati nel pacchetto di base. Non vi dovrete mai spezzare la testa per far funzionare il modulo DBI su un sistema SUN con Solaris 10 (per esempio) e connettervi al vostro bel DB mysql!
Una piccola nota positiva per i Perlisti convinti (giusto per accontentare anche loro. L’unico vero vantaggio non da poco che vedo in Perl per applicazioni bioinformatiche è l’uso comodo e veloce delle espressioni regolari, che in python non è così immediato.

Immaginate ora una libreria di librerie, scritte in python, adatte per creare classi e oggetti per ogni settore scientifico. Integrabili, portabili! Altro che Bioperl!

10 settembre 2007 - 14:48

Scienza, studi e ricerche spiegati in video

Altrove se ne è già parlato, uno tra tutti vi cito l’articolo su bioinfo Blog!

E quindi vi indico solo l’uscita di un nuovo articolo
sulla Repubblica online che discute delle grandi potenzialità del nuovo sito di scivee.tv

per quanti siano interessati ad approfondire argomenti scientifici via video.

4 settembre 2007 - 09:58

Il buon bioinformatico deve essere hacker dentro?

Devo tenere un breve corso di introduzione ad internet. Tra le altre cose, volevo dare un’idea scevra da pregiudizi della figura dell’hacker. Raccogliendo materiale mi sono inbattuto in questo link dove c’è una bella descrizione della forma mentis del vero hacker.
Mi chiedevo quindi se l’etica hacker possa coincidere con quella di un buon bioinformatico – e in generale di tutti gli scienziati.  

Seguendo la falsariga di quanto detto nella pagina linkata, se volessimo riassumere le capacità e gli atteggiamenti di un hacker, potremmo dire che essi risolvono i problemi e costruiscono le cose, credono nella libertà  e nel mutuo aiuto volontario.
I punti che seguono sono una sorta di breviario, e alcuni di essi mi paiono in pieno accordo con quanto il buon Dalloliogm scriveva in luglio circa i peccati capitali del bioinformatico.

  1. Il mondo è pieno di problemi affascinanti che aspettano di essere risolti. Essere un hacker è molto divertente, ma un tipo di divertimento che richiede molto sforzo. Lo sforzo di affilare le tue capacità ed esercitare la tua intelligenza (qualcuno ha detto FORMAZIONE?).
  2. Nessuno dovrebbe mai risolvere lo stesso problema una seconda volta. Le menti creative non dovrebbero essere sprecate nel reinventare la ruota quando ci sono cosìtanti e affascinanti problemi che aspettano là fuori (qualcuno ha detto BIOPERL?). E’ un dovere morale condividere informazioni, risolvere problemi e diffonderne la soluzione perchè altri non debbano riaffrontare problemi perpetuamente vecchi (qualcuno ha detto PIU’ BLOG E PUBBLICAZIONI BIOINFORMATICHE?).
  3. La noia e i lavori “da sgobboni” sono un male. Per comportarti come un hacker, devi voler automatizzare tutte le cianfrusaglie noiose il più possibile, non solo per te ma per qualsiasi altra persona.
  4. Per comportarti come un hacker, devi sviluppare un ostilità istintiva verso la censura, la segretezza [...](qui forse l’attitudine della comunità scientifica non si allinea molto, ma idealmente la scienza non dovrebbe essere una competizione all’articolo su Nature).
  5. Per diventare un hacker c’è bisogno dell’intelligenza, la pratica, di dedicarsi ed infine di lavorare sodo. Le competenze minime dovrebbero essere: – Imparare a programmare. Tuttavia non puoi essere considerato un hacker o nemmeno un mero programmatore se conosci un solo linguaggio – devi imparare a pensare circa i problemi di programmazione in generale, indipendentemente da qualsiasi linguaggio. – Ottenere un sistema operativo UNIX-like gratuti ed impara ad usarlo. – Imparare ad usare la World Wide Web (of course!!).

INOLTRE: Ci sono alcune cose che puoi fare quando non stai al computer che sembrano aiutare: Leggere riviste scientifiche. Andare a convegni scientifici. Studiare Zen, o praticare un arte marziale (la disciplina mentale sembra essere simile in maniera importante). Sviluppare un orecchio analitico per la musica. Apprezzare anagrammi e giochi di parole. Imparare a scrivere bene nel tuo linguaggio naturale.

Ora fate un raplace tra la parola hacker e bioinformatico. La cosa continua a funzionare?