Piattaforma GenPat, Wiki

Topics
Topics

Esecuzione ed Inserimento dati

DA BIOINFOTOOLS

A. ESITI ESAMI

Per ciascun campione delle RUN da elaborare, si prendono i risultati dei vari accertamenti:

  1. WGS:

    • Per i campioni del tender si splitta il file separando le colonne con il carattere tab "\t" e si considerano le colonne totReads e avgQual per prendere i valori dei Total rawreads e Qscore
    • Per tutti gli altri campioni si splitta il file separando le colonne con il carattere "," e si considerano le colonne Total_rawReads e Mean_rawAvgQual per prendere i valori dei Total rawreads e Qscore
    • Se ci sono errori (file non trovato..) si restituisce "NON DISPONIBILI N. reads totali, Q-score".
    • E' importante, affinchè vada bene inserimento dei risultati sul SILAB, che i due valori (readsa totali e QScore) siano divisi dal carattere '#' (es. 12345#30)
  2. MLST:

    • Considera il file della tipologia ...._mlst.tsv e lo splitta considerando come separatore il carattere ";".
    • Se il file non viene trovato si restituisce ANALISI BIOINFORMATICA NON COMPLETA
    • Si considera il valore della colonna ST. Se si trova il carattere - (trattino), si controlla il numero di volte in cui è presente il carattere "?" tra i loci della colonna "loci(varianti)"; nel caso in cui si presenta più di una volta, si restituisce "ANALISI BIOINFORMATICA NON COMPLETA", altrimenti "Trovato nuovo ST. Raw reads inviate all’Istituto Pasteur per l’assegnazione dei codici".
  3. CC:

    • Considera il file della tipologia ...._mlst_cc.csv e lo splitta considerando come separatore il carattere ";".
    • Se il file non viene trovato si restituisce ANALISI BIOINFORMATICA NON COMPLETA
    • Si considera il valore della colonna CC. Se si trova il carattere - (trattino), si controlla il numero di volte in cui è presente il carattere "?" tra i loci della colonna "loci(varianti)"; nel caso in cui si presenta più di una volta, si restituisce "ANALISI BIOINFORMATICA NON COMPLETA", altrimenti "Trovato nuovo CC. Raw reads inviate all’Istituto Pasteur per l’assegnazione dei codici".
  4. cgMLST:

    • Considera il file della tipologia 4TY_cgMLST/DS_chewbbaca/qc/result/_import_chewbbaca_check.csv e lo splitta considerando come separatore il carattere ",".
    • Se il file non viene trovato si restituisce ANALISI BIOINFORMATICA NON COMPLETA
    • Si considera il valore della colonna calledNum.
  5. wgMLST:

    • Considera il file della tipologia 4TY_wgMLST/DS_chewbbaca/qc/result/_chewbbaca_check.csv e lo splitta considerando come separatore il carattere ",".
    • Se il file non viene trovato si restituisce ANALISI BIOINFORMATICA NON COMPLETA
    • Si considera il valore della colonna calledNum.
  6. flaA:

    • Considera il file della tipologia 4TY_flaA/DS_flaA/result/_mbn_flaa_cc.csv e lo splitta considerando come separatore il carattere ";".
    • Se il file non viene trovato si restituisce ANALISI BIOINFORMATICA NON COMPLETA
    • Si considera il valore della colonna loci(varianti) :
      • se contiene un numero, lo si considera com risultato
      • se contiene due numeri separati da , li si sonsidera entrambi come risultato
      • se contiene ? o ~ come risultato bisogna considerare "Trovato nuovo flaA. fasta inviate al database di riferimento pubMLST C.coli per assegnazione dei codici."
  7. SNPs:

    • Considera il file della tipologia 2AS_mapping/DS_snippy/result/_snippy/meta/_import_coverage.csv e lo splitta considerando come separatore il carattere ",".
    • Se il file non viene trovato si restituisce ANALISI BIOINFORMATICA NON COMPLETA
    • Si considerano i valore delle colonne COV e H_COV considerando un solo decimale; H_COV viene riportato in valore percentuale.
    • se COV* (Coverage verticale) ha un valore inferiore a 30 si avrà esito: Analisi Bioinformatica non completa (Coverage veriicale <30X)
    • se H_COV* (Coverage orizzonatale ) ha un valore inferiore a 97 si avrà esito: Analisi Bioinformatica non completa (Coverage orizzontale <97%)

Per ciascuno dei risultati dovrà essere indicato, oltre al DS ed esito, anche il tipo esame (wgs,cc,st,cgmlst,fla,wgmlst). Di seguito un esempio di risultati: dsId;descrizioneEsito;tipoesito 13335207;1954198#32.58;wgs 13335207;ST883;mlst 13335207;CCST-21 complex;cc 13335207;-;flaa 13335207;677;cgmlst 13335207;1077;wgmlst 13335207;32#99;SNPs 13493744;2599284#32.5;wgs 13493744;ST3335;mlst 13493744;CCST-206 complex;cc 13493744;14;flaa 13493744;678;cgmlst 13493744;1062;wgmlst 13493744;30#97;SNPs

Terminato il ciclo per la generazione del file risultati, si esegue la chiamata ad un metodo SILAB (tramite CURL) per inserire gli esiti schemigrafici/schemadettaglio/insert/risultato/biomassivonoschema/ passando elenco dei risultati.

A1. Inserimento esiti lato SILAB

I valori limite (in base a quanto indicato nelle SOP) con cui effettuare i controlli sui dati ricevuti, e anche esiti di default per eventuali errori, sono inseriti in una apposita tabella BIOINFO_SOP_CHECKLIMIT distinti per SOP, Specie ed Esame. L'inserimento dei risultati in SILAB, viene gestito dal PKG BIOINFO_ACQUISIZIONE del DB di SILAB eseguito dal nuovo metodo dell'applicativo SILAB biomassivonoschema nel seguente modo:

  • si leggono i risultati passati ordinandoli per tipoesito in modo da analizzare prima il wgs
  • Il DS indicato per ciascuna tipologia è sempre quello relativo all'esame WGS; per distinguere i vari campioni si agisce sulla tipologia indicata
  • Per gli esiti del WGS
    • SI CONTROLLA INNANZI TUTTO SE IL CAMPIONE RIENTRA NELLA PROCEDURA SOP e lo si fa attraverso la nuova funzione oracle di SILAB BIOINFO_ACQUISIZIONE.CTRL_SOP_LYN_CAMP.
    • Se non rientra nella SOP, si procede all'inserimento del risultato proseguendo poi con il campione tipologia wgs successivo, altrimenti si procederà come descritto di seguito:
      • In caso di esito NON DISPONIBILI N. reads totali, Q-score, si imposta il giudizio dell'esame in SFAVOREVOLE e si prosegue con il campione tipologia wgs successivo.
      • In caso contrario, si effettua il controllo sui valori dell'esito. Se NON rientrano nei limiti indicati si setta il giudizio dell'esame in SFAVOREVOLE, si imposta la descrizione esito come indicato dalla SOP in base a quale valore non è rientrato nei limiti, e si prosegue con il campione tipologia wgs successivo.
      • Se il risultato dei tot.rawreads e QSCORE rientrano entrambi nei limiti:
        • si setta il giudizio in FAVOREVOLE
        • si inserisce l'esito WGS
        • si inserisce un campione figlio con materiale Raw reads
        • si distribuisce il campione appena creato utilizzando il gruppo di distribuzione:
          • LYN per listeria
          • CAMRAW per Campylobacter
          • BRRAW per Brucella
          • SMRAW per Salmonella
        • si prosegue con gli esiti dello stesso DS ma tipologia diversa da wgs:
          • In caso di CC, MLST, flaA, se il risultato è un trattino "-", si legge la descrizione dell'esito dalla tabella di configurazione in base alla specie, sop ed esame.
          • Per tutte le tipologie di esami, si effettua il controllo del risultato con gli eventuali limiti indicati dalla SOP e inseriti nella tabella di configurazione. Se l'esito non rientra nei limiti, si provvederà a settare il giudizio SFAVOREVOLE ed inserire come esito, l'eventuale messaggio impostato da tabella di configurazione.
  • nel caso di Campylobacter, si controlla l'esito dell'identificazione (in MALDI o PCR) e, se FAVOREVOLE (quindi un Campylo), mettiamo la specie isolata del campione come quella identificata; se SFAVOREVOLE invece, si provvederà ad eliminare tutte le eventuali distribuzioni eseguite successivamente su DNA e RAWREADS, compreso eventuali risultati (?????DA VERIFICARE???)

B. File da allegare per cgMLST e wgMLST

Per ciascun campione delle RUN da elaborare, si leggono i files generati da cgMLST e wgMLST:

  1. cgMLST:

    • Considera il file della tipologia 4TY_cgMLST/DS_chewbbaca/result/chewbbacacrc32sv
    • legge il file e lo trasforma base64
    • Crea una riga con indicazione DS,FILE base64, tipo esame (cgmlst)
    • Abbiamo un file per ciascun campione
  2. wgMLST:

    • Considera il file della tipologia 4TY_wgMLST/DS_chewbbaca/result/chewbbacacrc32sv
    • legge il file e lo trasforma base64
    • Crea una riga con indicazione DS,FILE base64, tipo esame (wgmlst)
    • Abbiamo un file per ciascun campione
  3. SNPs:

    • Considera il file della tipologia 2AS_mapping/DS_snippy/result/_snippy/result/*snps_only.vcf
    • legge il file e lo trasforma base64
    • Crea una riga con indicazione DS,FILE base64, tipo esame (SNPs)

Terminato il ciclo per lettura dei files, si esegue la chiamata ad un metodo SILAB (tramite CURL) per inserire gli allegati a ciascu NRG tabelle/allegato/insert/bioallegatomassivo/ passando elenco allegati nel formato dsId;fileStr;tipoEsame;estensione dove in fileStr c'è il file formato base64.

B1. Inserimento allegati lato SILAB

L'inserimento degli allegati in SILAB, viene gestito dal metodo SILAB bioallegatomassivo che provvede a:

  • Leggere quanto passato da bioinfotools
  • raggruppare per esame (cgmlst o wgmlst o SNPs) e per accettazione: se un NRG ha più campioni, i risultati saranno uniti in un unico allegato, identificando il risultato di ciascun campione dal campo file (descritto di seguito ).
  • aggiungere, per ciascun risultato di campione, alla colonna "file", il codice univoco campione seguito dall'identificativo (es. 2023.TE.34.1.1_1-1-1 dove 2023.TE.34.1 è il codice UK e 1-1-1 identificativo del campione). E' importante notare che l'identificato considerato è quello relativo al campione raw reads e non DNA
  • inserire l'allegato di ciascun NRG distinto per esame (es. 2023TE34_cgmlst.csv; in caso di campylobacter si avranno due file uno per cgmlst e l'altro per wgmlst 2023TE34_wgmlst.csv; in caso di brucella si avranno due file uno per cgmlst e uno per SNps). Gli allegati inseriti non avranno la validazione effettuata, ma si valideranno in automatico in fase di validazione esiti da silab.