AlphaPulldown은 버전 1.x의 입력 파일 및 스크립트와 이전 버전과의 호환성을 완벽하게 유지합니다 .
AlphaPulldown: 버전 2.0.0(베타)
목차
AlphaPulldown 소개
개요
알파폴드 데이터베이스
Snakemake Alpha 풀다운
1. 설치
2. 구성
3. 실행
AlphaPulldown Python 명령줄 인터페이스 실행
Jupyter 노트북 만들기
결과 테이블 생성
다음 단계
다음 단계
2.1. 기본 실행
2.2. SLURM(EMBL 클러스터)을 사용한 실행 예시
2.3. 풀다운 모드
2.4. 전체 대 전체 모드
2.5. 사용자 정의 템플릿으로 실행(TrueMultimer)
2.6. 가교 데이터로 실행(AlphaLink2)
입력
스크립트 실행: 구조 예측
산출
다음 단계
입력
스크립트 실행
출력 및 다음 단계
다중 입력 "풀다운" 모드
출력 및 다음 단계
입력
TrueMultimer 구조 예측을 위한 스크립트 실행
출력 및 다음 단계
입력
AlphaPulldown을 통해 AlphaLink2 예측으로 실행
출력 및 다음 단계
1.1. 기본 실행
1.2. SLURM(EMBL 클러스터)용 bash 스크립트 예
1.3. MMseqs2 및 ColabFold 데이터베이스를 사용하여 실행(더 빠름)
1.4. 사용자 정의 템플릿으로 실행(TrueMultimer)
입력
스크립트 실행
산출
다음 단계
입력
스크립트 실행
다음 단계
MMseqs2를 원격으로 실행
산출
MMseqs2를 로컬로 실행
다음 단계
입력
스크립트 실행
산출
다음 단계
0.1. Anaconda 환경 생성
0.2. pip를 이용한 설치
0.3. 다운스트림 분석 도구 설치
0.4. AlphaLink2에 의한 교차 링크 입력 데이터 설치(선택 사항!)
0.5. 개발자를 위한 설치
0. 설치
1. 다중 서열 정렬(MSA) 및 템플릿 기능(CPU 단계) 계산
2. 구조 예측(GPU 단계)
3. 분석 및 시각화
다운스트림 분석
AlphaPulldown 출력 크기 줄이기
모델을 PDB 형식에서 ModelCIF 형식으로 변환
1. 모든 모델을 별도의 ModelCIF 파일로 변환
2. 각 단지에 대해 특정 단일 모델만 변환합니다.
3. 대표 모델을 보유하고 관련 모델을 유지
관련 우편 아카이브
기타 옵션
주피터 노트북
결과표
결과 관리 스크립트
기능 데이터베이스
사용 가능한 유기체 목록:
특정 단백질 기능을 다운로드하세요:
유기체에 대한 모든 기능을 다운로드하십시오.
단계:
설치 확인:
설치
구성
기능 다운로드
AlphaPulldown은 단백질-단백질 상호작용의 맞춤형 고처리량 스크리닝을 위해 설계된 AlphaFold-Multimer의 맞춤형 구현입니다. 이는 사용자 정의 가능한 다중 구조 템플릿(TrueMultimer), ColabFold 데이터베이스를 통한 MMseqs2 다중 서열 정렬(MSA), 단백질 조각 예측, AlphaLink2를 사용하여 질량 분석 데이터를 입력으로 통합하는 기능과 같은 추가 실행 옵션을 통합하여 AlphaFold의 기능을 확장합니다.
AlphaPulldown은 두 가지 방법으로 사용할 수 있습니다. Python 스크립트 로 구성된 2단계 파이프라인을 사용하거나 전체적으로 Snakemake 파이프라인을 사용하는 것입니다. Snakemake 파이프라인 사용에 대한 자세한 내용은 별도의 GitHub 저장소 를 참조하세요.
그림 1 AlphaPulldown 작업 흐름 개요
AlphaPulldown 워크플로우에는 다음 3단계가 포함됩니다.
MSA 및 템플릿 기능 생성 및 저장 :
이 단계에서 AlphaFold는 쿼리된 각 단백질 서열에 대해 HMMER를 사용하여 사전 설치된 데이터베이스를 검색하고 발견된 모든 상동체에 대한 다중 서열 정렬(MSA)을 계산합니다. 또한 기능 생성을 위한 템플릿으로 사용할 상동체 구조를 검색합니다. 이 단계에는 CPU만 필요합니다.
사용자 정의 가능한 옵션은 다음과 같습니다.
검색 프로세스 속도를 높이기 위해 기본 HHMER 대신 MMSeq2를 사용할 수 있습니다.
맞춤형 MSA를 사용하세요.
다중체 템플릿(TrueMultimer 모드)을 포함한 사용자 정의 구조 템플릿을 사용합니다.
구조 예측 :
이 단계에서는 AlphaFold 신경망이 실행되어 GPU가 필요한 최종 단백질 구조를 생성합니다. AlphaPulldown의 주요 강점은 단백질 복합체의 구조 예측을 위해 단백질이 결합되는 방식을 유연하게 정의하는 능력입니다. 사용할 수 있는 세 가지 주요 접근 방식은 다음과 같습니다.
그림 2 AlphaPulldown에서 다루는 세 가지 일반적인 시나리오
또한 AlphaPulldown은 다음도 허용합니다.
전체 길이의 서열 대신 예측하려는 단백질 영역만 선택하십시오.
MSA 깊이를 조정하여 초기 MSA가 최종 모델에 미치는 영향을 제어합니다.
AlphaLink2를 통해 높은 처리량의 가교 데이터를 AlphaFold 모델링과 통합합니다.
단일 파일 (사용자 정의 모드 또는 호모올리고머 모드): 각 행에 함께 예측하려는 단백질 서열이 나열되거나 각 행이 프로그램에 지정된 복사본 수로 호모올리고머를 모델링하도록 지시하는 파일을 만듭니다.
다중 파일 (풀다운 모드): 각각 단백질 서열을 포함하는 여러 파일을 제공합니다. AlphaPulldown은 각 파일의 단백질 이름 행을 쌍으로 연결하여 가능한 모든 조합을 자동으로 생성합니다.
전체 대 전체 : AlphaPulldown은 목록에서 가능한 모든 중복되지 않는 단백질 조합을 생성합니다.
결과의 다운스트림 분석 :
모든 예측 모델의 결과는 다음 옵션 중 하나를 사용하여 체계화할 수 있습니다.
단백질 복합체 상호작용의 다양한 점수와 물리적 매개변수가 포함된 표입니다.
대화형 3D 단백질 모델과 PAE 플롯이 포함된 Jupyter Notebook입니다.
표준 MSA 및 기능 계산을 위해 AlphaPulldown에는 유전자 데이터베이스가 필요합니다. AlphaFold 문서의 지침에 따라 필요한 매개변수와 데이터베이스(예: BFD, MGNify 등)를 다운로드했는지 확인하세요. 다음과 같이 구성된 디렉터리가 있어야 합니다.
alphafold_database/ # Total: ~ 2.2 TB (download: 438 GB)
bfd/ # ~ 1.7 TB (download: 271.6 GB)
# 6 files.
mgnify/ # ~ 64 GB (download: 32.9 GB)
mgy_clusters_2018_12.fa
params/ # ~ 3.5 GB (download: 3.5 GB)
# 5 CASP14 models,
# 5 pTM models,
# 5 AlphaFold-Multimer models,
# LICENSE,
# = 16 files.
pdb70/ # ~ 56 GB (download: 19.5 GB)
# 9 files.
pdb_mmcif/ # ~ 206 GB (download: 46 GB)
mmcif_files/
# About 227,000 .cif files.
obsolete.dat
pdb_seqres/ # ~ 0.2 GB (download: 0.2 GB)
pdb_seqres.txt
small_bfd/ # ~ 17 GB (download: 9.6 GB)
bfd-first_non_consensus_sequences.fasta
uniref30/ # ~ 86 GB (download: 24.9 GB)
# 14 files.
uniprot/ # ~ 98.3 GB (download: 49 GB)
uniprot.fasta
uniref90/ # ~ 58 GB (download: 29.7 GB)
uniref90.fasta
메모
Uniclust30은 2019년 이전에 생성된 데이터베이스 버전이고, UniRef30은 2019년 이후에 생성된 데이터베이스 버전입니다. AlphaPulldown은 기본적으로 UniRef30_2023_02를 사용하고 있다는 점에 유의하세요. 이 버전은 이 스크립트로 다운로드할 수 있습니다. 또는 create_individual_features.py의 --uniref30_database_path 플래그를 사용하여 uniref30 데이터베이스의 기본 경로를 덮어쓰십시오.
메모
모든 유전자 데이터베이스를 로컬에 설치하는 것은 공간을 많이 차지하므로 원격으로 실행되는 MMseqs2 및 ColabFold 데이터베이스를 대신 사용할 수 있습니다. 해당 지침을 따르십시오. 그러나 AlphaPulldown이 작동하려면 AlphaFold 데이터베이스의 params/
디렉터리에 저장된 매개변수를 다운로드해야 합니다.
AlphaPulldown은 Snakemake 파이프라인으로 제공되므로 단계 간 수동 개입 없이 (1) MSA 및 템플릿 기능 생성, (2) 구조 예측, (3) 결과 분석을 순차적으로 실행할 수 있습니다. 자세한 내용은 AlphaPulldownSnakemake 저장소를 참조하세요.
경고
AlphaPulldown의 Snakemake 버전은 입력 파일 사양 측면에서 기존 스크립트 기반 AlphaPulldown과 약간 다릅니다.
설치하기 전에 Python 버전이 3.10 이상인지 확인하세요.
python3 --버전
종속성 설치
pip install snakemake==7.32.4 snakedeploy==0.10.0 펄프==2.7 클릭==8.1 cookiecutter==2.6
Snakemake 클러스터 설정
snakemake가 컴퓨팅 클러스터와 인터페이스할 수 있도록 SLURM용 Snakemake-Profile을 사용하겠습니다. SLURM 클러스터에서 작업하지 않는 경우 여기에서 다양한 아키텍처에 대한 프로필을 찾을 수 있습니다. 다음은 snakemake와 함께 사용할 수 있는 프로필을 생성하고 몇 가지 추가 정보를 묻는 메시지를 표시합니다.
자식 클론 https://github.com/Snakemake-Profiles/slurm.git profile_dir="${HOME}/.config/snakemake"mkdir -p "$profile_dir"template="gh:Snakemake-Profiles/slurm"cookiecutter --output-dir "$profile_dir" "$template"
설정 프로세스 중에 몇 가지 구성 질문에 대답하라는 메시지가 표시됩니다. 다음은 질문과 권장 답변입니다.
profile_name [slurm]:
slurm_no사이드카
Select use_singularity:
1(거짓)
Select use_conda:
1(거짓)
jobs [500]:
(기본값을 적용하려면 Enter 키를 누르세요)
restart_times [0]:
(기본값을 적용하려면 Enter 키를 누르세요)
max_status_checks_per_second [10]:
(기본값을 적용하려면 Enter를 누르세요)
max_jobs_per_second [10]:
(기본값을 적용하려면 Enter를 누르세요)
latency_wait [5]:
30
Select print_shell_commands:
1(거짓)
sbatch_defaults []:
qos=낮은 노드=1
Select cluster_sidecar:
2 (아니요)
cluster_name []:
(비워 두려면 Enter 키를 누르세요)
cluster_jobname [%r_%w]:
(기본값을 적용하려면 Enter 키를 누르세요)
cluster_logpath [logs/slurm/%r/%j]:
(기본값을 적용하려면 Enter를 누르세요)
cluster_config []:
(비워 두려면 Enter 키를 누르세요)
이러한 프롬프트에 응답하면 Snakemake용 slurm_noSidecar 라는 Slurm 프로필이 지정된 대로 구성됩니다.
Singularity(아마도 이미 설치됨) : 이 파이프라인은 재현성을 위해 컨테이너를 사용합니다. EMBL 클러스터 특이성이 이미 설치되어 있는 경우 이 단계를 건너뛸 수 있습니다. 그렇지 않은 경우 공식 Singularity 가이드를 사용하여 Singularity를 설치하세요.
파이프라인 다운로드 : snakemake 파이프라인의 '--tag'로 지정된 버전을 다운로드하고 AlphaPulldownSnakemake 저장소 또는 선택한 다른 이름을 생성합니다.
snakedeploy 배포 워크플로 https://github.com/KosinskiLab/AlphaPulldownSnakemake AlphaPulldownSnakemake --tag 1.4.0cd AlphaPulldownSnakemake
메모
GitHub의 최신 버전을 사용하려면 --tag XXX
--branch main
으로 바꾸세요.
CCP4 패키지 설치 : 분석 단계에 필요한 소프트웨어를 설치하려면 다음 지침을 따르십시오.
분석 소프트웨어 패키지를 사용하여 소위 Singularity 이미지를 다운로드하세요.
특이점 풀 docker://kosinskilab/fold_analytic:latest singularity build --sandboxfold_analytic_latest.sif
https://www.ccp4.ac.uk/download/#os=linux에서 CCP4를 다운로드하고 서버에 복사하세요.
tar xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9 cp bin/pisa bin/sc/software/ cp /lib/* /software/lib64/
CCP4가 포함된 새로운 Singularity 생성
cd <로컬 소프트웨어를 보관하려는 디렉터리> singularity buildfold_analytic_latest_withCCP4.sif
fold_analysis_latest_withCCP4.sif
파일을 생성해야 합니다.
이제
특정 사용 사례에 맞게 config/config.yaml
조정하세요.
분석에 CCP4를 사용하려면 텍스트 편집기에서 config/config.yaml
열고 분석 컨테이너의 경로를 다음으로 변경합니다.
분석_컨테이너: "/경로/to/fold_analytic_latest_withCCP4.sif"
input_files 이 변수는 각 줄이 접기 작업에 해당하는 샘플 시트의 경로를 보유합니다. 이 파이프라인에는 다음 형식 사양을 사용합니다.
protein:N:start-stop[_protein:N:start-stop]*
여기서 단백질은 '.fasta' 확장자 또는 uniprot ID가 있는 파일의 경로이고, N은 이 특정 단백질에 대한 단량체 수이며 시작 및 중지는 예측해야 하는 잔기입니다. 단, 단백질만 필요하며, N, start, stop은 생략 가능합니다. 따라서 잔기 1-50을 포함하는 단백질 예에 대한 다음 접는 작업은 동일합니다.
example:2 example_example example:2:1-50 example:1-50_example:1-50 example:1:1-50_example:1:1-50
이 형식은 이종체 접힘에 대해서도 유사하게 확장됩니다.
example1_example2
두 개의 샘플 시트 config/sample_sheet1.csv 및 config/sample_sheet2.csv가 있다고 가정합니다. 다음은 Sample_sheet1.csv에서 전체 대 전체를 계산하는 것과 동일합니다.
input_files : - config/sample_sheet1.csv - config/sample_sheet1.csv
아래 스니펫은 Sample_sheet1.csv와 Sample_sheet2.csv 사이의 풀다운을 계산하는 것과 동일합니다.
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv
이 형식은 원하는 만큼 많은 파일로 확장할 수 있지만 접는 횟수가 급격히 증가한다는 점을 명심하세요.
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv - ...
alphafold_data_directory 이것은 alphafold 데이터베이스의 경로입니다.
output_directory Snakemake는 파이프라인 출력을 이 디렉터리에 기록합니다. 존재하지 않는 경우 생성됩니다.
save_msa, use_precomputed_msa, Predictions_per_model, number_of_recycles, Report_cutoff 이전에 AlphaPulldown의 run_multimer_jobs.py 및 create_notebook.py(report_cutoff)에 전달된 명령줄 인수입니다.
alphafold_inference_threads, alphafold_inference 비전문가 사용자가 수정할 필요가 없는 Slurm 특정 매개변수입니다.
only_generate_features True로 설정하면 기능 생성 후 중지되고 구조 예측 및 보고를 수행하지 않습니다.
설치 및 구성 단계를 수행한 후에는 이제 snakemake 파이프라인을 실행할 준비가 되었습니다. 이렇게 하려면 복제된 파이프라인 디렉터리로 이동하여 다음을 실행합니다.
뱀 만들기 --사용 특이성 --singularity-args "-B /scratch:/scratch -B /g/kosinski:/g/kosinski --nv " --작업 200 --재시작 시간 5 --profile slurm_noSidecar --재실행-불완전 --rerun-triggers mtime --대기 시간 30 -N
각 인수의 역할은 다음과 같습니다.
--use-singularity
: Singularity 컨테이너 사용을 활성화합니다. 이를 통해 파이프라인 환경의 재현성과 격리가 가능해집니다.
--singularity-args
: Singularity에 직접 전달되는 인수를 지정합니다. 제공된 예에서:
-B /scratch:/scratch
및 -B /g/kosinski:/g/kosinski
: 바인드 마운트 지점입니다. Singularity 컨테이너 내에서 액세스할 수 있는 호스트 시스템의 디렉터리를 만듭니다. --nv
컨테이너가 호스트 GPU를 사용할 수 있도록 보장합니다.
--profile name_of_your_profile
: 사용할 Snakemake 프로필을 지정합니다(예: 클러스터 실행을 위해 설정한 SLURM 프로필).
--rerun-triggers mtime
: 특정 파일(트리거)이 작업 출력보다 최근에 수정된 경우 작업을 다시 실행합니다. 여기서 mtime
파일 수정 시간을 확인합니다.
--jobs 500
: 최대 500개의 작업을 클러스터에 동시에 제출할 수 있습니다.
--restart-times 10
: 작업이 실패할 경우 최대 10번까지 자동으로 다시 시작할 수 있도록 지정합니다.
--rerun-incomplete
: 이전 Snakemake 실행에서 불완전하게 남아 있던 모든 작업을 강제로 다시 실행합니다.
--latency-wait 30
: 예상 출력 파일이 있는지 확인하기 위해 단계가 완료된 후 30초 동안 기다립니다. 이는 대기 시간이 긴 파일 시스템에 유용할 수 있습니다.
-n
: 테스트 실행 플래그입니다. 이렇게 하면 Snakemake가 실제로 실행하지 않고도 실행할 명령을 표시하게 됩니다. 테스트에 유용합니다. 실제로 파이프라인을 실행하려면 이 플래그를 제거하기만 하면 됩니다.
위 명령을 실행하면 다음 작업이 클러스터에 제출됩니다.
AlphaPulldown은 모든 특정 단계에 대한 스크립트 세트로 사용될 수 있습니다.
create_individual_features.py
: 다중 서열 정렬(MSA)을 생성하고, 구조 템플릿을 식별하고, 결과를 단량체 기능 .pkl
파일에 저장합니다.
run_multimer_jobs.py
: 구조 예측을 실행합니다.
create_notebook.py
및 alpha-analysis.sif
: 대화형 Jupyter Notebook 및 결과 테이블을 각각 준비합니다.
먼저 Anaconda를 설치하고 AlphaPulldown 환경을 생성하여 필요한 종속성을 수집합니다. 종속성 해결 속도를 높이려면 mamba를 사용하는 것이 좋습니다.
conda create -n AlphaPulldown -c omnia -c bioconda -c conda-forge python==3.11 openmm==8.0 pdbfixer==1.9 kalign2 hhsuite hmmer modelcif
소스가 AlphaPulldown을 활성화합니다.
이는 일반적으로 작동하지만 일부 컴퓨팅 시스템에서는 사용자가 이미 설치된 HMMER 및 HH 제품군의 다른 버전이나 최적화된 빌드를 사용하는 것을 선호할 수 있습니다.
AlphaPulldown 환경을 활성화하고 AlphaPulldown을 설치하십시오.
소스가 AlphaPulldown을 활성화합니다. python3 -m pip install alphapulldown
pip install -U "jax[cuda12]"
메모
이전 버전의 AlphaFold : AlphaFold 2.3.0의 요구 사항에 따라 데이터베이스를 업데이트하지 않은 경우에도 이전 버전의 AlphaFold 데이터베이스에서 AlphaPulldown을 사용할 수 있습니다. 전용 지점의 설치 지침을 따르세요.
CCP4 패키지 설치 : 분석 단계에 필요한 소프트웨어를 설치하려면 다음 지침을 따르십시오.
특이점 풀 docker://kosinskilab/fold_analytic:latest singularity build --sandboxfold_analytic_latest.sif# https://www.ccp4.ac.uk/download/#os=linuxtar xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9에서 맨 위 항목을 다운로드합니다. cp bin/pisa bin/sc /software/ cp /lib/* /software/lib64/ 특이점 빌드
보유하고 있는 CUDA 버전에 해당하는 PyTorch를 설치했는지 확인하세요. 다음은 CUDA 11.7 및 PyTorch 1.13.0을 예로 들어 보겠습니다.
pip 설치 토치==1.13.0+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
UniCore를 컴파일합니다.
소스가 AlphaPulldown을 활성화합니다. git 클론 https://github.com/dptech-corp/Uni-Core.gitcd 유니코어 python setup.py install --disable-cuda-ext # 유니코어가 성공적으로 설치되었는지 테스트합니다python -c "import unicore"
다음 경고가 표시될 수 있지만 괜찮습니다.
fused_multi_tensor is not installed corrected
fused_rounding is not installed corrected
fused_layer_norm is not installed corrected
fused_softmax is not installed corrected
Zenodo에서 PyTorch 체크포인트를 다운로드하고 압축을 푼 다음 AlphaLink-Multimer_SDA_v3.pt
라는 파일을 얻어야 합니다.
AlphaPulldown의 코드를 수정하고 수정 사항을 테스트하려는 개발자에게만 해당됩니다. GitHub 계정에 SSH 키를 추가하세요.
GitHub 저장소 복제
git clone --recurse-submodules [email protected]:KosinskiLab/AlphaPulldown.gitcd AlphaPulldown git 서브모듈 초기화 git 서브모듈 업데이트
Anaconda 환경 생성에 설명된 대로 Conda 환경을 생성합니다.
AlphaPulldown 패키지를 설치하고 해당 하위 모듈을 Conda 환경에 추가합니다(종속성을 업데이트하려는 경우 작동하지 않음)
소스 활성화 AlphaPulldowncd AlphaPulldown pip 설치 .pip 설치 -e . --no-deps pip install -e ColabFold --no-deps pip install -e alphafold --no-deps
한 번만 수행하면 됩니다.
개발하고 싶을 때 환경을 활성화하고 파일을 수정하면 변경 사항이 자동으로 인식되어야 합니다.
test/
의 테스트를 사용하여 개발 중에 패키지를 테스트합니다. 예:
핍 설치 pytest pytest -s 테스트/ pytest -s 테스트/test_predictions_slurm.py pytest -s 테스트/test_features_with_templates.py::TestCreateIndividualFeaturesWithTemplates::test_1a_run_features_세대
리모콘으로 푸시하거나 풀 요청을 제출하기 전에:
pip install .pytest -s 테스트/
패키지를 설치하고 테스트합니다. 예측을 위한 Pytest는 SLURM을 사용할 수 있는 경우에만 작동합니다. 현재 디렉터리에 생성된 로그 파일을 확인하세요.
메모
모델 유기체의 단백질로 작업하는 경우 AlphaPulldown 기능 데이터베이스에서 기능 파일을 직접 다운로드하고 이 단계를 건너뛸 수 있습니다.
이것은 create_individual_features.py
사용법의 일반적인 예입니다. 클러스터에서 특정 작업 실행이나 병렬 실행에 대한 자세한 내용은 이 장의 해당 섹션을 참조하세요.
이 단계에서는 복잡한 예측에 사용될 모든 단백질 서열이 포함된 단백질 FASTA 형식 파일을 제공해야 합니다.
FASTA 파일의 예( sequences.fasta
):
>proteinA
SEQUENCEOFPROTEINA
>proteinB
SEQUENCEOFPROTEINB
AlphaPulldown 환경을 활성화하고 다음과 같이 create_individual_features.py
스크립트를 실행하십시오.
소스가 AlphaPulldown을 활성화합니다. create_individual_features.py --fasta_paths=<시퀀스.fasta> --data_dir=--output_dir=<출력 개체를 저장할 디렉터리> --max_template_date=<원하는 날짜, 형식: 2050-01-01>
대신 입력 FASTA 파일의 경로를 제공하세요. 쉼표로 구분된 여러 파일을 제공할 수도 있습니다.
대신 유전자 데이터베이스에 대한 경로를 제공합니다(설치 부분의 0. 알파폴드 데이터베이스 참조).
대신 기능 파일이 저장될 출력 디렉터리의 경로를 제공하세요.
표시된 날짜 이전에 보관된 단백질 구조의 검색을 제한하려면 --max_template_date
플래그의 날짜가 필요합니다. 날짜가 로컬 게놈 데이터베이스의 마지막 업데이트 날짜보다 늦지 않는 한 스크립트는 사용 가능한 모든 구조 중에서 템플릿을 검색합니다.
기능 계산 스크립트 create_individual_features.py
에는 몇 가지 선택적 플래그가 있습니다.
--[no]save_msa_files
: 저장 단계를 저장하려면 기본적으로 False 이지만 True 로 변경할 수 있습니다. True
로 설정되면 프로그램은 각 단백질에 대한 개별 폴더를 생성합니다. 출력 디렉터리는 다음과 같습니다.
output_dir
|- proteinA.pkl
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
|- proteinB.pkl
|- proteinB
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
save_msa_files=False
인 경우 output_dir
다음과 같습니다.
output_dir
|- proteinA.pkl
|- proteinB.pkl
--[no]use_precomputed_msas
: 기본값은 False
입니다. 그러나 단백질에 대한 MSA 파일이 이미 있는 경우 매개변수를 True로 설정하고 MSA 파일을 아래와 같은 형식으로 정렬하십시오.
example_directory
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- ***.a3m
|- etc
|- proteinB
|- ***.sto
|- etc
그런 다음 명령줄에서 output_dir=/path/to/example_directory
설정합니다.
--[no]skip_existing
: 기본값은 False
이지만 일부 단백질에 대해 이미 첫 번째 단계를 실행했고 이제 목록에 새 단백질을 추가하는 경우 명령줄에서 skip_existing
True
로 변경하여 이전에 동일한 절차를 다시 실행하지 않도록 할 수 있습니다. 계산된 단백질
--seq_index
: 기본값은 None
이며 프로그램은 주어진 파일에서 하나씩 예측을 실행합니다. 그러나 일련의 작업을 병렬로 실행하려는 경우 seq_index
다른 숫자로 설정할 수 있습니다. 그러면 프로그램은 seq_index
에 지정된 해당 작업만 실행합니다. 예를 들어 seq_index
1로 설정된 경우 프로그램은 FASTA 파일의 첫 번째 단백질에 대한 기능만 계산합니다. 병렬 실행에 사용하는 방법에 대한 예는 위의 Slurm sbatch 스크립트를 참조하세요. ❗ seq_index
1부터 시작합니다.
--[no]use_mmseqs2
: mmseqs2를 원격으로 사용할지 여부입니다. 기본값은 거짓입니다.
TrueMultimer 모드와 관련된 플래그:
--path_to_mmt
: 다중 템플릿 mmCIF 파일이 있는 디렉터리의 경로입니다.
--description_file
: 기능 생성에 대한 설명이 포함된 텍스트 파일의 경로입니다. 첫 번째 열 은 FASTA 파일의 단백질 설명과 정확히 일치해야 합니다. 편의를 위해 즐겨 사용하는 텍스트 편집기를 사용하여 FASTA 파일의 내용을 줄이는 것을 고려해 보십시오. 이 이름은 단량체 기능을 갖춘 피클 파일을 생성하는 데 사용됩니다! NS1-P85B 컴플렉스의 설명.csv는 다음과 같습니다.
>sp|P03496|NS1_I34A1,3L4Q.cif,A
>sp|P23726|P85B_BOVIN,3L4Q.cif,C
이 예에서는 다량체 템플릿 3L4Q.cif에서 NS1 단백질을 사슬 A로, P85B 단백질을 사슬 C로 나타냅니다.
템플릿 이름 은 _entry_id 에서 가져온 PDB 코드로 변경됩니다. *.cif 대신 *.pdb 파일을 사용하는 경우 AlphaPulldown은 먼저 파일에서 PDB 코드를 구문 분석하려고 시도합니다. 그런 다음 파일 이름이 4글자인지 확인합니다. 그렇지 않은 경우 임의의 4자리 코드를 생성하여 PDB 코드로 사용합니다.
--threshold_clashes
: 충돌을 식별하기 위한 VDW 중첩에 대한 임계값입니다. 두 원자 사이의 VDW 중첩은 VDW 반경의 합에서 중심 사이의 거리를 뺀 값으로 정의됩니다. 중첩이 이 임계값을 초과하면 두 원자가 충돌하는 것으로 간주됩니다. 양의 임계값은 원자가 충돌하는 것으로 간주하기 전에 VDW 표면이 얼마나 멀리 상호 침투할 수 있는지를 나타냅니다. (기본값: 1000, 즉 임계값 없음, 임계값 설정의 경우 0.6-0.9 사용).
--hb_allowance
: 다량체 템플릿에서 제거할 충돌 잔여물을 식별하는 데 사용되는 수소 결합에 대한 추가 허용치(기본값: 0.4). 허용치 > 0은 수소 결합을 공유하는 원자가 VDW 반경에서 예상되는 것보다 서로 더 가까워질 수 있다는 관찰을 반영합니다. 허용량은 기증자(또는 기증자 보유 수소)와 수용체로 구성된 쌍에 대해서만 차감됩니다. 이는 수소 결합 상호 작용을 특성화하기 위해 더 작은 반경을 사용하는 것과 동일합니다.
--plddt_threshold
: 다중 템플릿에서 제거될 pLDDT 점수(기본값: 0)에 대한 임계값(pLDDT>plddt_threshold가 있는 모든 잔여물은 처음부터 제거되고 모델링됩니다). 다중 템플릿이 AlphaFold에서 생성된 모델인 경우에만 사용할 수 있습니다.
--new_uniclust_dir
: 유니클러스트 데이터베이스의 기본 경로를 덮어쓰려면 이를 사용하십시오.
--[no]use_hhsearch
: 구조 템플릿을 찾을 때 hmmsearch 대신 hhsearch를 사용합니다. 기본값은 거짓입니다.
--[no]multiple_mmts
: 체인당 여러 다중 템플릿을 사용합니다. 기본값은 거짓입니다.
create_individual_features.py
실행 결과는 output_dir
에 저장된 입력 FASTA 파일(예: sequence_name_A.pkl
및 sequence_name_B.pkl
)의 각 단백질에 대한 피클 형식 기능입니다.
메모
피클의 이름은 FASTA 파일의 시퀀스 설명과 동일합니다(예: FASTA 파일의 >protein_A
는 proteinA.pkl
생성합니다). | : ; #
와 같은 특수 기호에 유의하세요. | : ; #
, 이후 >
_
로 대체됩니다.
다음 단계인 2.1 기본 실행으로 진행하세요.
컴퓨터 클러스터에서 AlphaPulldown을 실행하는 경우 기능 생성을 병렬로 실행할 수 있습니다. 여기에서는 SLURM Workload Manager를 활용하는 클러스터에 적합한 코드 예를 제공합니다.
다음 예에서는 example_2_sequences.fasta
입력으로 사용합니다.
create_individual_features_SLURM.sh
스크립트를 생성하고 vi, nano 또는 기타 텍스트 편집기를 사용하여 다음 코드를 배치합니다. 기본 실행 또는 실행하려는 다른 실행 유형에 설명된 대로 입력 매개변수를 create_individual_features.py
스크립트에 대한 적절한 인수로 바꿉니다.
#!/bin/bash#일반적인 실행은 몇 시간 정도 걸리지만 훨씬 더 길어질 수도 있습니다#SBATCH --job-name=array#SBATCH --time=10:00:00#log 파일:#SBATCH -e 로그/ create_individual_features_%A_%a_err.txt#SBATCH -o 로그/create_individual_features_%A_%a_out.txt#qos 우선순위 설정#SBATCH --qos=low#실행을 단일 노드로 제한#SBATCH -N 1#노드에 따라 조정#SBATCH --ntasks=8#SBATCH --mem=64000module load HMMER/3.4-gompi-2023a 모듈 로드 HH-suite/3.3.0-gompi-2023aeval "$(conda shell.bash Hook)"모듈 로드 CUDA/11.8.0 모듈 로드 cuDNN/8.7.0.84-CUDA-11.8.0 conda activate AlphaPulldown# 특정 작업에 대해 다음 스크립트 매개변수를 사용자 정의하세요:####create_individual_features.py --fasta_paths=example_1_sequences.fasta --data_dir=/scratch/AlphaFold_DBs/2.3.2 / --output_dir=/scratch/mydir/test_AlphaPulldown/ --max_template_date=2050-01-01 --skip_existing=참 --seq_index=$SLURM_ARRAY_TASK_ID#####
다음을 실행하여 스크립트를 실행 가능하게 만듭니다.
chmod +x create_individual_features_SLURM.sh
그런 다음, 다음 명령을 실행하여
입력 FASTA 파일의 경로로 바꿉니다.
mkdir 로그#시퀀스 수에 해당하는 작업 수 계산:count=`grep ">"| wc -l`#작업 배열 실행, 한 번에 100개의 작업:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
두 파일의 예(더 많은 파일의 경우 count3
, count4
등의 변수를 생성하고 이를 개수 합계에 추가하세요):
mkdir 로그#시퀀스 수에 해당하는 작업 수 계산:count1=`grep ">"| wc -l`count2=`grep ">" | wc -l`count=$(( $count1 + $count2 )) # 작업 배열을 한 번에 100개 작업 실행:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
다음 단계 2.2 SLURM(EMBL 클러스터)을 사용한 예시 실행으로 진행합니다.
MMseqs2는 상동체 검색 및 MSA 생성을 위한 또 다른 방법입니다. 이는 AlphaFold에서 사용되는 기본 HMMER 및 HHblit에 대한 대안을 제공합니다. 이러한 다양한 접근법의 결과는 MSA 내에서 포착된 진화 정보의 변화로 인해 약간 다른 단백질 구조 예측으로 이어질 수 있습니다. AlphaPulldown은 MSA 생성을 위한 웹 서버도 제공하는 ColabFold에서 만든 MMseqs2 검색 구현을 지원하므로 데이터베이스를 로컬에 설치할 필요가 없습니다.
인용: MMseqs2를 사용하는 경우 다음을 인용하십시오: Mirdita M, Schütze K, Moriwaki Y, Heo L, Ovchinnikov S, Steinegger M. ColabFold: 모든 사람이 단백질 접힘에 접근 가능하도록 만들기. 네이처 메소드(2022) doi: 10.1038/s41592-022-01488-1
주의: 원격 서버의 과부하를 방지하려면 많은 수의 작업을 동시에 제출하지 마십시오. 많은 시퀀스에 대한 MSA를 계산하려면 로컬에서 MMseqs2를 사용하십시오.
MMseqs2를 원격으로 사용하여 create_individual_features.py
실행하려면 --use_mmseqs2=True
플래그를 추가하세요.
소스가 AlphaPulldown을 활성화합니다. create_individual_features.py --fasta_paths=<시퀀스.fasta> --data_dir=--output_dir=<출력 개체를 저장할 디렉터리> --use_mmseqs2=참 --max_template_date=<원하는 날짜, 형식: 2050-01-01>
스크립트 실행이 완료되면 output_dir
다음과 같습니다.
output_dir
|-proteinA.a3m
|-proteinA_env/
|-proteinA.pkl
|-proteinB.a3m
|-proteinB_env/
|-proteinB.pkl
...
다음 단계인 2.1 기본 실행으로 진행하세요.
AlphaPulldown은 MMseqs2를 로컬로 실행하기 위한 인터페이스나 코드를 제공하지 않으며 MMseqs2 또는 기타 필수 프로그램을 설치하지도 않습니다. 사용자는 MMseqs2, ColabFold 데이터베이스, ColabFold 검색 및 기타 필수 종속성을 설치하고 MSA 정렬을 먼저 실행해야 합니다. 예시 가이드는 ColabFold GitHub에서 찾을 수 있습니다.
colab_search
프로그램을 사용하여 로컬에서 MMseqs2를 성공적으로 실행했다고 가정합니다. 관심 있는 각 단백질에 대한 A3M 파일을 생성합니다. 따라서, 귀하의 output_dir
다음과 같아야 합니다:
output_dir
|-0.a3m
|-1.a3m
|-2.a3m
|-3.a3m
...
colabfold_search
의 이러한 a3m 파일은 이름이 불편합니다. 따라서 우리는 이러한 모든 파일의 이름을 바꾸는 데 도움이 되는 rename_colab_search_a3m.py
스크립트를 제공했습니다. https://github.com/KosinskiLab/AlphaPulldown/blob/main/alphapulldown/scripts/rename_colab_search_a3m.py에서 스크립트를 다운로드하고 다음을 실행합니다.
CD 출력_디렉터리 python rename_colab_search_a3m.py path_to_fasta_file_you_used_as_input_for_colabfold_search
그러면 귀하의 output_dir
다음과 같습니다:
output_dir
|-proteinA.a3m
|-proteinB.a3m
|-proteinC.a3m
|-proteinD.a3m
...
여기서 proteinA
, proteinB
등은 입력 FASTA 파일의 이름에 해당합니다(예: >proteinA
proteinA.a3m
제공하고, >proteinB
proteinB.a3m
등을 제공합니다).
참고: MMSeq2 또는 표준 HHMER에서 생성된 파일을 사용하는 대신
.a3m
형식으로 사용자 지정 MSA 파일을 제공할 수도 있습니다. 출력 디렉터리에 적절한 이름의 파일을 배치하고 다음과 같이 코드를 사용합니다.
그런 다음 원본 FASTA 파일이 있는 프로젝트 디렉터리로 돌아가서 명령에서 이 디렉터리를 가리킵니다.
소스가 AlphaPulldown을 활성화합니다. create_individual_features.py --fasta_paths=<시퀀스.fasta> --data_dir=--output_dir=<출력_디렉터리> --skip_existing=거짓 --use_mmseqs2=참 --seq_index=<원하는 숫자 또는 플래그를 건너뛰어 차례로 모두 실행>
AlphaPulldown은 각 단백질에 해당하는 a3m 파일을 자동으로 검색합니다. 결국, 귀하의 output_dir
다음과 같습니다:
output_dir
|-proteinA.a3m
|-proteinA.pkl
|-proteinB.a3m
|-proteinB.pkl
|-proteinC.a3m
|-proteinC.pkl
...
<