Skip to content

sybila/scKAN

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scKAN: Kolmogorov-Arnold Network for GRN Inference

This repository contains the official implementation of Kolmogorov-Arnold Network for Gene Regulatory Network Inference.

Setup

Environment

Please note that the following is only a record of our environment, and we believe our code can adapt to a wide range of versions.

  • python: 3.9.18
  • shap: 0.45.1
  • pytorch: 2.2.1
  • pytorch-cuda: 11.8
  • numpy: 1.23.5
  • pandas: 2.2.1

Package efficient-kan are downloaded from https://github.com/Blealtan/efficient-kan.

Data source

We used the BEELINE benchmark, and their datasets can be downloaded from https://zenodo.org/records/3701939.

BEELINE datasets contain 6 synthetic networks and 4 curated networks. BEELINE has provided 10 simulated datasets for each network using BoolODE.

We also generated Cellectri datasets with 71 and 104 genes using BoolODE, which can be found in sample_data.

All example datasets (e.g. GSD-2000-1) provided in sample_data contain the following:

- GSD-2000-1
  |- ExpressionData.csv
  |- PseudoTime.csv
  |- refNetwork.csv

In our experiment, we only used ExpressionData.csv for training and refNetwork.csv for evaluation. Random seed is automatically set to the 2nd number of the dataset name, such as 1 for GSD-2000-1.

Training

You can reproduce our results via:

save_folder="logs/"
dataset_path="sample_data/GSD-2000-1"

python KAN.py --dataset-path $dataset_path --save-path $save_folder"

Evaluation

We use three metrics for evaluation:

  • AUROC: This is calculated with sklearn.metrics.roc_auc_score
  • AUPRC: This is calculated with sklearn.metrics.average_precision_score

A sample evaluation script eval.py is provided.

Usage:

save_folder="logs/GSD-2000-1"
ref_net="sample_data/GSD-2000-1/refNetwork.csv"

python eval.py --exp-dir $save_folder --ref-net-path $ref_net

About

Kolmogorov-Arnold Network for Gene Regulatory Network Inference

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%