IPW2008 Perl e Bioinformatica G.M. Dall'Olio
Cosa é la bioinformatica? Scienza che studia come utilizzare la grande quantità di dati prodotti dalla ricerca scientifica. Nata nel 1957, quando Margaret Dayhoff compila un metodo per stabilire quanto due sequenze di proteine sono simili (matrici PAM). Approccio scientifico: formulazione di una ipotesi (e.g.: il genoma umano é più lungo di quello di topo), validazione, confronto.
Bioinformatica al giorno d'oggi Negli ultimi anni i costi per produrre grandi quantità di dati in esperimenti scientifici sono diminuiti enormemente. Per esempio è possibile sequenziare un intero genoma in poco tempo. I piccoli laboratori preferiscono utilizzare dati prodotti da centri più grandi e resi disponibili gratuitamente, e studiarli grazie al computer.
Bioinformatica – casi d'uso I Studiare i dati prodotti dal sequenziamento del genoma umano: trovare posizione di geni, confrontare con altri organismi; Catalogare tutte le proteine espresse nell'uomo, clusterizzarle e trovare elementi in comune; Prevedere la struttura di una proteina a partire dalla sequenza;  Rappresentare le reti di interazione tra proteine come grafi.
Bioinformatica – casi d'uso II Gestire la fase di produzione di dati, come assemblare i risultati di un esperimento e salvarli su computer; Supportare la ricerca classica, con database, applicazioni web, servizi; Tanto altro :)
Differenza tra programmazione di software e bioinformatica In bioinformatica, l'obiettivo non é creare una applicazione software da far utilizzare a terzi. Piuttosto bisogna scrivere diversi piccoli programmi che permettano di eseguire calcoli e capire come assemblarli. E' necessario un approccio più scientifico, facendo attenzione ai controlli e mettendo bene in chiaro quali sono le nostre ipotesi.
Esempio di esperimento bioinformatico Ipotesi : il genoma umano é più lungo di quello di topo. Assunzioni :  I genomi di entrambi gli organismi sono stati sequenziati con lo stesso livello di qualità; Per ogni genoma considero la lunghezza intera della sequenza eccetto alcune parti non sequenziabili (...) Le sequenze di riferimento sono quelle depositate nel database genbank sul server ncbi, release 41.
Esempio di esperimento bioinformatico Per dimostrare che il genoma umano é più lungo di quello di topo, procedo così: Scrivo un programma che scarichi le due sequenze dal database di riferimento; Ne scrivo un secondo che verifichi le sequenze scaricate ed elimini le parti che non voglio considerare; Scrivo un terzo programma che calcoli la lunghezza delle due sequenze e le confronti; Testo i vari script, e li unisco tramite Make o un tool simile.
Esempio di esperimento bioinformatico Contenuto della directory del nostro esperimento di bioinformatica: getSequencesFromNCBI.pl cleanSequences.pl compareSequenceLength.pl Makefile Readme.txt
Perl e bioinfo Perl è tra i linguaggi più utilizzati in bioinformatica. Viene insegnato nella maggior parte dei corsi e master. Si è diffuso quando alcuni gruppi dell'EBI (European Bioinformatics Institute) hanno cominciato a usarlo, e rilasciare codice sotto Gnu/GPL.
Vantaggi del perl in bioinformatica Perl permette di lavorare facilmente su file di testo è più pratico salvare la sequenza di un genoma in testo semplice piuttosto che su XML o un database Le espressioni regolari sono comode per identificare motivi e pattern su sequenze. e.g. trovare il punto di interazione tra due proteine e capire quanto questa sarà forte. Numerose librerie disponibili già su CPAN e BioPerl.
Svantaggi del perl in bioinformatica Meno facile da imparare del python Meno orientato ad oggetti di altri linguaggi Scienziati con teste molto dure Usato molto male
Problemi della bioinformatica Basicamente, il problema é che molti bioinformatici programmano avendo poche basi teoriche Si studia per 3 o 5 anni biologia, dopodiché con uno o due corsi ci si improvvisa programmatori Il perl é svantaggiato in questo contesto perché é più complesso da imparare rispetto ad altri linguaggi Molti usano il perl senza sapere usare funzioni, hash, moduli esterni, documentazione, moduli di testing
Altri problemi della bioinfo Mentalità 'Publish or Perish': una volta che una libreria viene pubblicata su rivista, non viene mantenuta. Non esiste una vera e propria cultura del software libero. Non sono definite delle pratiche di buona programmazione comuni.
Esempi: BioPerl BioPerl é un insieme di librerie per la bioinformatica rilasciate sotto Gnu/GPL Casi d'uso: convertire un file in un formato diverso, cercare un articolo, avviare un tool di allineamento su un database pubblico, calcolare proprietà di una sequenza, etc.. Esistono altri progetti simili (BioPython, BioJava, BioC, ...), ma BioPerl é il più completo e diffuso Purtroppo non tutti lo usano ('snobbato').
Esempi: Ensembl APIs Ensembl è un progetto nato per gestire le informazioni ricavate dal sequenziamento del genoma umano Fornisce informazioni come la posizione di geni e di trascritti, SNPs, regioni d'omologia. Adesso é stato allargato ad altre specie oltre all'uomo. Ensembl fornisce delle ottime API per estrarre e navigare sui dati annotati, in perl e java.
Esempi:
Futuro del Perl in bioinfo In alcuni campi ci si sta spostando dal lavoro su file di testo all'uso di database Come è perl per lavorare su database?  Antagonisti/Compagni del perl: R Python Java In ogni caso, è probabile che perl continui ad essere utilizzato a lungo, perché ci sono molte librerie e comunità disposte a mantenerle.
Errori comuni in bioinformatica

(draft) perl e bioinformatica - presentazione per ipw2008

  • 1.
    IPW2008 Perl eBioinformatica G.M. Dall'Olio
  • 2.
    Cosa é labioinformatica? Scienza che studia come utilizzare la grande quantità di dati prodotti dalla ricerca scientifica. Nata nel 1957, quando Margaret Dayhoff compila un metodo per stabilire quanto due sequenze di proteine sono simili (matrici PAM). Approccio scientifico: formulazione di una ipotesi (e.g.: il genoma umano é più lungo di quello di topo), validazione, confronto.
  • 3.
    Bioinformatica al giornod'oggi Negli ultimi anni i costi per produrre grandi quantità di dati in esperimenti scientifici sono diminuiti enormemente. Per esempio è possibile sequenziare un intero genoma in poco tempo. I piccoli laboratori preferiscono utilizzare dati prodotti da centri più grandi e resi disponibili gratuitamente, e studiarli grazie al computer.
  • 4.
    Bioinformatica – casid'uso I Studiare i dati prodotti dal sequenziamento del genoma umano: trovare posizione di geni, confrontare con altri organismi; Catalogare tutte le proteine espresse nell'uomo, clusterizzarle e trovare elementi in comune; Prevedere la struttura di una proteina a partire dalla sequenza; Rappresentare le reti di interazione tra proteine come grafi.
  • 5.
    Bioinformatica – casid'uso II Gestire la fase di produzione di dati, come assemblare i risultati di un esperimento e salvarli su computer; Supportare la ricerca classica, con database, applicazioni web, servizi; Tanto altro :)
  • 6.
    Differenza tra programmazionedi software e bioinformatica In bioinformatica, l'obiettivo non é creare una applicazione software da far utilizzare a terzi. Piuttosto bisogna scrivere diversi piccoli programmi che permettano di eseguire calcoli e capire come assemblarli. E' necessario un approccio più scientifico, facendo attenzione ai controlli e mettendo bene in chiaro quali sono le nostre ipotesi.
  • 7.
    Esempio di esperimentobioinformatico Ipotesi : il genoma umano é più lungo di quello di topo. Assunzioni : I genomi di entrambi gli organismi sono stati sequenziati con lo stesso livello di qualità; Per ogni genoma considero la lunghezza intera della sequenza eccetto alcune parti non sequenziabili (...) Le sequenze di riferimento sono quelle depositate nel database genbank sul server ncbi, release 41.
  • 8.
    Esempio di esperimentobioinformatico Per dimostrare che il genoma umano é più lungo di quello di topo, procedo così: Scrivo un programma che scarichi le due sequenze dal database di riferimento; Ne scrivo un secondo che verifichi le sequenze scaricate ed elimini le parti che non voglio considerare; Scrivo un terzo programma che calcoli la lunghezza delle due sequenze e le confronti; Testo i vari script, e li unisco tramite Make o un tool simile.
  • 9.
    Esempio di esperimentobioinformatico Contenuto della directory del nostro esperimento di bioinformatica: getSequencesFromNCBI.pl cleanSequences.pl compareSequenceLength.pl Makefile Readme.txt
  • 10.
    Perl e bioinfoPerl è tra i linguaggi più utilizzati in bioinformatica. Viene insegnato nella maggior parte dei corsi e master. Si è diffuso quando alcuni gruppi dell'EBI (European Bioinformatics Institute) hanno cominciato a usarlo, e rilasciare codice sotto Gnu/GPL.
  • 11.
    Vantaggi del perlin bioinformatica Perl permette di lavorare facilmente su file di testo è più pratico salvare la sequenza di un genoma in testo semplice piuttosto che su XML o un database Le espressioni regolari sono comode per identificare motivi e pattern su sequenze. e.g. trovare il punto di interazione tra due proteine e capire quanto questa sarà forte. Numerose librerie disponibili già su CPAN e BioPerl.
  • 12.
    Svantaggi del perlin bioinformatica Meno facile da imparare del python Meno orientato ad oggetti di altri linguaggi Scienziati con teste molto dure Usato molto male
  • 13.
    Problemi della bioinformaticaBasicamente, il problema é che molti bioinformatici programmano avendo poche basi teoriche Si studia per 3 o 5 anni biologia, dopodiché con uno o due corsi ci si improvvisa programmatori Il perl é svantaggiato in questo contesto perché é più complesso da imparare rispetto ad altri linguaggi Molti usano il perl senza sapere usare funzioni, hash, moduli esterni, documentazione, moduli di testing
  • 14.
    Altri problemi dellabioinfo Mentalità 'Publish or Perish': una volta che una libreria viene pubblicata su rivista, non viene mantenuta. Non esiste una vera e propria cultura del software libero. Non sono definite delle pratiche di buona programmazione comuni.
  • 15.
    Esempi: BioPerl BioPerlé un insieme di librerie per la bioinformatica rilasciate sotto Gnu/GPL Casi d'uso: convertire un file in un formato diverso, cercare un articolo, avviare un tool di allineamento su un database pubblico, calcolare proprietà di una sequenza, etc.. Esistono altri progetti simili (BioPython, BioJava, BioC, ...), ma BioPerl é il più completo e diffuso Purtroppo non tutti lo usano ('snobbato').
  • 16.
    Esempi: Ensembl APIsEnsembl è un progetto nato per gestire le informazioni ricavate dal sequenziamento del genoma umano Fornisce informazioni come la posizione di geni e di trascritti, SNPs, regioni d'omologia. Adesso é stato allargato ad altre specie oltre all'uomo. Ensembl fornisce delle ottime API per estrarre e navigare sui dati annotati, in perl e java.
  • 17.
  • 18.
    Futuro del Perlin bioinfo In alcuni campi ci si sta spostando dal lavoro su file di testo all'uso di database Come è perl per lavorare su database? Antagonisti/Compagni del perl: R Python Java In ogni caso, è probabile che perl continui ad essere utilizzato a lungo, perché ci sono molte librerie e comunità disposte a mantenerle.
  • 19.
    Errori comuni inbioinformatica