-
suryadipto authoredsuryadipto authored
- iXL: Inferring eXpLainable algorithmic approaches to identifying cancer stages, cancer grades and regions of interest automatically from medical images
- LaminScape
- Generating executable (LaminScape.app)
- About
- Summary of methods
- Part-1: Gradient-driven stochastic random walk identifies urologic cancer stages from CT and MRI images
- Python packages:
- Background:
- Part-2: Heterogeneity-based approach
- Python packages:
- Background:
- Part-3: Classifying cancer ROIs by combining imaging-based heterogeneity in tumor microenvironments, in combination with molecular data (for example, gene expression data)
- Data
- Overview
- Description
- Availability
- Installation
- Robustness testing
- Scalability testing
- Reproducing figures
- Citing the work
- MLA
- APA
- BibTex
- Contact
- Impressum
- Installation
- Running
- Updating in-built PPI networks
- Updating study bias scores
- Running individual functions
- .czi to .tiff disassembly
- Stack and composite handling
- Evaluating ROBUST
- Citing ROBUST

iXL: Inferring eXpLainable algorithmic approaches to identifying cancer stages, cancer grades and regions of interest automatically from medical images
Suryadipto Sarkar, A S Aravinthakshan, Teresa Wu, Alvin C. Silva
LaminScape
Generating executable (LaminScape.app)
pyinstaller -w -F -i LaminScape.icns --add-data="templates:templates" --add-data="static:static" main.py
About
This is a repository that contains information on how to reproduce results corresponding to the cutaneous T cell lymphoma (CTCL) case study reported in Spatial cell graph analysis reveals skin tissue organization characteristic for cutaneous T cell lymphoma.
Summary of methods
Part-1: Gradient-driven stochastic random walk identifies urologic cancer stages from CT and MRI images
Python packages:
Background:
- Access here
Part-2: Heterogeneity-based approach
Python packages:
-
Network-Heterogeneity
-
Spatial-Heterogeneity
Background:
-
SHouT(entropy, egophily, homophily) (access here)
-
Leibovici entropy, Altieri entropy
-
Spatial entropy (Moran's I, Geary's C)
Part-3: Classifying cancer ROIs by combining imaging-based heterogeneity in tumor microenvironments, in combination with molecular data (for example, gene expression data)
-
Can this help explain underlying molecular mechanisms (eg. gene and/ or protein expressions), and how they manifest in scans?
-
Very loosely related to this work (ECCB2024 poster presentation):
Data
Overview
Description
Availability
Data will be made available under reasonable request to the corresponding author, Suryadipto Sarkar (more contact details below).
Installation
Install conda environment as follows (there also exists a requirements.txt)
conda create --name imaging_heterogeneity_study
conda activate imaging_heterogeneity_study
pip install scipy==1.10.1 numpy==1.23.5 squidpy==1.3.0 pandas==1.5.3 scikit-learn==1.2.2
Note: Additionally, modules math and statistics were used, however no installation is required as they are provided with Python by default.
Robustness testing
Pending
Scalability testing
Pending
Reproducing figures
Pending
Citing the work
MLA
Will be made available upon publication.
APA
Will be made available upon publication.
BibTex
Will be made available upon publication.
Contact
Impressum
Suryadipto Sarkar ("Surya"), MS
PhD Candidate
Biomedical Network Science Lab
Department of Artificial Intelligence in Biomedical Engineering (AIBE)
Friedrich-Alexander University Erlangen-Nürnberg (FAU)
Werner von Siemens Strasse
91052 Erlangen
MS in CEN from Arizona State University, AZ, USA.
B.Tech in ECE from MIT Manipal, KA, India.
Installation
Install conda environment as follows (there also exists an environment.yml but it contains more packages than necessary)
conda create --name robust python=3.7
conda activate robust
conda install numpy matplotlib pandas networkx pip jupyter
pip install pcst_fast
Running
You can simply run by calling
python3 robust.py data/data-example1-prec-puberty/BioGRID.txt data/data-example1-prec-puberty/prec-pub-seeds.txt prec_puberty.graphml
The positional arguments are:
[1] file with a list of seed genes (delimiter: newline-separated)
[2] path to output file (supported output file types: .graphml, .csv, others) [read more below]
The suffix of the path to the output file you specify, determine the format of the output.
You can either choose
- .graphml: A .graphml file is written that contains the following vertex properties: isSeed, significance, nrOfOccurrences, connected_components_id, trees
- .csv: A .csv file which contains a vertex table with #occurrences, %occurrences, terminal (isSeed)
- everything else: An edge list
The optional arguments are:
[1] --network NETWORK Description: Specify path to graph or identifier of networks shipped with ROBUST ('BioGRID', 'APID', 'STRING'), type=str or file (allowed types: .graphml, .txt, .csv, .tsv), default: 'BioGRID' [read more below]
Network input options:
- A two-column edgelist. File types and corresponding delimiters are as follows: 1. '.txt' file should be space-separated 2. '.tsv' file should be tab-separated 3. '.csv' file should be comma-separated. No other file formats except '.txt', '.csv' and '.tsv' are accepted at the moment.
- A valid .graphml file
- In-built network name {'BioGRID', 'APID', 'STRING'}
[2] --alpha ALPHA Description: initial fraction for ROBUST, type=float, expected range=[0,1], default: 0.25
[3] --beta BETA Description: reduction factor for ROBUST, type=float, expected range=[0,1], default: 0.90
[4] --n N Description: # of steiner trees for ROBUST, type=int, expected range=(0,+inf], default: 30
[5] --tau TAU Description: threshold value for ROBUST, type=float, expected range=(0,+inf], default: 0.1
[6] --namespace {'ENTREZ', 'GENE_SYMBOL', 'UNIPROT', 'ENSEMBL'} Description: gene/ protein identifier options for study bias data, type=str, default: 'GENE_SYMBOL'
[7] --study-bias-scores Description: specify edge weight function used by ROBUST, type=str, default: 'BAIT_USAGE' [read more below]
Study bias score input options:
- A two-column file (delimiter: comma), where the first column is the gene or protein name (column datatype: string) and the second column is the study bias score (column datatype: int).
- In-built study-bias-score options {'NONE' or 'None', 'BAIT_USAGE', 'STUDY_ATTENTION'} ('NONE' or 'None' leads to running ROBUST with uniform edge costs.)
--gamma Description: Hyper-parameter gamma used by bias-aware edge weights. This hyperparameter regulates to what extent the study bias data is being leveraged when running ROBUST., type=float, expected range=[0,1], default: 1.00
Updating in-built PPI networks
python3 ./data/networks/update_inbuilt_ppi_networks.py
Updating study bias scores
python3 ./data/study_bias_scores/update_inbuilt_study_bias_scores.py
Running individual functions
.czi to .tiff disassembly
python3 czi_to_tiff_disassembly.py ../data/Stacks_single_sample_test ../data/Individual_single_sample_test --process_mode sum --vox_dim_1 0.4 --deconvolve False --deconvolution_iterations 5 --psf_kernel_size 10 --psf_sigma 0.75
python3 czi_to_tiff_disassembly.py ../data/Stacks_single_sample_test ../data/Sum_single_sample_test --process_mode sum --vox_dim_1 0.4
Stack and composite handling
python3 stack_and_composite_handling.py ../data/Individual_single_sample_test ../data/Composites_single_sample_test
python3 stack_and_composite_handling.py ../data/Sum_test_copy ../data/Composites_single_sample_test
python3 stack_and_composite_handling.py ../data/Sum_test ../data/Composites_single_sample_test
Evaluating ROBUST
For a large-scale empirical evaluation of ROBUST, please follow the instructions given here: https://github.com/bionetslab/robust-eval.
Citing ROBUST
Please cite ROBUST as follows:
- citation will be added once available