MySQL

19
MySQL Esercitazioni

description

Esercitazioni. MySQL. Ripasso. Connessione a MySQL. Creazione delle basi di dati e delle tablelle. Inserimento dei dati. Interrogazioni. Alcuni Esercizi. Descrizione della struttura di SDB (Sequence DataBase). Descrizione dei principali campi di SDB. Interrogazioni. Struttura dell'SDB. - PowerPoint PPT Presentation

Transcript of MySQL

Page 1: MySQL

MySQL

Esercitazioni

Page 2: MySQL

Ripasso● Connessione a MySQL.

● Creazione delle basi di dati e delle tablelle.

● Inserimento dei dati.

● Interrogazioni.

Page 3: MySQL

Alcuni Esercizi ● Descrizione della struttura di SDB (Sequence

DataBase).

● Descrizione dei principali campi di SDB.

● Interrogazioni

Page 4: MySQL

Struttura dell'SDB● Base di dati Relazionale, costituita da

tabelle di tipo myisam.

● Utilizzato per registrare i dati di:– Sequenze Nucleotidiche;– Esecuzioni di Blast;– Esecuzioni di Clustering.

Page 5: MySQL

Tabelle delle Sequenze● SAMPLE_PLAN.● CONTAINER.● REPORTER.● DUPLICATES.● MAPPING.● MAPPING_8KRG.

Page 6: MySQL

Tabelle dei Blast● BLAST_EST.

● BLAST_GEN.

● BLAST_NORM.

Page 7: MySQL

Tabelle di Clustering● CLUSTERS.

● CLUSTERS_CONSENSUS.

Page 8: MySQL

Alcuni Campi della Base di Dati

● Testo delle Sequenze.

● Campi di Blast_gen:– Chromosome;– Contig_start;– STS;– HomologyPerc.

Page 9: MySQL

Esercizio 1● Selezionare gli identificatori e la lunghezza

delle sequenze più lunghe di 100 paia di basi.– Selezionare il numero di sequenze più lunghe di

100 paia di basi.● Selezionare i risultati di blast (BLAST_NORM)

che hanno un evalue maggiore di 10-100.● Selezionare i risultati del blast genomico

(BLAST_GEN) che sono più lunghi di 100 paia di basi e che si trovano sul cromosoma 3.– E se volessi quelli sul cromosoma X?

Page 10: MySQL

Soluzioni Esercizio 1● select Reporter_ID, Length from REPORTER where Length

> 100;

– select count(Reporter_ID) from REPORTER where Length > 100;

● select Reporter_ID, E_Value_Best_Match from BLAST_NORM where E_Value_Best_Match > 1e-100;

● select BLAST_GEN.Reporter_ID, BLAST_GEN.Sx, BLAST_GEN.Sy, BLAST_GEN.Chromosome from BLAST_GEN where (BLAST_GEN.Sy-BLAST_GEN.Sx)>100 and BLAST_GEN.Chromosome = 3;

– select BLAST_GEN.Reporter_ID, BLAST_GEN.Sx, BLAST_GEN.Sy, BLAST_GEN.Chromosome from BLAST_GEN where (BLAST_GEN.Sy-BLAST_GEN.Sx)>100 and BLAST_GEN.Chromosome = 'X';

Page 11: MySQL

Esercizio 2● Selezionate l'identificatore, la

lunghezza ed il cromosoma di tutte le sequenze il cui nome comincia con 5000.

● Selezionare tutte le sequenze di lunghezza maggiore di 100 che sono in relazione con p53 (hanno un risultato di blast correlato con un'annotazione di p53).

Page 12: MySQL

Soluzione – Esercizio 2 (1)

● Normale– select REPORTER.Reporter_ID, REPORTER.Length,

BLAST_GEN.Chromosome from REPORTER, BLAST_GEN where REPORTER.Reporter_ID = BLAST_GEN.Reporter_ID and REPORTER.Reporter_ID like '5000%';

● Inner Join– select REPORTER.Reporter_ID, REPORTER.Length,

BLAST_GEN.Chromosome from REPORTER inner join BLAST_GEN on REPORTER.Reporter_ID = BLAST_GEN.Reporter_ID where REPORTER.Reporter_ID like '5000%';

● Natural Join– select REPORTER.Reporter_ID, REPORTER.Length,

BLAST_GEN.Chromosome from REPORTER natural join BLAST_GEN where REPORTER.Reporter_ID like '5000%';

Page 13: MySQL

Soluzione – Esercizio 2 (2)

● Right Join– select REPORTER.Reporter_ID, REPORTER.Length,

BLAST_GEN.Chromosome from REPORTER right join BLAST_GEN on REPORTER.Reporter_ID =BLAST_GEN.Reporter_ID where REPORTER.Reporter_ID like '5000%';

● Left Join– select REPORTER.Reporter_ID, REPORTER.Length,

BLAST_GEN.Chromosome from REPORTER left join BLAST_GEN on REPORTER.Reporter_ID = BLAST_GEN.Reporter_ID where REPORTER.Reporter_ID like '5000%';

Page 14: MySQL

Soluzione – Esercizio 2 (3)

● Soluzione – select REPORTER.Reporter_ID from REPORTER, BLAST_NORM where

REPORTER.Reporter_ID = BLAST_NORM.Reporter_ID and REPORTER.Length > 100 and BLAST_NORM.Annotation like '%p53%';

● Usando left join– select REPORTER.Reporter_ID from REPORTER left join BLAST_NORM

on REPORTER.Reporter_ID = BLAST_NORM.Reporter_ID where REPORTER.Length > 100 and BLAST_NORM.Annotation like '%p53%';

● Left Join con Using– select REPORTER.Reporter_ID from REPORTER left join BLAST_NORM

using (Reporter_ID) where REPORTER.Length > 100 and BLAST_NORM.Annotation like '%p53%';

Page 15: MySQL

Esercizio 3● Quante sono le sequenze che hanno un

match in BLAST_EST con percentuale di omologia maggiore del 99%?

● Contare il numero di risultati di blast per ogni sequenza di BLAST_NORM.– Resituire solo quelli che hanno più di 3

risultati.● Le query con order by e limit.

Page 16: MySQL

Soluzioni – Esercizio 3● Distinct

– select distinct(BLAST_EST.Reporter_ID) from BLAST_EST where BLAST_EST.HomologyPerc > 99 order byReporter_ID;

● Count– select Reporter_ID, count(Ordr) from BLAST_NORM group by

Reporter_ID;

– select Reporter_ID, count(Ordr) from BLAST_NORM group by Reporter_ID having E_Value_Best_Match > 1e-100;

● Order by e limit

– select Reporter_ID, E_Value_Best_Match, Chromosome from BLAST_GEN where E_Value_Best_Match=1e-100 order by Chromosome limit 0,30

Page 17: MySQL

Esercizio 4● Selezionare, dalla tabella BLAST_NORM le sequenze

che hanno lo stesso NCBI_Subject_ID della sequenza 8RG3CGA11.

● Per casa: selezionate tutte le sequenze che hanno Poly_C nella stessa posizione della sequenza 5000ABC06 o della sequenza 5000AAE09.*

– sugg. provate prima con una sola sequenza.● Per casa: trovare quante sono le sequenze che

hanno la stessa lunghezza purché diversa da zero.***

– sugg. è una query che coinvolge la tabella REPORTER con se stessa, si devono usare gli alias.

Page 18: MySQL

Soluzioni – Esercizio 4● Self query

– select BLAST_NORM1.Reporter_ID, BLAST_NORM1.NCBI_Subject_ID, BLAST_NORM2.NCBI_Subject_ID from BLAST_NORM as BLAST_NORM1, BLAST_NORM as BLAST_NORM2 where BLAST_NORM1.NCBI_Subject_ID = BLAST_NORM2.NCBI_Subject_ID and BLAST_NORM2.Reporter_ID = '8RG3CGA11' order by BLAST_NORM1.NCBI_Subject_ID;

– select Reporter_ID from BLAST_NORM where NCBI_Subject_ID = (select NCBI_Subject_ID from BLAST_NORM where Reporter_ID = '8RG3CGA11');

● Ho detto per casa o no?

Page 19: MySQL

Esercizio 5Costruite una base di dati che abbia le

seguenti caratteristiche:● Mantenga i dati su sequenze nucleotidiche.

– Testo della Sequenza.– Lunghezza delle sequenze.

● Mantenga i dati sui ricercatori cui appartengono le sequenze.– Dati Anagrafici.– Sequenze possedute.