JHistint.jl - Julia Histopathology Interface

Interfaccia Julia per implementazione delle REST API disponibili sul portale CDSA (Cancer Slide Digital Archive) per il download di immagini istologiche reperibili nel TCGA (The Cancer Genome Atlas). Il Cancer Slide Digital Archive (CDSA) è una piattaforma web per il supporto, la condivisione e l'analisi di dati patologici digitali. Attualmente ospita oltre 23.000 immagini associate ai dati disponibili nel «The Cancer Genome Atlas» Data Portal.

Link d'accesso al CDSA: Clicca qui

Link repository contenente i dati mappati nel portale: Clicca qui

Link guida all'utilizzo delle API: Clicca qui

Struttura del Package

  • Le folder case e collection memorizzano in formato .json i metadati relativi ai singoli casi e alle collezioni disponibili nel TCGA Data Portal. La folder collection è composta come segue:
    • collectionlist.jsn = Memorizza i dati d'accesso (metadati) delle collezioni (Project in TCGA).
    • colletion_name.jsn = Memorizza i dati d'accesso (metadati) relativi alla singola collezione. Il file .json viene generato in base alla collezione scelta dall'utente.
  • La folder case è composta come segue:
    • collection_name.jsn = Memorizza tutti i metadati relativi ai casi associati alla collezione selezionata dall'utente.
  • La folder slides memorizza le immagini istologiche relative ai singoli casi. Le immagini sono organizzate in base al formato (.svs), alla collezione (TCGA-chol, TCGA-esca, etc.) e al singolo caso da analizzare (TCGA-2H-A9GF, TCGA-2H-A9GG, etc.). All'interno di ogni folder relativa al caso sono memorizzate le slide compresse in file .zip. Il formato delle singole slide è .svs. La denominazione delle folder inerenti ai casi coincide con i valori del campo Case ID riportato nel TCGA Data Portal. La denominazione dei file .zip situati in ogni folder fa riferimento all'attributo Sample ID associato al paziente. La denominazione della slide è data dalla concatenazione degli attributi Slide ID e Slide UUID consultabili nella sezione inferiore della pagina web dedicata al caso generico TCGA-XX-YYYY.
Esempio: TCGA-02-0001-01C-01-TS1.zip  
  - 02 = si riferisce al TSS (Tissue Source Site).  
  - 0001 = si riferisce al codice associato al Participant, stringa alfanumerica.  
  - 01 = si riferisce al Sample Type. I valori associati ai campioni aventi tumori sono nell'intervallo 01 - 09. 10 - 19 indica l'intervallo dedicato a campioni normali non malati. 20 - 29 indica campioni attualmente sotto controllo.  
  - C = si riferisce al campo Vial relativo all'ordinamento del campione nella sequenza di campioni. I valori variano tra A - Z.  
  - 01 = si riferisce al campo Portion relativo all'ordinamento delle porzioni analizzate associate ad un campione. Assume valori nell'intervallo 01-99.  
  - TS1 = si riferisce al campo Slide relativo al tipo di immagine. I valori assumbili sono TS (Top Slide), BS (Bottom Slide) e MS (Middle Slide). Il valore alfanumerico indica l'ordinamento della slide.

Collezioni JHistint

Le collezioni disponibili sono:

  • TCGA-BRCA = Breast Invasive Carcinoma (Breast)
  • TCGA-OV = Ovarian Serous Cystadenocarcinoma (Ovary)
  • TCGA-LUAD = Lung Adenocarcinoma (Bronchus and Lung)
  • TCGA-UCEC = Uterine Corpus Endometrial Carcinoma (Corpus uteri)
  • TCGA-GBM = Glioblastoma Multiforme (Brain)
  • TCGA-HSNC = Head and Neck Squamous Cell Carcinoma (Larynx, Lip, Tonsil, Gum, Other and unspecified parths of mouth)
  • TCGA-KIRC = Kidney Renal Clear Cell Carcinoma (Kidney)
  • TCGA-LGG = Brain Lower Grade Glioma (Brain)
  • TCGA-LUSC = Lung Squamous Cell Carcinoma (Bronchus and lung)
  • TCGA-TCHA = Thyroid Carcinoma (Thyroid gland)
  • TCGA-PRAD = Prostate Adenocarcinoma (Prostate gland)
  • TCGA-SKCM = Skin Cutaneous Melanoma (Skin)
  • TCGA-COAD = Colon Adenocarcinoma (Colon)
  • TCGA-STAD = Stomach Adenocarcinoma (Stomach)
  • TCGA-BLCA = Bladder Urothelial Carcinoma (Bladder)
  • TCGA-LIHC = Liver Hepatocellular Carcinoma (Liver and intrahepatic bile ducts)
  • TCGA-CESC = Cervical Squamous Cell Carcinoma and Endocervical Adenocarcinoma (Cervix uteri)
  • TCGA-KIRP = Kidney Renal Papillary Cell Carcinoma (Kidney)
  • TCGA-SARC = Sarcoma (Various)
  • TCGA-ESCA = Esophageal Carcinoma (Esophagus)
  • TCGA-PAAD = Pancreatic Adenocarcinoma (Pancreas)
  • TCGA-READ = Rectum Adenocarcinoma (Rectum)
  • TCGA-PCPG = Pheochromocytoma and Paraganglioma (Adrenal gland)
  • TCGA-TGCT = Testicular Germ Cell Tumors (Testis)
  • TCGA-THYM = Thymoma (Thymus)
  • TCGA-ACC = Adrenocortical Carcinoma -Adenomas and Adenocarcinomas (Adrenal gland)
  • TCGA-MESO = Mesothelioma (Heart, mediastinum and pleura)
  • TCGA-UVM = Uveal Melanoma (Eye and adnexa)
  • TCGA-KICH = Kidney Chromophobe (Kidney)
  • TCGA-UCS = Uterine Carcinosarcoma (Uterus, NOS)
  • TCGA-CHOL = Cholangiocarcinoma (Liver and intrahepatic bile ducts, Other and unspecified part of biliary track)
  • TCGA-DLBC = Lymphoid Neoplasm Diffuse Large B-cell Lymphoma (Various)

Per il download di una collezione specifica è sufficiente indicare il nome della collezione: BRCA, OV, LUAD.

Installazione del Package

Il package JHistint è disponibile nei Julia Registries, quindi installabile come segue:

julia > using Pkg
julia > Pkg.add("JHistint")
julia > using JHistint

In alternativa, digitare ] nel Julia REPL ed eseguire:

(@v1.8) pkg > add JHistint
(@v1.8) pkg > using JHistint

Funzioni Download Slides (JHistint.jl)

JHistint.download_single_collectionMethod
download_single_collection(collection_name::AbstractString)

Funzione per il download delle slides istologiche associate ad una collezione disponibile nel TCGA.

Argomenti

  • collection_name::AbstractString = Collezione di dati TCGA di cui scaricare le slides istologiche.

Note

La funzione valuta l'argomento collection_name, in caso di collezione non valida considera la configurazione del file Config.toml. Il valore impostato nel package è default.

# Esempi con input validi
julia> JHistint.download_single_collection("acc")
julia> JHistint.download_single_collection("bLca")
# Esempi con input non validi
julia> JHistint.download_single_collection("ac")
julia> JHistint.download_single_collection("")
JHistint.download_all_collectionMethod
download_all_collection()

Funzione per il download delle slides istologiche associate a tutte le collezioni disponbile nel TCGA.

# Esempi con input validi
julia> JHistint.download_all_collection()

Funzioni di supporto API (functions.jl)

JHistint.download_collection_valuesMethod
download_collection_values(filepath::AbstractString)

Funzione per il download dei dati delle collezioni disponibili nel TCGA.

Argomenti

  • filepath::AbstractString = Percorso in cui salvare il file .json ottenuto dalle API disponibili nel CDSA.

Note

L'API richiede la definizione del parentType e del parentId. Il parentId specifica l'identificativo della collezione. La collezione di immagini associate al TCGA è identificata dal codice: 5b9ef8e3e62914002e454c39. L'utilizzo del limit=0 imposta l'assenza di limiti nel file interrogato, garantendo il download del file in modo completo. L'API appartiene alla categoria per gestire le folder memorizzate nel repository. Il file scaricato è .json.

JHistint.extract_collection_valuesMethod
extract_collection_values(filepath::AbstractString)

Funzione per estrarre i valori delle collezioni di dati dal file .json scaricato dalla funzione download_collection_values.

Argomenti

  • filepath::AbstractString = Percorso in cui è memorizzato il file collectionlist.json.

Valore di ritorno

  • collection_values::Array{String} = Lista di collezioni di dati disponibili nel TCGA.
JHistint.download_project_infosMethod
download_project_infos(filepath::AbstractString, collection_name::AbstractString)

Funzione per il download dei metadati associati alla collezione selezionata all'avvio.

Argomenti

  • filepath::AbstractString = Percorso in cui salvare il file .json associato alla collezione. Il file è indicato

con la dicitura collection_name.json.

  • collection_name::AbstractString = Nome della collezione di cui scaricare le slides.

Note

L'API richiede la definizione del parentType, del parentId e del name. L'attributo name identifica il nome della collezione di cui si desidera prelevare i dati (esempio: chol, esca, etc.). L'API appartiene alla categoria per gestire le folder memorizzate nel repository. Il file scaricato è .json.

JHistint.extract_project_idMethod
extract_project_id(filepath::AbstractString)

Funzione per estrarre il valore del id dai metadati della collezione selezionata all'avvio.

Argomenti

  • filepath::AbstractString = Percorso in cui è memorizzato il file collection_name.json.

Valori di ritorno

  • project_id = id della collezione.
JHistint.getCasesForProjectMethod
getCasesForProject(filepath_case::AbstractString, project_id::AbstractString)

Funzione per il download dei metadati associati ai casi della collezione selezionata all'avvio.

Argomenti

  • filepath::AbstractString = Percorso in cui salvare il file .json associato ai casi della collezione. Il file è indicato

con la dicitura collection_name.json.

  • project_id::AbstractString = id della collezione.

Valori di ritorno

  • casesID_values = Lista di id di tutti i casi della collezione.
  • casesNAME_values = Lista di name di tutti i casi della collezione.

Note

L'API richiede la definizione del parentType e del parentId. L'attributo parentType è impostato a folder data la struttura del repository. Il parentId è configurato definendo l'identificativo della collezione scelta. Il file scaricato è .json.

JHistint.download_zipMethod
download_zip(link::AbstractString, filepath::AbstractString)

Funzione per il download delle slides istologiche in formato .zip associate ai casi della collezione selezionata all'avvio.

Argomenti

  • link::AbstractString = URL per l'accesso alla API per il download delle slides.
  • filepath::AbstractString = Percorso in cui salvare il file .zip.