이 저장소에는 3D 등변 그래프 번역으로서의 조건부 항체 설계 논문에 대한 코드가 포함되어 있습니다. MEAN은 본 논문에서 제안한 Multi -channel E quivariant Attention N etwork의 약어입니다.
우리는 scripts/setup.sh에 환경 설정을 위한 스크립트를 준비했습니다. 코드를 실행하기 전에 bash scripts/setup.sh
사용하여 여기에 종속성을 설치하십시오.
우리 논문에 사용된 요약 데이터는 SAbDab, RAbD, SKEMPI_V2의 요약 폴더에 제공되어 있습니다. 모든 구조 데이터는 SAbDab 다운로드 페이지에서 다운로드하시기 바랍니다. SAbDab은 매주 업데이트되므로 공식 웹사이트에서 최신 요약 파일을 다운로드할 수도 있습니다. 다음 지침에서는 imgt로 번호를 다시 매긴 구조 데이터가 all_structures/imgt 폴더에 있다고 가정합니다.
우리는 폴더 scripts 또는 리포지토리의 루트 폴더에 있는 다양한 실험 절차에 대한 쉘 스크립트를 제공했습니다. scripts 에 있는 스크립트의 경우 인수 없이 실행하여 사용법 힌트를 확인할 수 있습니다. 이에 대한 내용은 나중에 README에서도 설명됩니다. 설명이 필요할 수 있는 한 가지는 100 또는 111의 값을 취하는 모드 매개변수입니다. 100은 문맥에서 중쇄만 사용됨을 의미하고, 111은 문맥에서 중쇄, 경쇄 및 에피토프가 고려됨을 의미합니다. 후자는 항원 결합 CDR 디자인의 전체 설정인 반면, 첫 번째는 RefineGNN과의 비교만을 위한 것입니다. 인수의 <model type>은 체크포인트를 저장/로드할 디렉터리의 접두사만 지정합니다. 다음 섹션에서는 평균을 사용합니다. 경로와 관련된 문제가 발생하는 경우 스크립트에 인수를 전달할 때 절대 디렉터리를 사용해 보십시오.
우리는 데이터 준비, k-fold 훈련 및 평가를 위한 스크립트를 제공했습니다.
다음은 MEAN을 평가하는 예입니다.
bash scripts/prepare_data_kfold.sh summaries/sabdab_summary.tsv all_structures/imgt
GPU=0 bash scripts/k_fold_train.sh summaries 111 mean 9901
GPU=0 bash scripts/k_fold_eval.sh summaries 111 mean 0
bash scripts/prepare_data_kfold.sh summaries/sabdab_summary.tsv all_structures/imgt
실행하면 스크립트는 요약의 pdb를 summaries/pdb 에 복사하고, 요약을 json 형식으로 변환하고, 각 cdr에 대해 10겹 데이터 분할을 생성합니다. ~5G 공간이 필요합니다. 다른 디렉터리에서 데이터 준비를 수행하려면 해당 디렉터리에 요약 파일을 복사하고 summaries/sabdab_summary.tsv를 새 경로로 바꾸면 됩니다. 또한 훈련의 각 병렬 실행에 대해 체크포인트는 버전 0, 1, ...에 저장됩니다. 따라서 버전 ID를 k_fold_eval.sh 의 마지막 인수로 지정해야 합니다.
이 작업을 실행하기 전에 최소한 scripts/prepare_data_kfold.sh(23-31행)에서 SAbDab의 json 요약을 다운로드하는 명령을 실행하십시오. json 파일이 summaries/sabdab_all.json에 있다고 가정하겠습니다.
예:
bash scripts/prepare_data_rabd.sh summaries/rabd_summary.jsonl all_structures/imgt summaries/sabdab_all.json
GPU=0 MODE=111 DATA_DIR=summaries/cdrh3 bash train.sh mean 3
GPU=0 MODE=111 DATA_DIR=summaries/cdrh3 bash rabd_test.sh 0
우리는 또한 checkpoints/ckpt/rabd_cdrh3_mean.ckpt에서 우리 논문에 사용된 훈련된 체크포인트를 제공했습니다. GPU=0 MODE=111 DATA_DIR=summaries/cdrh3 bash rabd_test.sh 0 checkpoints/ckpt/rabd_cdrh3_mean.ckpt
실행하여 테스트에 사용할 수 있습니다. 결과는 체크포인트와 동일한 디렉터리에 있는 results 폴더에 저장됩니다.
이 작업을 실행하기 전에 최소한 scripts/prepare_data_kfold.sh(23-31행)에서 SAbDab의 json 요약을 다운로드하는 명령을 실행하십시오. json 파일이 summaries/sabdab_all.json에 있다고 가정합니다.
예:
bash scripts/prepare_data_skempi.sh summaries/skempi_v2_summary.jsonl all_structures/imgt summaries/sabdab_all.json
GPU=0 MODE=111 DATA_DIR=summaries bash train.sh mean 3
GPU=0 CKPT_DIR=summaries/ckpt/mean_CDR3_111/version_0 bash ita_train.sh
GPU=0 DATA_DIR=summaries bash ita_generate.sh summaries/ckpt/mean_CDR3_111/version_0/ita/iter_i.ckpt # specify the checkpoint from iteration i for testing
또한 checkpoints/ckpt/opt_cdrh3_mean.ckpt에서 ITA 미세 조정 후 체크포인트를 제공했습니다. GPU=0 DATA_DIR=summaries bash ita_generate.sh checkpoints/ckpt/opt_cdrh3_mean.ckpt
실행하여 추론에 직접 사용할 수 있습니다. 이 스크립트는 summary/skempi_all.json에서 각 항체에 대해 100개의 최적화된 후보를 생성하고 예측된 ddg 측면에서 상위 1개를 보고합니다. 최적화된 후보의 pdb는 체크포인트와 동일한 디렉터리에 위치합니다.
또한 scritps/design.py에서 단일 CDR의 설계/최적화를 위한 스크립트를 제공합니다. 스크립트에는 중쇄, 경쇄 및 항원이 포함된 입력 pdb가 필요합니다. pdb는 IMGT 시스템을 사용하여 미리 번호를 다시 매겨야 하며, 이는 ANARCI의 data/ImmunoPDB.py에 있는 스크립트를 통해 수행할 수 있습니다. 다음은 1ic7 pdb용 CDR-H3 설계의 예입니다.
python ./data/ImmunoPDB.py -i data/1ic7.pdb -o 1ic7.pdb -s imgt # renumber the pdb
python ./scripts/design.py --pdb 1ic7.pdb --heavy_chain H --light_chain L
생성된 pdb와 CDR-H3 시퀀스 요약은 ./results에 저장됩니다. 스크립트에 사용되는 기본 체크포인트는 checkpoints/ckpt/rabd_cdrh3_mean.ckpt입니다. --ckpt path/to/your/checkpoint
인수를 사용하여 자체 체크포인트를 전달할 수 있습니다(예: CDR 최적화를 위해 opt_cdrh3_mean.ckpt 사용).
또한 스크립트는 여러 pdb를 입력으로 수용할 수 있습니다. 예를 들면 다음과 같습니다.
python ./scripts/design.py
--pdb pdb1 pdb2 ...
--heavy_chain Hchain1 Hchain2 ...
--light_chain Lchain1 Lchain2 ...
우리 작업에 관심을 가져주셔서 감사합니다!
알고리즘, 코드, 실행 시 발생하는 문제에 대한 질문을 더 명확하고 개선할 수 있도록 언제든지 문의해 주세요. github 저장소에서 문제를 생성하거나 [email protected]으로 문의하실 수 있습니다.
일부 코드는 기존 저장소에서 빌려왔습니다.