Đầu vào của mô hình là các ma trận biểu hiện đa omics, bao gồm nhưng không giới hạn ở genomics, transcriptomics, proteomics, v.v. MoGCN khai thác mô hình GCN để kết hợp và mở rộng hai thuật toán tích hợp đa omics không giám sát: Thuật toán tự động mã hóa (AE) dựa trên ma trận biểu hiện và thuật toán hợp nhất mạng tương đồng dựa trên mạng tương đồng bệnh nhân. Việc trích xuất đặc trưng không cần thiết trước AE và SNF.
Phiên bản đã cập nhật lại so với bài báo gốc sử dụng bộ dữ liệu BRCA. Phiên bản này cải tiến nhẹ để chạy được với cả bộ LUNG và so sánh kết quả của 2 bộ dữ liệu. Bộ LUNG có số lớp ít lên tỉ lệ chính xác cao hơn.
- Sử dụng AE để giảm chiều của dữ liệu đa omics để có được ma trận đặc trưng đa omics
- Sử dụng SNF để xây dựng mạng lưới tương đồng bệnh nhân
- Ma trận đặc trưng đa omics đầu vào và mạng lưới tương đồng bệnh nhân vào GCN
git clone https://github.com/DoanhPM/MoGCN-Update.git
cd MoGCN-Updatepython3 -m venv venv
source venv/Scripts/activate
pip install -r requirements.txt# Chạy BRCA
python AE_run.py -p1 data/BRCA/fpkm_data.csv -p2 data/BRCA/gistic_data.csv -p3 data/BRCA/rppa_data.csv -m 0 -d gpu -ct BRCA
python SNF.py -p data/BRCA/fpkm_data.csv data/BRCA/gistic_data.csv data/BRCA/rppa_data.csv -m sqeuclidean -ct BRCA
python GCN_run.py -fd results/BRCA/latent_data.csv -ad results/BRCA/SNF_fused_matrix.csv -ld data/BRCA/sample_classes.csv -ct BRCA
# Chạy LUNG (cần tiền xử lý trước)
python preprocess_lung.py
python AE_run.py -p1 data/LUNG_processed/mrna_processed.csv -p2 data/LUNG_processed/cnv_processed.csv -p3 data/LUNG_processed/protein_processed.csv -m 0 -d gpu -ct LUNG
python SNF.py -p data/LUNG_processed/mrna_processed.csv data/LUNG_processed/cnv_processed.csv data/LUNG_processed/protein_processed.csv -m sqeuclidean -ct LUNG
python GCN_run.py -fd results/LUNG/latent_data.csv -ad results/LUNG/SNF_fused_matrix.csv -ld data/LUNG_processed/sample_classes.csv -ct LUNG -nc 3# Tiền xử lý LUNG và chạy so sánh
python run_comparison.py -d all -c
# Hoặc chạy riêng từng bước
python run_comparison.py -d BRCA LUNG -cSau khi chạy, kết quả so sánh sẽ được lưu trong:
- results/comparison/comparison_results.csv: Bảng so sánh số liệu
- results/comparison/detailed_results.csv: Kết quả chi tiết từng dataset
- results/comparison/comparison_plot.png: Biểu đồ so sánh trực quan
- results/BRCA/ và results/LUNG/: Kết quả chi tiết từng bộ dữ liệu
================================================================================
COMPARISON RESULTS
================================================================================
Metric BRCA LUNG Difference Difference (%)
Num Samples 511 426 -85 -16.63%
Num Features N/A N/A N/A N/A
Num Classes 4 2 -2 -50.00%
Mean Accuracy 0.865045 0.941196 0.076151 8.80%
Std Accuracy 0.038323 0.041004 0.00268 6.99%
Mean F1 Score 0.867578 0.941548 0.07397 8.53%
Std F1 Score 0.037331 0.040741 0.00341 9.14%
[OK] Comparison results saved to: results/comparison/
Execution completed! 2/2 datasets processed successfully.
Num Features: vẫn lười chưa xem lại lí do N/A
Dữ liệu đầu vào của mỗi loại omics phải có định dạng .csv, trong đó hàng biểu thị các mẫu (samples) và cột biểu thị các đặc trưng (features/genes).
Trong mỗi ma trận biểu hiện, cột đầu tiên phải là tên mẫu, các cột còn lại là các đặc trưng. Các mẫu trong tất cả các bộ dữ liệu omics phải nhất quán.
AE và SNF là các mô hình không giám sát (unsupervised) nên không cần nhãn mẫu. GCN là mô hình bán giám sát (semi-supervised), yêu cầu file nhãn mẫu (.csv) trong quá trình huấn luyện:
- Cột 1: tên mẫu
- Cột 2: nhãn mẫu (số hóa)
- Các cột còn lại: không bắt buộc
MoGCN-Update/
| AE_run.py
│ autoencoder_model.py
│ fix_labels.py
│ gcn_model.py
│ GCN_run.py
│ layer.py
│ preprocess_lung.py
│ README.md
│ requirements.txt
│ run_comparison.py
│ setup.py
│ SNF.py
│ utils.py
│ __init__.py
│
├───data
│ ├───BRCA
│ │ fpkm_data.csv
│ │ gistic_data.csv
│ │ rppa_data.csv
│ │ sample_classes.csv
│ │ sample_classes_fixed.csv
│ │ test_sample.csv
│ │
│ ├───LUNG
│ │ Gistic2.tsv
│ │ HiSeqV2.tsv
│ │ RPPA_RBN.tsv
│ │ sample_classes.csv
│ │ sample_classes_fixed.csv
│ │ test_sample.csv
│ │ train_sample.csv
│ │
│ └───LUNG_processed
├───img
│ Figs1.png
│
├───models
│ ├───BRCA
│ │ └───AE
│ └───LUNG
│ └───AE
└───results
├───BRCA
├───comparison
└───LUNG