Skip to content

MoGCN của bài báo gốc được cải tiến để chạy được với cả bộ LUNG Cancer để và so sánh kết quả với bộ BRCA

Notifications You must be signed in to change notification settings

DoanhPM/MoGCN-Update

Repository files navigation

MoGCN: Phương pháp tích hợp đa Omics dựa trên mạng tích chập đồ thị để phân tích phân nhóm ung thư

phương pháp tích hợp đa omics dựa trên mạng tích chập đồ thị

Đầ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.

MoGCN

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.

Cách sử dụng

Toàn bộ quy trình làm việc được chia thành ba bước:

  • 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

Dữ liệu mẫu nằm trong thư mục data, chứa dữ liệu CNV, mRNARPPA của BRCA.

Chạy chương trình

git clone https://github.com/DoanhPM/MoGCN-Update.git
cd MoGCN-Update

Cài đặt môi trường (Git Bash/WINGW64)

python3 -m venv venv
source venv/Scripts/activate
pip install -r requirements.txt

Chạy riêng lẻ từng bộ dữ liệu:

# 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

Chạy tự động và so sánh:

# 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 -c

So sánh giữa các bộ dữ liệu

Sau 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

Định dạng dữ liệu

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.

AESNF 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

Cấu trúc thư mục mới

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

Bài báo gốc về MoGCN (2022):

About

MoGCN của bài báo gốc được cải tiến để chạy được với cả bộ LUNG Cancer để và so sánh kết quả với bộ BRCA

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages