AlphaPulldown behält die vollständige Abwärtskompatibilität mit Eingabedateien und Skripten ab Version 1.x bei.
AlphaPulldown: Version 2.0.0 (Beta)
Inhaltsverzeichnis
Über AlphaPulldown
Überblick
Alphafold-Datenbanken
Snakemake AlphaPulldown
1. Installation
2. Konfiguration
3. Ausführung
Führen Sie die AlphaPulldown-Python-Befehlszeilenschnittstelle aus
Erstellen Sie ein Jupyter-Notizbuch
Erstellen Sie eine Ergebnistabelle
Nächster Schritt
Nächster Schritt
2.1. Grundlauf
2.2. Beispiellauf mit SLURM (EMBL-Cluster)
2.3. Pulldown-Modus
2.4. Alle-gegen-Alle-Modus
2.5. Mit benutzerdefinierten Vorlagen ausführen (TrueMultimer)
2.6. Mit Crosslinking-Daten ausführen (AlphaLink2)
Eingang
Skriptausführung: Strukturvorhersage
Ausgabe
Nächster Schritt
Eingang
Skriptausführung
Ausgabe und der nächste Schritt
„Pulldown“-Modus für mehrere Eingänge
Ausgabe und der nächste Schritt
Eingang
Skriptausführung für TrueMultimer-Strukturvorhersage
Ausgabe und der nächste Schritt
Eingang
Führen Sie die AlphaLink2-Vorhersage über AlphaPulldown aus
Ausgabe und der nächste Schritt
1.1. Grundlauf
1.2. Beispiel-Bash-Skripte für SLURM (EMBL-Cluster)
1.3. Ausführung mit MMseqs2- und ColabFold-Datenbanken (schneller)
1.4. Mit benutzerdefinierten Vorlagen ausführen (TrueMultimer)
Eingang
Skriptausführung
Ausgabe
Nächster Schritt
Eingang
Skriptausführung
Nächster Schritt
Führen Sie MMseqs2 remote aus
Ausgabe
Führen Sie MMseqs2 lokal aus
Nächster Schritt
Eingang
Skriptausführung
Ausgabe
Nächster Schritt
0,1. Erstellen Sie eine Anaconda-Umgebung
0,2. Installation mit pip
0,3. Installation für die Downstream-Analysetools
0,4. Installation zur Quervernetzung der Eingabedaten durch AlphaLink2 (optional!)
0,5. Installation für Entwickler
0. Installation
1. Berechnen Sie Multiple Sequence Alignment (MSA) und Template-Funktionen (CPU-Stufe)
2. Strukturen vorhersagen (GPU-Stufe)
3. Analyse und Visualisierung
Downstream-Analyse
Verringern Sie die Größe der AlphaPulldown-Ausgabe
Konvertieren Sie Modelle vom PDB-Format in das ModelCIF-Format
1. Konvertieren Sie alle Modelle in separate ModelCIF-Dateien
2. Konvertieren Sie für jeden Komplex nur ein bestimmtes Einzelmodell
3. Haben Sie ein repräsentatives Modell und behalten Sie zugehörige Modelle bei
Zugehörige Zip-Archive
Verschiedene Optionen
Jupyter-Notizbuch
Ergebnistabelle
Skripte zur Ergebnisverwaltung
Features-Datenbank
Verfügbare Organismen auflisten:
Laden Sie spezifische Proteinfunktionen herunter:
Laden Sie alle Funktionen für einen Organismus herunter:
Schritte:
Installation überprüfen:
Installation
Konfiguration
Herunterladen von Funktionen
AlphaPulldown ist eine maßgeschneiderte Implementierung von AlphaFold-Multimer, die für das anpassbare Hochdurchsatz-Screening von Protein-Protein-Wechselwirkungen entwickelt wurde. Es erweitert die Fähigkeiten von AlphaFold durch die Integration zusätzlicher Laufoptionen, wie beispielsweise anpassbare multimere Strukturvorlagen (TrueMultimer), MMseqs2-Multiple-Sequence-Alignment (MSA) über ColabFold-Datenbanken, Proteinfragmentvorhersagen und die Möglichkeit, Massenspektrometerdaten als Eingabe mithilfe von AlphaLink2 zu integrieren.
AlphaPulldown kann auf zwei Arten verwendet werden: entweder durch eine zweistufige Pipeline aus Python-Skripten oder durch eine Snakemake-Pipeline als Ganzes. Einzelheiten zur Verwendung der Snakemake-Pipeline finden Sie im separaten GitHub -Repository .
Abbildung 1 Übersicht über den AlphaPulldown-Workflow
Der AlphaPulldown-Workflow umfasst die folgenden drei Schritte:
Erstellen und speichern Sie MSA- und Vorlagenfunktionen :
In diesem Schritt durchsucht AlphaFold vorinstallierte Datenbanken mit HMMER nach jeder abgefragten Proteinsequenz und berechnet Multiple Sequence Alignments (MSAs) für alle gefundenen Homologen. Außerdem wird nach homologen Strukturen gesucht, die als Vorlagen für die Feature-Generierung verwendet werden können. Dieser Schritt erfordert nur CPU.
Zu den anpassbaren Optionen gehören:
Um den Suchvorgang zu beschleunigen, kann MMSeq2 anstelle des Standard-HHMER verwendet werden.
Verwenden Sie benutzerdefiniertes MSA.
Verwenden Sie eine benutzerdefinierte Strukturvorlage, einschließlich einer multimeren Vorlage (TrueMultimer-Modus).
Strukturvorhersage :
In diesem Schritt läuft das neuronale AlphaFold-Netzwerk und erzeugt die endgültige Proteinstruktur, wofür eine GPU erforderlich ist. Eine wesentliche Stärke von AlphaPulldown ist seine Fähigkeit, flexibel zu definieren, wie Proteine für die Strukturvorhersage von Proteinkomplexen kombiniert werden. Hier sind die drei wichtigsten Ansätze, die Sie verwenden können:
Abbildung 2 Drei typische Szenarien, die von AlphaPulldown abgedeckt werden
Darüber hinaus ermöglicht AlphaPulldown auch:
Wählen Sie nur die Region(en) der Proteine aus, die Sie vorhersagen möchten, und nicht die Sequenzen voller Länge.
Passen Sie die MSA-Tiefe an, um den Einfluss der anfänglichen MSA auf das endgültige Modell zu steuern.
Integrieren Sie Hochdurchsatz-Vernetzungsdaten mit der AlphaFold-Modellierung über AlphaLink2.
Einzelne Datei (benutzerdefinierter Modus oder Homo-Oligomer-Modus): Erstellen Sie eine Datei, in der jede Zeile die Proteinsequenzen auflistet, die Sie zusammen vorhersagen möchten, oder jede Zeile das Programm anweist, Homo-Oligomere mit der von Ihnen angegebenen Anzahl von Kopien zu modellieren.
Mehrere Dateien (Pulldown-Modus): Stellen Sie mehrere Dateien bereit, von denen jede Proteinsequenzen enthält. AlphaPulldown generiert automatisch alle möglichen Kombinationen, indem es Zeilen mit Proteinnamen aus jeder Datei paart.
Alle gegen alle : AlphaPulldown generiert alle möglichen nicht-redundanten Kombinationen von Proteinen in der Liste.
Nachgelagerte Analyse der Ergebnisse :
Die Ergebnisse für alle vorhergesagten Modelle können mit einer der folgenden Optionen systematisiert werden:
Eine Tabelle mit verschiedenen Bewertungen und physikalischen Parametern von Proteinkomplex-Wechselwirkungen.
Ein Jupyter-Notizbuch mit interaktiven 3D-Proteinmodellen und PAE-Diagrammen.
Für die Standard-MSA- und Merkmalsberechnung benötigt AlphaPulldown genetische Datenbanken. Überprüfen Sie, ob Sie die erforderlichen Parameter und Datenbanken (z. B. BFD, MGnify usw.) gemäß den Anweisungen in der Dokumentation von AlphaFold heruntergeladen haben. Sie sollten ein Verzeichnis haben, das wie folgt strukturiert ist:
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
Notiz
Uniclust30 ist die Version der Datenbank, die vor 2019 generiert wurde, UniRef30 ist die Version, die nach 2019 generiert wurde. Bitte beachten Sie, dass AlphaPulldown standardmäßig UniRef30_2023_02 verwendet. Diese Version kann mit diesem Skript heruntergeladen werden. Alternativ überschreiben Sie bitte den Standardpfad zur Uniref30-Datenbank mit dem Flag --uniref30_database_path von create_individual_features.py.
Notiz
Da die lokale Installation aller genetischen Datenbanken platzraubend ist, können Sie alternativ die remote ausgeführten MMseqs2- und ColabFold-Datenbanken verwenden. Befolgen Sie die entsprechenden Anweisungen. Damit AlphaPulldown funktioniert, müssen Sie jedoch die im params/
-Verzeichnis der AlphaFold-Datenbank gespeicherten Parameter herunterladen.
AlphaPulldown ist als Snakemake-Pipeline verfügbar und ermöglicht Ihnen die sequentielle Ausführung von (1) der Generierung von MSAs und Vorlagenfunktionen, (2) der Strukturvorhersage und (3) der Ergebnisanalyse ohne manuelle Eingriffe zwischen den Schritten. Weitere Informationen finden Sie im AlphaPulldownSnakemake -Repository.
Warnung
Die Snakemake-Version von AlphaPulldown unterscheidet sich hinsichtlich der Eingabedateispezifikationen geringfügig vom herkömmlichen skriptbasierten AlphaPulldown.
Stellen Sie vor der Installation sicher, dass Ihre Python-Version mindestens 3.10 ist.
python3 --version
Abhängigkeiten installieren
pip install Snakemake==7.32.4 Snakedeploy==0.10.0 Pulp==2.7 Click==8.1 Cookiecutter==2.6
Snakemake-Cluster-Setup
Um Snakemake die Verbindung mit einem Rechencluster zu ermöglichen, werden wir das Snakemake-Profile für SLURM verwenden. Wenn Sie nicht an einem SLURM-Cluster arbeiten, finden Sie hier Profile für verschiedene Architekturen. Im Folgenden wird ein Profil erstellt, das mit Snakemake verwendet werden kann, und Sie werden zur Eingabe einiger zusätzlicher Informationen aufgefordert.
Git-Klon 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"
Während des Einrichtungsvorgangs werden Sie aufgefordert, mehrere Konfigurationsfragen zu beantworten. Nachfolgend finden Sie die Fragen und die empfohlenen Antworten:
profile_name [slurm]:
slurm_noSidecar
Select use_singularity:
1 (Falsch)
Select use_conda:
1 (Falsch)
jobs [500]:
(Drücken Sie die Eingabetaste, um die Standardeinstellung zu übernehmen.)
restart_times [0]:
(Drücken Sie die Eingabetaste, um die Standardeinstellung zu akzeptieren.)
max_status_checks_per_second [10]:
(Drücken Sie die Eingabetaste, um die Standardeinstellung zu akzeptieren.)
max_jobs_per_second [10]:
(Drücken Sie die Eingabetaste, um die Standardeinstellung zu akzeptieren.)
latency_wait [5]:
30
Select print_shell_commands:
1 (Falsch)
sbatch_defaults []:
qos=low nodes=1
Select cluster_sidecar:
2 (nein)
cluster_name []:
(Drücken Sie die Eingabetaste, um das Feld leer zu lassen.)
cluster_jobname [%r_%w]:
(Drücken Sie die Eingabetaste, um die Standardeinstellung zu akzeptieren.)
cluster_logpath [logs/slurm/%r/%j]:
(Drücken Sie die Eingabetaste, um die Standardeinstellung zu akzeptieren)
cluster_config []:
(Drücken Sie die Eingabetaste, um das Feld leer zu lassen.)
Nachdem Sie auf diese Eingabeaufforderungen reagiert haben, wird Ihr Slurm-Profil mit dem Namen slurm_noSidecar für Snakemake wie angegeben konfiguriert.
Singularität (wahrscheinlich bereits installiert) : Diese Pipeline nutzt Container zur Reproduzierbarkeit. Wenn Sie am EMBL-Cluster arbeiten, ist Singularity bereits installiert und Sie können diesen Schritt überspringen. Andernfalls installieren Sie Singularity bitte mithilfe der offiziellen Singularity-Anleitung.
Laden Sie die Pipeline herunter : Dadurch wird die durch „--tag“ angegebene Version der Snakemake-Pipeline heruntergeladen und das Repository AlphaPulldownSnakemake oder ein anderer von Ihnen gewählter Name erstellt.
Snakedeploy Deploy-Workflow https://github.com/KosinskiLab/AlphaPulldownSnakemake AlphaPulldownSnakemake --tag 1.4.0cd AlphaPulldownSnakemake
Notiz
Wenn Sie die neueste Version von GitHub verwenden möchten, ersetzen Sie --tag XXX
durch --branch main
CCP4-Paket installieren : Um die für den Analyseschritt benötigte Software zu installieren, befolgen Sie bitte diese Anweisungen:
Laden Sie sogenannte Singularitätsbilder mit unserem Analysesoftwarepaket herunter
Singularität ziehen docker://kosinskilab/fold_analysis:latest Singularity Build --sandboxFold_analysis_latest.sif
Laden Sie CCP4 von https://www.ccp4.ac.uk/download/#os=linux herunter und kopieren Sie es auf Ihren Server
tar xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9 cp bin/pisa bin/sc/software/ cp /lib/* /software/lib64/
Erstellen Sie eine neue Singularität mit CCP4
cdsingularity build Fold_analysis_latest_withCCP4.sif
Es sollte die Datei fold_analysis_latest_withCCP4.sif
erstellt werden.
Sie können das
Passen Sie config/config.yaml
an Ihren speziellen Anwendungsfall an.
Wenn Sie CCP4 für die Analyse verwenden möchten, öffnen Sie config/config.yaml
in einem Texteditor und ändern Sie den Pfad zum Analysecontainer in:
Analysis_container: „/path/to/fold_analysis_latest_withCCP4.sif“
input_files Diese Variable enthält den Pfad zu Ihrem Musterblatt, wobei jede Zeile einem Faltauftrag entspricht. Für diese Pipeline verwenden wir die folgende Formatspezifikation:
protein:N:start-stop[_protein:N:start-stop]*
Dabei ist Protein ein Pfad zu einer Datei mit der Erweiterung „.fasta“ oder der Uniprot-ID, N ist die Anzahl der Monomere für dieses bestimmte Protein und Start und Stopp sind die Reste, die vorhergesagt werden sollten. Allerdings ist nur Protein erforderlich, N, Start und Stopp können weggelassen werden. Daher sind die folgenden Faltungsaufgaben für das Proteinbeispiel mit den Resten 1–50 äquivalent:
example:2 example_example example:2:1-50 example:1-50_example:1-50 example:1:1-50_example:1:1-50
Dieses Format gilt in ähnlicher Weise für die Faltung von Heteromeren:
example1_example2
Angenommen, Sie haben zwei Beispielblätter config/sample_sheet1.csv und config/sample_sheet2.csv. Das Folgende wäre gleichbedeutend mit der Berechnung „alles gegen alle“ in „sample_sheet1.csv“:
input_files : - config/sample_sheet1.csv - config/sample_sheet1.csv
während der folgende Ausschnitt der Berechnung des Pulldowns zwischen sample_sheet1.csv und sample_sheet2.csv entsprechen würde
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv
Dieses Format kann auf so viele Dateien erweitert werden, wie Sie möchten. Beachten Sie jedoch, dass die Anzahl der Faltungen erheblich zunimmt.
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv - ...
alphafold_data_directory Dies ist der Pfad zu Ihrer alphafold-Datenbank.
Ausgabeverzeichnis Snakemake schreibt die Pipeline-Ausgabe in dieses Verzeichnis. Wenn es nicht existiert, wird es erstellt.
save_msa, use_precomputed_msa, Predictions_per_model, number_of_recycles, report_cutoff Befehlszeilenargumente, die zuvor an run_multimer_jobs.py und create_notebook.py (report_cutoff) von AlphaPulldown übergeben wurden.
alphafold_inference_threads, alphafold_inference Slurm-spezifische Parameter, die von nicht erfahrenen Benutzern nicht geändert werden müssen.
only_generate_features Wenn auf „True“ gesetzt, wird nach dem Generieren von Features angehalten und es werden keine Strukturvorhersagen und Berichte durchgeführt.
Nachdem Sie die Installations- und Konfigurationsschritte ausgeführt haben, können Sie nun die Snakemake-Pipeline ausführen. Navigieren Sie dazu in das geklonte Pipeline-Verzeichnis und führen Sie Folgendes aus:
Schlangenmacher --use-singularity --singularity-args "-B /scratch:/scratch -B /g/kosinski:/g/kosinski --nv " --jobs 200 --restart-times 5 --profile slurm_noSidecar --rerun-incomplete --rerun-triggers mtime --latency-wait 30 -N
Hier ist eine Aufschlüsselung dessen, was jedes Argument bewirkt:
--use-singularity
: Ermöglicht die Verwendung von Singularity-Containern. Dies ermöglicht Reproduzierbarkeit und Isolierung der Pipeline-Umgebung.
--singularity-args
: Gibt Argumente an, die direkt an Singularity übergeben werden. Im bereitgestellten Beispiel:
-B /scratch:/scratch
und -B /g/kosinski:/g/kosinski
: Dies sind Bindungs-Mount-Punkte. Sie machen Verzeichnisse Ihres Hostsystems innerhalb des Singularity-Containers zugänglich. --nv
stellt sicher, dass der Container die GPUs des Hosts nutzen kann.
--profile name_of_your_profile
: Gibt das zu verwendende Snakemake-Profil an (z. B. das SLURM-Profil, das Sie für die Clusterausführung eingerichtet haben).
--rerun-triggers mtime
: Führt einen Job erneut aus, wenn eine bestimmte Datei (Trigger) kürzlich geändert wurde als die Ausgabe des Jobs. Hier prüft mtime
den Zeitpunkt der Dateiänderung.
--jobs 500
: Ermöglicht die gleichzeitige Übermittlung von bis zu 500 Jobs an den Cluster.
--restart-times 10
: Gibt an, dass Jobs bis zu 10 Mal automatisch neu gestartet werden können, wenn sie fehlschlagen.
--rerun-incomplete
: Erzwingt die erneute Ausführung aller Jobs, die in früheren Snakemake-Läufen unvollständig blieben.
--latency-wait 30
: Wartet 30 Sekunden nach Abschluss eines Schritts, um zu prüfen, ob erwartete Ausgabedateien vorhanden sind. Dies kann in Dateisystemen mit hohen Latenzen nützlich sein.
-n
: Probelauf-Flag. Dadurch zeigt Snakemake die Befehle an, die es ausführen würde, ohne sie tatsächlich auszuführen. Es ist nützlich zum Testen. Um die Pipeline tatsächlich auszuführen, entfernen Sie einfach dieses Flag.
Durch Ausführen des obigen Befehls werden die folgenden Jobs an den Cluster gesendet:
AlphaPulldown kann als Satz von Skripten für jeden einzelnen Schritt verwendet werden.
create_individual_features.py
: Erzeugt mehrere Sequenzausrichtungen (MSA), identifiziert Strukturvorlagen und speichert die Ergebnisse in .pkl
Dateien mit Monomermerkmalen.
run_multimer_jobs.py
: Führt die Vorhersage von Strukturen aus.
create_notebook.py
und alpha-analysis.sif
: Bereitet ein interaktives Jupyter-Notizbuch bzw. eine Ergebnistabelle vor.
Installieren Sie zunächst Anaconda, erstellen Sie eine AlphaPulldown-Umgebung und sammeln Sie die erforderlichen Abhängigkeiten. Wir empfehlen die Verwendung von Mamba, um die Lösung von Abhängigkeiten zu beschleunigen:
conda create -n AlphaPulldown -c omnia -c bioconda -c conda-forge python==3.11 openmm==8.0 pdbfixer==1.9 kalign2 hhsuite hmmer modelcif
Quelle aktiviert AlphaPulldown
Dies funktioniert normalerweise, aber auf einigen Computersystemen bevorzugen Benutzer möglicherweise die Verwendung anderer Versionen oder optimierter Builds von HMMER und HH-Suite, die bereits installiert sind.
Aktivieren Sie die AlphaPulldown-Umgebung und installieren Sie AlphaPulldown:
Quelle aktiviert AlphaPulldown python3 -m pip install alphapulldown
pip install -U „jax[cuda12]“
Notiz
Für ältere Versionen von AlphaFold : Wenn Sie Ihre Datenbanken nicht gemäß den Anforderungen von AlphaFold 2.3.0 aktualisiert haben, können Sie AlphaPulldown weiterhin mit Ihrer älteren Version der AlphaFold-Datenbank verwenden. Bitte befolgen Sie die Installationsanweisungen im entsprechenden Zweig.
CCP4-Paket installieren : Um die für den Analyseschritt benötigte Software zu installieren, befolgen Sie bitte diese Anweisungen:
Singularität ziehen docker://kosinskilab/fold_analysis:latest singularity build --sandboxFold_analysis_latest.sif# Laden Sie das oberste von https://www.ccp4.ac.uk/download/#os=linuxtar xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9 herunter cp bin/pisa bin/sc /software/ cp /lib/* /software/lib64/ Singularity Build
Stellen Sie sicher, dass Sie PyTorch entsprechend Ihrer CUDA-Version installiert haben. Nehmen wir hier CUDA 11.7 und PyTorch 1.13.0 als Beispiel:
pip install Torch==1.13.0+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
Kompilieren Sie UniCore.
Quelle aktiviert AlphaPulldown Git-Klon https://github.com/dptech-corp/Uni-Core.gitcd Uni-Core python setup.py install --disable-cuda-ext # Testen Sie, ob Unicore erfolgreich installiert wurdepython -c "import unicore"
Möglicherweise wird die folgende Warnung angezeigt, aber es ist in Ordnung:
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
Laden Sie die PyTorch-Checkpoints von Zenodo herunter, entpacken Sie sie, dann sollten Sie eine Datei mit dem Namen AlphaLink-Multimer_SDA_v3.pt
erhalten
Nur für Entwickler, die die Codes von AlphaPulldown ändern und ihre Änderungen testen möchten. Bitte fügen Sie Ihren SSH-Schlüssel zu Ihrem GitHub-Konto hinzu
Klonen Sie das GitHub-Repo
git clone --recurse-submodules [email protected]:KosinskiLab/AlphaPulldown.gitcd AlphaPulldown Git-Submodul-Init Git-Submodul-Update
Erstellen Sie die Conda-Umgebung wie unter „Anaconda-Umgebung erstellen“ beschrieben
Installieren Sie das AlphaPulldown-Paket und fügen Sie seine Submodule zur Conda-Umgebung hinzu (funktioniert nicht, wenn Sie die Abhängigkeiten aktualisieren möchten)
Quelle aktiviert AlphaPulldowncd AlphaPulldown pip install .pip install -e . --no-deps pip install -e ColabFold --no-deps pip install -e alphafold --no-deps
Sie müssen es nur einmal tun.
Wenn Sie entwickeln möchten, aktivieren Sie die Umgebung und ändern Sie Dateien. Die Änderungen sollten dann automatisch erkannt werden.
Testen Sie Ihr Paket während der Entwicklung mit Tests in test/
, z. B.:
pip install pytest pytest -s test/ pytest -s test/test_predictions_slurm.py pytest -s test/test_features_with_templates.py::TestCreateIndividualFeaturesWithTemplates::test_1a_run_features_generation
Bevor Sie auf die Fernbedienung pushen oder eine Pull-Anfrage senden:
pip install .pytest -s test/
um das Paket zu installieren und zu testen. Pytest für Vorhersagen funktioniert nur, wenn SLURM verfügbar ist. Überprüfen Sie die erstellten Protokolldateien in Ihrem aktuellen Verzeichnis.
Notiz
Wenn Sie mit Proteinen aus Modellorganismen arbeiten, können Sie die Feature-Dateien direkt aus der AlphaPulldown-Features-Datenbank herunterladen und diesen Schritt überspringen.
Dies ist ein allgemeines Beispiel für die Verwendung von create_individual_features.py
. Informationen zum Ausführen bestimmter Aufgaben oder zur parallelen Ausführung auf einem Cluster finden Sie in den entsprechenden Abschnitten dieses Kapitels.
In diesem Schritt müssen Sie eine Proteindatei im FASTA-Format mit allen Proteinsequenzen bereitstellen, die für die komplexe Vorhersage verwendet werden.
Beispiel einer FASTA-Datei ( sequences.fasta
):
>proteinA
SEQUENCEOFPROTEINA
>proteinB
SEQUENCEOFPROTEINB
Aktivieren Sie die AlphaPulldown-Umgebung und führen Sie das Skript create_individual_features.py
wie folgt aus:
Quelle aktiviert AlphaPulldown create_individual_features.py --fasta_paths=--data_dir= --output_dir= --max_template_date=
Geben Sie anstelle von
einen Pfad zu Ihrer FASTA-Eingabedatei an. Sie können auch mehrere durch Kommas getrennte Dateien bereitstellen.
Geben Sie anstelle von
einen Pfad zur genetischen Datenbank an (siehe 0. Alphafold-Datenbanken des Installationsteils).
Geben Sie anstelle von
einen Pfad zum Ausgabeverzeichnis an, in dem Ihre Feature-Dateien gespeichert werden.
Ein Datum im Flag --max_template_date
wird benötigt, um die Suche nach Proteinstrukturen einzuschränken, die vor dem angegebenen Datum hinterlegt wurden. Sofern das Datum nicht nach dem Datum der letzten Aktualisierung Ihrer lokalen Genomdatenbank liegt, sucht das Skript in allen verfügbaren Strukturen nach Vorlagen.
Das Feature-Berechnungsskript create_individual_features.py
verfügt über mehrere optionale FLAGS:
--[no]save_msa_files
: Standardmäßig ist False, um die Speicherstufe zu speichern, kann aber in True geändert werden. Wenn es auf True
gesetzt ist, erstellt das Programm für jedes Protein einen eigenen Ordner. Das Ausgabeverzeichnis sieht folgendermaßen aus:
output_dir
|- proteinA.pkl
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
|- proteinB.pkl
|- proteinB
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
Wenn save_msa_files=False
, dann sieht das output_dir
wie folgt aus:
output_dir
|- proteinA.pkl
|- proteinB.pkl
--[no]use_precomputed_msas
: Der Standardwert ist False
. Wenn Sie jedoch bereits über MSA-Dateien für Ihre Proteine verfügen, setzen Sie den Parameter bitte auf „True“ und ordnen Sie Ihre MSA-Dateien im folgenden Format an:
example_directory
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- ***.a3m
|- etc
|- proteinB
|- ***.sto
|- etc
Legen Sie dann in der Befehlszeile den output_dir=/path/to/example_directory
fest.
--[no]skip_existing
: Der Standardwert ist False
. Wenn Sie jedoch den ersten Schritt bereits für einige Proteine ausgeführt haben und nun neue Proteine zur Liste hinzufügen, können Sie skip_existing
in der Befehlszeile auf True
ändern, um zu vermeiden, dass derselbe Vorgang für die vorherigen erneut ausgeführt wird berechnete Proteine.
--seq_index
: Der Standardwert ist None
und das Programm führt die Vorhersagen nacheinander in den angegebenen Dateien aus. Sie können seq_index
jedoch auf eine andere Zahl setzen, wenn Sie eine Reihe von Jobs parallel ausführen möchten. Dann führt das Programm nur den entsprechenden Job aus, der durch seq_index
angegeben ist. Beispielsweise berechnet das Programm Features für das erste Protein in Ihrer FASTA-Datei nur, wenn seq_index
auf 1 gesetzt ist. Sehen Sie sich auch das Slurm-Sbatch-Skript oben an, um ein Beispiel dafür zu finden, wie es für die parallele Ausführung verwendet wird. ❗ seq_index
beginnt bei 1.
--[no]use_mmseqs2
: mmseqs2 remote verwenden oder nicht. Der Standardwert ist False.
FLAGS im Zusammenhang mit dem TrueMultimer-Modus:
--path_to_mmt
: Pfad zum Verzeichnis mit multimerischen Vorlagen-mmCIF-Dateien.
--description_file
: Pfad zur Textdatei mit Beschreibungen zum Generieren von Features. Bitte beachten Sie , dass die erste Spalte eine exakte Kopie der Proteinbeschreibung aus Ihren FASTA-Dateien sein muss. Bitte erwägen Sie der Einfachheit halber, sie in FASTA-Dateien mit Ihrem bevorzugten Texteditor zu kürzen. Diese Namen werden verwendet, um Pickle-Dateien mit Monomerfunktionen zu generieren! Die Beschreibung.csv für den NS1-P85B-Komplex sollte wie folgt aussehen:
>sp|P03496|NS1_I34A1,3L4Q.cif,A
>sp|P23726|P85B_BOVIN,3L4Q.cif,C
In diesem Beispiel bezeichnen wir das NS1-Protein als Kette A und das P85B-Protein als Kette C in der multimeren Vorlage 3L4Q.cif.
Bitte beachten Sie , dass Ihre Vorlage in einen PDB-Code umbenannt wird, der aus _entry_id übernommen wird. Wenn Sie eine *.pdb-Datei anstelle von *.cif verwenden, versucht AlphaPulldown zunächst, den PDB-Code aus der Datei zu analysieren. Dann wird geprüft, ob der Dateiname 4 Buchstaben lang ist. Ist dies nicht der Fall, wird ein zufälliger 4-Buchstaben-Code generiert und als PDB-Code verwendet.
--threshold_clashes
: Schwellenwert für VDW-Überlappung zur Identifizierung von Kollisionen. Die VDW-Überlappung zwischen zwei Atomen ist definiert als die Summe ihrer VDW-Radien minus dem Abstand zwischen ihren Zentren. Wenn die Überlappung diesen Schwellenwert überschreitet, wird davon ausgegangen, dass die beiden Atome kollidieren. Ein positiver Schwellenwert ist, wie weit die VDW-Oberflächen sich gegenseitig durchdringen dürfen, bevor davon ausgegangen wird, dass die Atome kollidieren. (Standard: 1000, dh kein Schwellenwert, für die Schwellenwertbildung verwenden Sie 0,6–0,9).
--hb_allowance
: Zusätzlicher Spielraum für Wasserstoffbrückenbindungen (Standard: 0,4), der zur Identifizierung kollidierender Reste verwendet wird, die aus einer multimeren Vorlage entfernt werden sollen. Eine Toleranz > 0 spiegelt die Beobachtung wider, dass Atome, die eine Wasserstoffbindung teilen, einander näher kommen können, als es aufgrund ihrer VDW-Radien zu erwarten wäre. Der Zuschlag wird nur für Paare abgezogen, die aus einem Donor (oder donorgetragenem Wasserstoff) und einem Akzeptor bestehen. Dies entspricht der Verwendung kleinerer Radien zur Charakterisierung von Wasserstoffbrücken-Wechselwirkungen.
--plddt_threshold
: Schwellenwert für den pLDDT-Score (Standard: 0), der aus einer multimeren Vorlage entfernt werden soll (alle Reste mit pLDDT>plddt_threshold werden entfernt und von Grund auf modelliert). Kann nur verwendet werden, wenn multimere Vorlagen von AlphaFold generierte Modelle sind.
--new_uniclust_dir
: Bitte verwenden Sie dies, wenn Sie den Standardpfad zur Uniclust-Datenbank überschreiben möchten.
--[no]use_hhsearch
: Verwenden Sie hhsearch anstelle von hmmsearch, wenn Sie nach Strukturvorlagen suchen. Der Standardwert ist False.
--[no]multiple_mmts
: Mehrere multimere Vorlagen pro Kette verwenden. Der Standardwert ist False.
Das Ergebnis der Ausführung von create_individual_features.py
sind Features im Pickle-Format für jedes Protein aus der FASTA-Eingabedatei (z. B. sequence_name_A.pkl
und sequence_name_B.pkl
), die im output_dir
gespeichert sind.
Notiz
Der Name der Pickles ist derselbe wie die Beschreibungen der Sequenzen in FASTA-Dateien (z. B. >protein_A
in der FASTA-Datei ergibt proteinA.pkl
). Beachten Sie, dass Sonderzeichen wie | : ; #
, danach wird >
durch _
ersetzt.
Fahren Sie mit dem nächsten Schritt 2.1 Basislauf fort.
Wenn Sie AlphaPulldown auf einem Computercluster ausführen, möchten Sie möglicherweise die Feature-Erstellung parallel ausführen. Hier stellen wir ein Beispiel für Code bereit, der für einen Cluster geeignet ist, der SLURM Workload Manager verwendet.
Für das folgende Beispiel verwenden wir example_2_sequences.fasta
als Eingabe.
Erstellen Sie das Skript create_individual_features_SLURM.sh
“ und fügen Sie den folgenden Code mit vi, nano oder einem anderen Texteditor ein. Ersetzen Sie Eingabeparameter durch die entsprechenden Argumente für das Skript create_individual_features.py
, wie unter „Einfache Ausführung“ beschrieben, oder für jede andere Art von Ausführung, die Sie ausführen möchten:
#!/bin/bash#Eine typische Ausführung dauert ein paar Stunden, kann aber viel länger dauern#SBATCH --job-name=array#SBATCH --time=10:00:00#log files:#SBATCH -e logs/ create_individual_features_%A_%a_err.txt#SBATCH -o logs/create_individual_features_%A_%a_out.txt#qos setzt Priorität#SBATCH --qos=low#Beschränken Sie die Ausführung auf einen einzelnen Knoten#SBATCH -N 1#Passen Sie dies je nach an node#SBATCH --ntasks=8#SBATCH --mem=64000module laden HMMER/3.4-gompi-2023a Modul laden HH-suite/3.3.0-gompi-2023aeval „$(conda shell.bash Hook)“Modul laden CUDA/11.8.0 Modullast cuDNN/8.7.0.84-CUDA-11.8.0 conda activate AlphaPulldown# PASSEN SIE DIE FOLGENDEN SCRIPT-PARAMETER FÜR IHRE SPEZIFISCHE AUFGABE AN:####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=True --seq_index=$SLURM_ARRAY_TASK_ID#####
Machen Sie das Skript ausführbar, indem Sie Folgendes ausführen:
chmod +x create_individual_features_SLURM.sh
Führen Sie als Nächstes die folgenden Befehle aus und ersetzen Sie
durch den Pfad zu Ihrer FASTA-Eingabedatei:
mkdir logs#Zählen Sie die Anzahl der Jobs entsprechend der Anzahl der Sequenzen:count=`grep ">"| wc -l`#Führen Sie das Job-Array aus, jeweils 100 Jobs:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
Beispiel für zwei Dateien (Für weitere Dateien erstellen Sie die Variablen count3
, count4
usw. und fügen Sie sie zur Summe der Zählungen hinzu):
mkdir logs#Zählen Sie die Anzahl der Jobs entsprechend der Anzahl der Sequenzen:count1=`grep ">"| wc -l`count2=`grep ">" | wc -l`count=$(( $count1 + $count2 )) #Führen Sie das Job-Array aus, jeweils 100 Jobs:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
Fahren Sie mit dem nächsten Schritt 2.2 fort. Beispiellauf mit SLURM (EMBL-Cluster).
MMseqs2 ist eine weitere Methode zur Homologensuche und MSA-Generierung. Es bietet eine Alternative zu den von AlphaFold verwendeten Standard-HMMER- und HHblits. Die Ergebnisse dieser unterschiedlichen Ansätze könnten aufgrund von Variationen in den erfassten Evolutionsinformationen innerhalb der MSAs zu leicht unterschiedlichen Proteinstrukturvorhersagen führen. AlphaPulldown unterstützt die Implementierung der MMseqs2-Suche von ColabFold, das auch einen Webserver für die MSA-Generierung bereitstellt, sodass keine lokale Installation von Datenbanken erforderlich ist.
Zitieren: Wenn Sie MMseqs2 verwenden, denken Sie bitte daran, Folgendes zu zitieren: Mirdita M, Schütze K, Moriwaki Y, Heo L, Ovchinnikov S, Steinegger M. ColabFold: Making protein falten zugänglich für alle. Nature Methods (2022) doi: 10.1038/s41592-022-01488-1
ACHTUNG: Um eine Überlastung des Remote-Servers zu vermeiden, senden Sie nicht viele Jobs gleichzeitig. Wenn Sie MSAs für viele Sequenzen berechnen möchten, verwenden Sie bitte MMseqs2 lokal.
Um create_individual_features.py
mit MMseqs2 remote auszuführen, fügen Sie das Flag --use_mmseqs2=True
hinzu:
Quelle aktiviert AlphaPulldown create_individual_features.py --fasta_paths=--data_dir= --output_dir= --use_mmseqs2=True --max_template_date=
Nachdem die Skriptausführung abgeschlossen ist, sieht Ihr output_dir
folgendermaßen aus:
output_dir
|-proteinA.a3m
|-proteinA_env/
|-proteinA.pkl
|-proteinB.a3m
|-proteinB_env/
|-proteinB.pkl
...
Fahren Sie mit dem nächsten Schritt 2.1 Basislauf fort.
AlphaPulldown stellt KEINE Schnittstelle oder Code zum lokalen Ausführen von MMseqs2 bereit und installiert auch MMseqs2 oder andere erforderliche Programme nicht. Der Benutzer muss MMseqs2, ColabFold-Datenbanken, die ColabFold-Suche und andere erforderliche Abhängigkeiten installieren und zuerst MSA-Ausrichtungen ausführen. Eine Beispielanleitung finden Sie auf dem ColabFold GitHub.
Angenommen, Sie haben MMseqs2 erfolgreich lokal mit dem Programm colab_search
ausgeführt. Es wird eine A3M-Datei für jedes Protein Ihres Interesses generiert. Daher sollte Ihr output_dir
so aussehen:
output_dir
|-0.a3m
|-1.a3m
|-2.a3m
|-3.a3m
...
Diese A3M-Dateien von colabfold_search
haben einen unpassenden Namen. Daher haben wir ein rename_colab_search_a3m.py
-Skript bereitgestellt, das Ihnen beim Umbenennen all dieser Dateien hilft. Laden Sie das Skript von https://github.com/KosinskiLab/AlphaPulldown/blob/main/alphapulldown/scripts/rename_colab_search_a3m.py herunter und führen Sie Folgendes aus:
cd-Ausgabeverzeichnis Python rename_colab_search_a3m.py path_to_fasta_file_you_used_as_input_for_colabfold_search
Dann wird Ihr output_dir
zu:
output_dir
|-proteinA.a3m
|-proteinB.a3m
|-proteinC.a3m
|-proteinD.a3m
...
Hier entsprechen proteinA
, proteinB
usw. den Namen in Ihrer FASTA-Eingabedatei (z. B. >proteinA
ergibt proteinA.a3m
, >proteinB
ergibt proteinB.a3m
usw.).
HINWEIS: Sie können auch Ihre eigene benutzerdefinierte MSA-Datei im
.a3m
Format bereitstellen, anstatt die von MMSeq2 oder Standard-HHMER erstellten Dateien zu verwenden. Platzieren Sie entsprechend benannte Dateien im Ausgabeverzeichnis und verwenden Sie den Code wie folgt.
Gehen Sie danach zurück zu Ihrem Projektverzeichnis mit der ursprünglichen FASTA-Datei und zeigen Sie im Befehl auf dieses Verzeichnis:
Quelle aktiviert AlphaPulldown create_individual_features.py --fasta_paths=--data_dir= --output_dir= --skip_existing=False --use_mmseqs2=True --seq_index=
AlphaPulldown durchsucht automatisch die entsprechenden a3m-Dateien jedes Proteins. Am Ende sieht Ihr output_dir
so aus:
output_dir
|-proteinA.a3m
|-proteinA.pkl
|-proteinB.a3m
|-proteinB.pkl
|-proteinC.a3m
|-proteinC.pkl
...
<