Code to generate the data included in [FILE PATH].
from sc_causal.causal.util import create_in_distribution_h5ad, create_out_of_distribution_h5ad
fname_iid = 'out_iid_dataset' # Name of output directory
create_in_distribution_h5ad(fname_iid)
fname_ood = 'out_ood_dataset'
create_out_of_distribution_h5ad(fname_ood)
To run baselines, cd to the sc_causal/GEARS/demo directory and run
python run_baselines.py --id ood_split_id
where ood_split_id is a number, either [0, 1, 2, 3, 4, -1]. Setting ood_split_id = -1 runs the in-distribution task.
To train SCCVAE:
cd sc_causal
python causal/run.py -x 'out_filename' -d 0 --ood --split-num 0
Flags:
xName of output directory.-dWhich CUDA device to run the code.--oodIf this flag is included, runs the OOD split given by--split-num. Otherwise, runs the IID task.-mChanges the graph in the SCM. Can befull,causal,conditional, orrandom.--random-graph-seedIf training arandomgraph, keeps the generated graph consistent across all OOD splits.
SCCVAE evaluation consists of two steps: Shift selection (for OOD tasks) and inference.
In sc_causal/causal/select_model_shift_values.py, edit the list SAVEDIRS to be the list of all models to evaluate shift selection for, specifying the OOD split number, the model directory, and the sparse graph. Then, while in the sc_causal directory, run
python causal/select_model_shift_values.py
python causal/inference.py -m 'out_filename' -s 'descrption' -n 'load_model_name' -d 0 --data-split 'test' --ood-split 4
Flags
mModel output directory.sDescriptive file name for saving output adata.nModel name to load from. E.g.,best_val_mmd_shiftselect_harddCUDA device.--data-splitEvaluating on train, test, or val datasets.--ood-splitIf OOD, which OOD split is being evaluated.
To reproduce the figures from the paper.
First, download zip files from https://drive.google.com/drive/folders/1rxHl_4EPdoLA-ahyO7Woa9kTa4UOhUrj?usp=sharing. h5ad_datafiles.zip and outs.zip go in sc_causal, and all .zip files under the subfolder GEARS files go under sc_causal/GEARS/demo.
Starting in the root directory,
cd sc_causal/visualize_paper_tables_and_figures
python tables.py
python fig2a.py
python fig2b.py
python fig3_fig7.py
python fig4_fig8.py
python fig5a.py
python fig5b.py
python fig6.py
python fig9.py