PARSERIZZAZIONE DI FILE

Slides:



Advertisements
Presentazioni simili
PHP.
Advertisements

Algoritmi e Programmazione
Connessione con MySQL.
Università La Sapienza Web programming e programmazione multimediale 1 Web Programming e comunicazione multimediale Lezione 10: PHP.
Fondamenti di Informatica I a.a Il linguaggio C Il preprocessore La sostituzione di macro Le compilazioni condizionali Linclusione di file C.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Iterazione enumerativa (for)
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
File.
Esercitazione 6 MySQL Laboratorio di Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Introduzione agli stream e alle classi
Introduzione alla programmazione lll
Array Struttura numerate di dati. Memorizzare molti dati In informatica cè spesso bisogno di memorizzare ed elaborare un insieme costituito da molti dati.
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Laurea.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
I File.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX AWK Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Lezione 2 Programmare in ASP
DBMS ( Database Management System)
Manipolazione dei dati
File I record.
Ll Questionario Introduzione al software SAS (Parte 2) Metodi Quantitativi per Economia, Finanza e Management Esercitazione n°2.
File ad accesso casuale o random
Algoritmi e Programmazione strutturata
BIOINFO3 - Lezione 24 ARRAY
ACCESS Introduzione Una delle necessità più importanti in informatica è la gestione di grandi quantità di dati. I dati possono essere memorizzati.
BIOINFO3 - Lezione 121 Alter Table Alter table permette di cambiare la struttura di tabelle esistenti. Ad esempio e` possibile aggiungere o cancellare.
BIOINFO3 - Lezione 261 ESERCIZIO Esercizio. Leggere delle sequenze di DNA (una per riga, a partire da inizio riga) e stampare solo le sequenze lunghe più
BIOINFO3 - Lezione 381 ESERCIZIO Dato un programma con la sola istruzione: $a=Hasta la vista! Quanto vale length($a) ?15 substr($a,0) ? substr($a,$b) ?
BIOINFO3 - Lezione 221 Listruzione IF-ELSE prevede un secondo blocco di istruzioni da eseguire in alternativa al primo nel caso la condizione sia falsa.
BIOINFO3 - Lezione 341 INTERAZIONE CON UN SERVER MYSQL Quando abbiamo parlato dei database relazionali SQL vi avevo già accennato che linterazione (invio.
BIOINFO3 - Lezione 361 RICERCA DI SIMILARITA TRA SEQUENZE Un altro problema comunissimo in bioinformatica è quello della ricerca di similarità tra sequenze.
BIOINFO3 - Lezione PARSING RISULTATI DI BLAST Nella lezione di ieri abbiamo visto come automatizzare lesecuzione di BLAST. Oggi proviamo.
BIOINFO3 - Lezione 321 ACCESSO REMOTO AL SERVER SIBILLA Attraverso Internet è possibile accedere al server sibilla.cribi.unipd.it. Potrete così effettuare.
BIOINFO3 - Lezione 101 GLI IPERTESTI Una delle innovazioni introdotte da HTML e dal WWW in generale, rispetto ad un testo normale è sicuramente la possibilità
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
BIOINFO3 - Lezione 51 INSERIMENTO DEI DATI Visto come si creano le tabelle (sinora tristemente vuote), cominciamo ad occuparci di come riempirle con dei.
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
BIOINFO3 - Lezione 211 INPUT La lettura di un input dallo standard input (tastiera) si effettua utilizzando lespressione. Quando il programma incontra.
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
BIOINFO3 - Lezione 15 ISTRUZIONI
BIOINFO3 - Lezione 41 ALTRO ESEMPIO ANCORA Progettare il comando di creazione di una tabella di pubblicazioni scientifiche. Come chiave usare un numero.
BIOINFO3 - Lezione 291 PATTERN MATCHING Imparato cosa sono e come si usano le espressioni regolari per individuare dei pattern, vediamo come si usano in.
BIOINFO3 - Lezione 301 CGI-BIN Abbiamo visto che CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. In particolare.
BIOINFO3 - Lezione 271 PATH DEL FILE Bisogna fare molta attenzione al path del file da aprire. Per non sbagliare converrebbe passare sempre il path assoluto.
REDIREZIONE INPUT E OUTPUT
BIOINFO3 - Lezione 251 ARRAY ASSOCIATIVI E possibile assegnare tutti gli elementi dellarray con ununica istruzione %anni=(Marco,30,Luigi,33,Anna,28,Chiara,25);
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 4 - Dicembre Utenti e privilegi del database - 1 Root è lutente amministratore predefinito, ma.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Lavorare con le query Federica Scarrione 18/05/2009 fonte:
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
Lezione 3 Struttura lessicale del linguaggio
Pagine ASP parte 3 I data base Stefano Schacherl.
Microsoft Access Maschere (II).
Introduzione a Javascript
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
MySQL Database Management System
PHP MySQL Accesso a database via web. Connessione Script PHP per la connessione a un server MySQL mysql_connect(nomeServer,nomeUtente,password);
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
SQLite. Introduzione a SQLite Oltre alla possibilità di memorizzare informazioni persistenti attraverso Preferences e files, Android mette a disposizione.
Transcript della presentazione:

PARSERIZZAZIONE DI FILE BIOINFO3 - Lezione 35 PARSERIZZAZIONE DI FILE Un problema piuttosto comune in bioinformatica è quello di leggere un file, tipicamente un flat-file in un qualche formato (es. FASTA) rappresentante un database (es. un insieme di sequenze). All’interno del file si tratta di riconoscere la struttura sintattica con cui sono organizzati i dati e quindi individuare i singoli record e all’interno dei record i singoli campi. Una volta “estratte” le informazioni di nostro interesse dal file è possibile sottoporle a qualunque elaborazione, ad esempio potremo scrivere in un nuovo file i risultati dell’elaborazione. L’elaborazione potrebbe consistere anche semplicemente nel riscrivere i record in un nuovo formato o nello scrivere solo i record che verificano determinate condizioni. campo1 campo2 campon ……. record1 PROGRAMMA PARSERIZZATORE FILE ……. recordn BIOINFO3 - Lezione 35

BIOINFO3 - Lezione 35 FILE FASTA Supponiamo che il file da analizzare sia in formato FASTA, ad esempio un file di sequenze EST scaricato da GENBANK. Individuamo nei record i campi di nostro interesse 1 2 3 4 5 1)    Il numero identificativo gi del record genbank 2)    Il codice accession 3)    Il nome della EST 4)    La descrizione della EST 5)    La sequenza della EST BIOINFO3 - Lezione 35

BIOINFO3 - Lezione 35 ELABORAZIONE L’elaborazione che ci interessa effettuare su ogni singolo record è quella di inserire un record corrispondente all’interno di un database relazionale SQL di sequenze EST. Le 5 informazioni estratte da ogni record dovranno produrre un corrispondente comando di insert MySQL 1 2 3 4 5 insert into est (gi,accession,nome,descrizione,sequenza) values(8777287,’AB044776’,’AB044776’,’Panax…’,‘GAAGAA…’) BIOINFO3 - Lezione 35

BIOINFO3 - Lezione 35 2 ALTERNATIVE Abbiamo visto che esistono due modi alternativi per interagire con un database SQL e di conseguenza è possibile eseguire l’operazione di insert in due modi alternativi Dalla linea di comando del client MySQL Da programma (embedding) Nel primo caso il programma di parserizzazione creerà un file di comandi SQL che poi daremo direttamente in pasto all’interprete MySQL. Nel secondo caso le istruzioni di insert sono eseguite una ad una direttamente all’interno del programma, man mano che vengono letti i singoli record. La seconda soluzione sembrerebbe più “automatizzata”, però anche nel primo caso, una volta scritto completamente il file, è possibile far eseguire da programma (con una istruzione qx o system) il comando UNIX di lettura ed esecuzione del file da parte del client mysql BIOINFO3 - Lezione 35

SCHEMATIZZANDO… 1) 2) ……. esecuzione del file file di comandi SQL file BIOINFO3 - Lezione 35 SCHEMATIZZANDO… campo1 campo2 campon ……. while (riconoscimento di un record){ estrazione campi definizione comando di insert scrittura del comando sul file } 1) esecuzione del file file di comandi SQL file parserizzatore campo1 campo2 campon ……. while (riconoscimento di un record){ estrazione campi definizione comando di insert esecuzione del comando } SERVER MYSQL 2) DB Proveremo a vedere entrambe le soluzioni in quanto la parte di programma che cambia è minima (evidenziata in rosso) BIOINFO3 - Lezione 35

LA STRATEGIA PER PARSERIZZARE IL FILE BIOINFO3 - Lezione 35 LA STRATEGIA PER PARSERIZZARE IL FILE Abbiamo detto che la parserizzazione deve essere guidata dalla struttura sintattica del file. In Perl una possibilità è quella di leggere l’intero file ed assegnarlo ad un’unica stringa (che può contenere file anche molto grandi) e quindi procedere all’individuazione dei record. I record sono chiaramente separabili grazie al pattern “>gi|” posto all’inizio di ogni record. Si potrà pertanto effettuare una operazione di split basata proprio su questo pattern, ottenendo un array contenente tutti i record. Per ogni record si potrà effettuare successivamente un pattern matching per estrarre i 5 campi. >gi| lettura file split array ( , , ) >gi| pattern matching >gi| file stringa 1 2 3 4 5 BIOINFO3 - Lezione 35

BIOINFO3 - Lezione 35 IL PARSERIZZATORE BIOINFO3 - Lezione 35

BIOINFO3 - Lezione 35 ESECUZIONE Per evitare di “sorbirsi” tutti i cicli di lettura fissiamo un break point! BIOINFO3 - Lezione 35

ESECUZIONE Lo split crea 22 record, BIOINFO3 - Lezione 35 ESECUZIONE Lo split crea 22 record, ma il primo è vuoto (perché il file iniziava con il pattern di split). Per questo ho aggiunto il test if ($record) BIOINFO3 - Lezione 35

BIOINFO3 - Lezione 35 ESECUZIONE Prima di eliminare tutti gli spazi e i new-line dalla sequenza proviamo a vedere tutte le stringhe catturate dal pattern matching BIOINFO3 - Lezione 35

BIOINFO3 - Lezione 35 ESECUZIONE Vediamo la sequenza $seq prima e dopo la sostituzione del pattern Si può anche notare che l’operazione di pattern substitution azzera le variabili speciali $1, $2,… In generale ogni operazione sui pattern cancella i risultati della precedente BIOINFO3 - Lezione 35

BIOINFO3 - Lezione 35 ESECUZIONE Si procede quindi con il riconoscimento del secondo record e così via. Alla fine di ogni ciclo abbiamo a disposizione nelle variabili $gi, $ac, $nome, $descr, $seq tutti i campi per quel record BIOINFO3 - Lezione 35

CREAZIONE DI FILE DI COMANDI SQL BIOINFO3 - Lezione 35 CREAZIONE DI FILE DI COMANDI SQL Non ve l’avevo ancora detto (anche perché a fine programma i file aperti vengono comunque chiusi automaticamente) ma è buona norma chiudere un file quando è stato letto o scritto completamente BIOINFO3 - Lezione 35

BIOINFO3 - Lezione 35 ESECUZIONE BIOINFO3 - Lezione 35

ESECUZIONE DEL FILE DI COMANDI BIOINFO3 - Lezione 35 ESECUZIONE DEL FILE DI COMANDI Una volta scritti tutti i comandi SQL e chiuso il file di output ($nomefile.mysql) si può eseguire l’istruzione Perl: qx{mysql btbm-xx <$nomefile.mysql}; Dove btbm-xx è il nome del database su cui far eseguire i comandi. Il comando UNIX eseguito da Perl fa leggere ed eseguire al client mysql il file di comandi appena creato. Lo stesso comando UNIX potrà anche essere dato non da programma ma a mano al termine dell’esecuzione del programma parserizzatore BIOINFO3 - Lezione 35

COMANDI SQL DA PROGRAMMA BIOINFO3 - Lezione 35 COMANDI SQL DA PROGRAMMA BIOINFO3 - Lezione 35