===== Progetto di ASD, anno accademico 2018/19 ===== Questo progetto sostituisce l'esame scritto del corso o il seminario, e non necessita la presentazione del mini-progetto. Il progetto utilizza un file di input contenente stringhe di lunghezza prefissata k, che rappresentano i k-meri ottenuti dalle "read" dell'[[https://en.wikipedia.org/wiki/DNA_sequencing|High Throughput Sequencing (HTS)]] su sequenze di DNA. Tali k-meri definiscono un [[https://en.wikipedia.org/wiki/De_Bruijn_graph|grafo di de Bruijn]] come descritto nei lucidi del corso: {{ :matematica:asd:asd_18:progettoasd1819.pdf | lucidi }}. Il progetto richiede di: * Scaricare uno dei file di input, dove k=99: [[https://drive.google.com/open?id=1-7JPRTYm43cw_BGhf6l5xOZLWbuo3s1a&usp=drive_fs|10^5 read]], [[https://drive.google.com/open?id=1-GmbCiCAe2EWQ2m6JuHVjrHe024stbNV&usp=drive_fs|10^6 read]], [[https://drive.google.com/open?id=1-KJFY8boKbn4gkkhBrKgHubozzl20-sv&usp=drive_fs|10^7 read]] (fonte:[[https://github.com/felipelouza/egap/tree/master/dataset]]). * Costruire il corrispondente grafo di de Bruijn (per fare una prova utilizzare questi read con k=9: [[https://drive.google.com/file/d/1OlwH8Wz03DDonTt4kfomXaQaJC_0EjuA/view?usp=sharing|small read]]). * Progettare delle opportune strutture dei dati per rispondere alle seguenti operazioni di ricerca (dove la terza utilizza la seconda), per una stringa P di lunghezza arbitraria m > k: - stabilire se P appare come sequenza di caratteri che occorrono lungo uno dei cammini del grafo; - trovare il più lungo prefisso di P che soddisfa la condizione della 1; - eseguire la 1 dove P può avere un errore: uno dei suoi simboli non corrisponde, ma gli altri sì (es. trova anche AGCC o ATCT specificando P = ATCC perché differiscono in un solo simbolo che non corrisponde).