Per una migliore visione, attiva JavaScript

Creare lab notebook per bioinformatici

Come creare un lab notebook lavorando come bioinformatico

 ·  🕘 4 min lettura  ·  🤖 Matteo Miotto

Oggi vi parlo del progetto labnotebook, nato dalla necessità di compilare un laboratory notebook in maniera automatica, veloce e sistematica.
Per chi non lo sapesse, nei laboratori di ricerca è obbligatorio tenere traccia di tutto ciò che si fa tramite dei quaderni chiamati appunto “laboratory notebook”; la natura del lavoro di un bioinformatico però è molto diversa rispetto a quella di chi sta al bancone, di conseguenza anche le possibilità di tenere traccia di ciò che si è fatto lo è.
Molti conosceranno git o altri sistemi di controllo delle versioni, ovvero sistemi che permettono di avere una traccia di tutte le modifiche apportate ad un file, avendo uno storico. Per accedere a questo storico bisogna avere padronanza di questi sistemi, il che rende difficile (se non impossibile) la lettura di questi storici a chi non li usa.
Per questo motivo, ho deciso di creare un pacchetto di funzioni che permettono di trasformare questo storico in un file html, personabilizzabile, facile da esportare e condividere. Trovare questo pacchetto di funzioni in questa repo su github.

Per usufruire di queste funzioni è necessario che si abbia git installato, che il progetto su cui si lavori sia sotto il controllo di git e che i commit siano compilati in maniera esaustiva.

Struttura del notebook

Il notebook è così strutturato:
Come intestazione c’è il nome del notebook, seguito dalla data di creazione e dall’autore (preso dal config file di git),
Successivamente, per ogni data abbiamo l’elenco dei commit (quindi delle azioni svolte) con specificato il cosa si è fatto, lo sha del commit, eventualmente il file contenente l’elenco dei comandi eseguiti/analisi fatte, e l’elenco dei file modificati, con indicato se sono stati aggiunti (A), modificati (M), cancellati (D) o rinominati (R).

Un esempio lo potete trovare qui.

Creare un notebook

Per creare un notebook basterà essere nella cartella del progetto dove è situata la cartella .git/ e lanciare il comando createnotebook <nome_notebook>.
Verrà chiesto se la cartella .labnotebook che verrà creata dovrà essere ignorata da git (quindi se va inserita dentro il file .gitignore); da quel momento la cartella .labnotebook sarà presente dove è situata quella .git.

All'interno della cartella troviamo vari file:

  • config: file di configurazione, ne parliamo più nel dettaglio fra poco
  • labstyle.css: file css base che controlla lo stile del file html che si crea quando si esporta il notebook. Anche di questo ne parliamo fra poco
  • head.html: file contenente una parte della head del file html
  • body.html: file che contiene il body del file html, verrà costantemente aggiornato
  • footer.html: file che contiene l'ultima parte del file html
  • Il file config

    Il file config contiene alcune impostazioni iniziali che si possono modificare all’occorrenza, stando attenti però a non compromettere la funzionalità delle funzioni di aggiornamento del notebook e di export del notebook.

    Vediamo le voci contenute:

  • NOTEBOOK_NAME: nome del notebook
  • LAST_COMMIT: contiene lo sha dell'ultimo commit inserito nel notebook. Appena creato il notebook il valore è "no". Si consiglia di modificare questa voce solo se strettamente necessario (per esempio se l'ultimo commit non è più nella history)
  • LAB_AUTHOR: nome dell'autore del notebook
  • LAST_DAY: la data dell'ultimo commit presente nel notebook
  • SHOW_ANALYSIS_FILES: di default è "yes" e indica il fatto di aggiungere una voce su quale sia il file dei comandi/delle analisi per ogni commit da inserire nel notebook. Si può modificare inserendo "no", a quel punto non sarà aggiunta quella voce
  • LAB_CSS: path del file css che comanda lo stile del notebook. È possibile modificarlo se si vuole utilizzare un diverso stile usando un proprio file css
  • LAB_IGNORE: indica se la cartella .labnotebook è inserita in .gitignore "yes" o meno "no". Cambiare questa voce non ha alcun effetto al momento
  • Aggiornare il notebook

    Quando si vuole aggiornare il notebook (e consiglio di farlo spesso, e ora capirete il perchè), basta andare nella cartella del progetto dove è situata la cartella .labnotebook/ e digitare il comando updatenotebook.
    A questo punto verrà chiesta la conferma per aggiornare il notebook e partirà l’aggiornamento del notebook: se l’opzione SHOW_ANALYSIS_FILES sarà uguale a “no”, nulla accadraà e il notebook verrà aggiornato, altrimenti per ogni commit verrà richiesto quale dei file modificati sia il file di analisi (tra le varie opzioni c’è anche none, da selezionare se non sono state fatte analisi o non si vuole inserire alcun file).

    Il file che viene aggiornato è .labnotebook/body.html.

    Esportare il notebook in formato html

    Nel momento in cui si decide di voler esportare il notebook, basterà essere sempre nella cartella contenente .labnotebook/ e digitare exportnotebook <nome_file.html>.
    Verrà richiesto se il file css indicato nel file config vada copiato nella head del file html (se si vuole condividere solo il file html) o se vada linkato nella head (se si vuole condividere sia il file html sia il file css).

    A questo punto, il notebook è pronto per essere aperto con un browser, letto, sfogliato e analizzato.

    Condividi
    Supporta l'autore con

    Matteo Miotto
    SCRITTO DA
    Matteo Miotto
    Genomic Data Science master student

    Contenuto