Skip to content

this0655/Make-suggestion-with-gene-expression-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project_BioDB

Project_BioDB는 다양한 Gene Expression 데이터를 기반으로 정규화 및 분석을 수행하여 질병 특이적인 유전자 시그니처(Gene Signature)를 추출하고, 이를 CMap(Connectivity Map)과 ChEMBL 데이터베이스에 연동하여 약물 재창출(Drug Repurposing) 후보 물질을 발굴 및 추천하는 파이프라인 도구입니다.


📋 주요 기능 (Features)

  1. 데이터 정규화 및 분석: PyDESeq2를 이용한 Gene Expression 데이터 정규화 및 DEG(Differentially Expressed Genes) 추출.
  2. CMap 연동: 추출된 시그니처를 CMap API에 전송하여 질병 상태를 역전시킬 수 있는 약물 후보 탐색.
  3. L1000 데이터 매핑: LINCS L1000 데이터셋과 호환되도록 Entrez ID 변환 및 필터링.
  4. 약물 정보 검색: ChEMBL Database를 통해 추천된 약물의 구조(SMILES), 임상 단계, 유사 화합물 정보 제공.

⚙️ 사전 요구 사항 (Prerequisites)

이 프로젝트를 실행하기 위해서는 다음 준비물이 필요합니다.

  1. Python 3.8+
  2. CMap API Key: clue.io에서 회원가입 후 발급받은 API Key (user_key).

🚀 사용 방법 (Usage)

1. 데이터셋 설정 (dataset_label.txt)

분석을 수행하기 전에, dataset_label.txt 파일에 분석할 모든 파일의 이름과 각 열(Column)에 대한 라벨(WT, MUT)을 정의해야 합니다.

작성 형식:

  1. >> 뒤에 파일명을 입력합니다.
  2. 그 다음 줄에 각 열의 순서대로 WT 또는 MUT를 쉼표(,)로 구분하여 작성합니다.

예시:

>>file1.tsv
MUT, MUT, WT, WT
>>file2.csv
WT, MUT, WT, MUT

2. 분석 실행

터미널에서 Project_BioDB 폴더로 이동한 후, 상황에 맞는 명령어를 실행하세요.

서로 다른 실험 프로토콜인 경우 (기본)

각 파일을 개별적으로 정규화 및 분석한 후, 결과를 통합합니다. 파일이 하나일 때도 이 옵션을 사용합니다.

python main.py --api_key "YOUR_CMAP_API_KEY"

동일한 실험 프로토콜인 경우

모든 파일이 동일한 조건에서 실험된 경우, 데이터를 통합하여 한 번에 정규화 및 분석을 수행합니다.

python main.py --same --api_key "YOUR_CMAP_API_KEY"

옵션 설명

  • --api_key: (필수) CMap API Key
  • --same: (선택) 모든 입력 파일이 동일한 실험 프로토콜인 경우 사용

📂 입력 및 출력 (Input & Output)

Input

  • Gene Expression Files: wt(Wild Type)와 mut(Mutant) 컬럼이 포함된 CSV 또는 TSV 파일.

Output

모든 결과 파일은 ./data/ 폴더 내에 저장됩니다.

  • ./data/ 폴더:
    • Recommendations_{job_id}.txt: 최종 약물 추천 결과 리스트.
      • 여러 실험을 수행할 경우, CMap Job ID를 파일명에 포함하여 결과를 구분합니다.
    • cmap_result_{job_id}.tar.gz: CMap 분석 결과 원본 파일.
    • L1000_BING_genes.txt.gz: L1000 유전자 정보 파일.
    • 기타 중간 분석 데이터

💡 참고: 다운로드한 CMap 결과 파일의 상세 구조는 docs/STRUCTURE.md에서 확인할 수 있습니다.


📊 결과 해석 (Result Interpretation)

최종 결과 파일(Recommendations_{job_id}.txt)은 다음과 같은 기준으로 작성됩니다.

1. TAG Score (Connectivity Score)

  • 범위: -100 ~ 100
  • 의미: 입력된 Gene Signature(질병 상태)와 약물 처리 후의 유전자 발현 패턴 간의 연관성 점수입니다.
  • 해석:
    • 음수(-) 값: 질병의 유전자 발현 패턴을 **반전(Reverse)**시키는 약물입니다.
    • 절댓값이 클수록: 반전 효과가 강력함을 의미하며, 치료제로서의 가능성이 높습니다.
    • 본 프로젝트는 TAG Score가 낮은(음수 쪽으로 큰) 상위 물질들을 우선적으로 추천합니다.

2. 추천 약물 필터링 기준

  • CMap 추천 물질 (Direct Hits):
    • CMap 분석 결과에서 도출된 상위 후보 물질들입니다.
    • 임상 단계(Clinical Phase)와 관계없이 모든 후보 물질을 보여줍니다.
  • 구조 기반 유사 물질 (Structure-based Similar Compounds):
    • CMap 추천 물질과 화학적 구조(SMILES)가 유사한 물질을 ChEMBL에서 검색한 결과입니다.
    • 실질적인 약물 개발 가능성을 고려하여, 임상 2상(Phase 2) 이상인 물질만 필터링하여 보여줍니다.

🔄 분석 워크플로우 (Workflow)

전체 분석 과정은 아래와 같이 진행됩니다.

Project_BioDB_workflow

  1. 데이터 취합 및 정규화: 입력된 Gene Expression 데이터를 PyDESeq2로 정규화하고, WT vs MUT 비교를 통해 Up/Down Regulated Genes를 추출합니다.
  2. ID 매핑 (Entrez ID): LINCS Phase I L1000 데이터셋(gene_info.txt.gz)을 다운로드하여 유전자 심볼을 Entrez ID로 변환합니다.
  3. CMap API 분석: 변환된 시그니처를 CMap API에 전송하여 분석을 요청하고 결과를 다운로드합니다. (약 20분 소요)
  4. 결과 통합 및 필터링: 다운로드된 CMap 결과 파일을 파싱하여, 여러 파일에서 공통적으로 높은 순위를 차지한 약물 후보를 선별합니다.
  5. 약물 정보 검색: 검증된 물질을 ChEMBL Database에서 약물 관련 정보를 가져오고, 해당 물질의 SMILES 정보를 바탕으로 ChEMBL Database에서 유사 화합물, 임상 정보 등을 검색하여 최종 리포트를 생성합니다.

❓ 문제 해결 (Troubleshooting)

자주 발생하는 문제와 해결 방법을 확인하세요.

Q. "ValueError: dataset_label.txt 파일에 '>>'로 시작하는 라인이 없습니다." 오류가 발생합니다.

  • 원인: dataset_label.txt 파일의 형식이 올바르지 않습니다. 파일명 정의(>>)가 누락되었거나 잘못 작성되었습니다.
  • 해결: dataset_label.txt 파일을 열어 파일명이 >>파일명 형식으로 정확히 입력되었는지 확인하세요. (예: >>file1.tsv)

Q. CMap 분석이 너무 오래 걸립니다. 프로그램이 멈춘 것 아닌가요?

  • 원인: CMap 서버의 상태에 따라 분석 시간이 20분에서 1시간 이상 소요될 수 있습니다.
  • 해결: 프로그램은 3분 간격으로 서버 상태를 확인하고, 분석이 완료되면 자동으로 결과를 다운로드합니다.
    • ⚠️ 주의: 프로그램을 강제로 종료하지 마세요. 종료 후 다시 실행하면 처음부터 다시 요청을 보내고 기다려야 합니다.
    • 화면에 "Job [ID] 상태 모니터링 시작..." 메시지가 떠 있다면 정상적으로 작동 중인 것입니다.

The docstrings for the code in this project were generated by GitHub Copilot.

About

A project developed for the 'Big Data Processing Using Biological Public Databases' course. This tool analyzes gene expression data using DESeq2 and suggests potential drug candidates based on Connectivity Map (CMap) results.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages