sokrypton / sokrypton/ColabFold

"Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead." error code when ranking predicted structures of dimer

Open
#499 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Jupyter Notebook
Stars
2.9k
Forks
747
PR merge metrics
No merged PRs in 30d

Description

Expected Behavior

Attempting to predict the structure of a homodimer using colab with stock settings, plus amber relaxation of only the top-ranked final structure.

Current Behavior

After finishing the initial 5 predictions, it attempts to rerank models by 'multimer' metric but then stops and the titled error message appears.

Colabfold Output

2023-09-27 14:49:14,001 reranking models by 'multimer' metric
2023-09-27 14:49:16,964 Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.

Your Environment

Ran via hosted run-time (T4)

Executed code

#@title Input protein sequence(s), then hit Runtime -> Run all
from google.colab import files
import os
import re
import hashlib
import random

from sys import version_info
python_version = f"{version_info.major}.{version_info.minor}"

def add_hash(x,y):
return x+"_"+hashlib.sha1(y.encode()).hexdigest()[:5]

query_sequence = 'MSLMVSAGRGLGAVWSPTHVQVTVLQARGLRAKGPGGTSDAYAVIQVGKEKYATSVSERSLGAPVWREEA TFELPSLLSSGPAAAATLQLTVLHRALLGLDKFLGRAEVDLRDLHRDQGRRKTQWYKLKSKPGKKDKERG EIEVDIQFMRNNMTASMFDLSMKDKSRNPFGKLKDKIKGKNKDSGSDTASAIIPSTTPSVDSDDESVVKD KKKKSKIKTLLSKSNLQKTPLSQSMSVLPTSKPEKVLLRPGDFQSQWDEDDNEDESSSASDVMSHKRTAS TDLKQLNQVNFTLPKKEGLSFLGGLRSKNDVLSRSNVCINGNHVYLEQPEAKGEIKDSSPSSSPSPKGFR KKHLFSSTENLAAGSWKEPAEGGGLSSDRQLSESSTKDSLKSMTLPSYRPAPLVSGDLRENMAPANSEAT KEAKESKKPESRRSSLLSLMTGKKDVAKGSEGENPLTVPGREKEGMLMGVKPGEDASGPAEDLVRRSEKD TAAVVSRQGSSLNLFEDVQITEPEAEPESKSEPRPPISSPRAPQTRAVKPRLHPVKPMNAMATKVANCSL GTATIISENLNNEVMMKKYSPSDPAFAYAQLTHDELIQLVLKQKETISKKEFQVRELEDYIDNLLVRVME ETPNILRIPTQVGKKAGKM:MSLMVSAGRGLGAVWSPTHVQVTVLQARGLRAKGPGGTSDAYAVIQVGKEKYATSVSERSLGAPVWREEA TFELPSLLSSGPAAAATLQLTVLHRALLGLDKFLGRAEVDLRDLHRDQGRRKTQWYKLKSKPGKKDKERG EIEVDIQFMRNNMTASMFDLSMKDKSRNPFGKLKDKIKGKNKDSGSDTASAIIPSTTPSVDSDDESVVKD KKKKSKIKTLLSKSNLQKTPLSQSMSVLPTSKPEKVLLRPGDFQSQWDEDDNEDESSSASDVMSHKRTAS TDLKQLNQVNFTLPKKEGLSFLGGLRSKNDVLSRSNVCINGNHVYLEQPEAKGEIKDSSPSSSPSPKGFR KKHLFSSTENLAAGSWKEPAEGGGLSSDRQLSESSTKDSLKSMTLPSYRPAPLVSGDLRENMAPANSEAT KEAKESKKPESRRSSLLSLMTGKKDVAKGSEGENPLTVPGREKEGMLMGVKPGEDASGPAEDLVRRSEKD TAAVVSRQGSSLNLFEDVQITEPEAEPESKSEPRPPISSPRAPQTRAVKPRLHPVKPMNAMATKVANCSL GTATIISENLNNEVMMKKYSPSDPAFAYAQLTHDELIQLVLKQKETISKKEFQVRELEDYIDNLLVRVME ETPNILRIPTQVGKKAGKM' #@param {type:"string"}
#@markdown - Use : to specify inter-protein chainbreaks for modeling complexes (supports homo- and hetro-oligomers). For example PI...SK:PI...SK for a homodimer
jobname = 'RCP Homodimer Prediction Attempt 4' #@param {type:"string"}

number of models to use

num_relax = 1 #@param [0, 1, 5] {type:"raw"}
#@markdown - specify how many of the top ranked structures to relax using amber
template_mode = "none" #@param ["none", "pdb100","custom"]
#@markdown - none = no template information is used. pdb100 = detect templates in pdb100 (see notes). custom - upload and search own templates (PDB or mmCIF format, see notes)

use_amber = num_relax > 0

remove whitespaces

query_sequence = "".join(query_sequence.split())

basejobname = "".join(jobname.split())
basejobname = re.sub(r'\W+', '', basejobname)
jobname = add_hash(basejobname, query_sequence)

check if directory with jobname exists

def check(folder):
if os.path.exists(folder):
return False
else:
return True
if not check(jobname):
n = 0
while not check(f"{jobname}{n}"): n += 1
jobname = f"{jobname}
{n}"

make directory to save results

os.makedirs(jobname, exist_ok=True)

save queries

queries_path = os.path.join(jobname, f"{jobname}.csv")
with open(queries_path, "w") as text_file:
text_file.write(f"id,sequence\n{jobname},{query_sequence}")

if template_mode == "pdb100":
use_templates = True
custom_template_path = None
elif template_mode == "custom":
custom_template_path = os.path.join(jobname,f"template")
os.makedirs(custom_template_path, exist_ok=True)
uploaded = files.upload()
use_templates = True
for fn in uploaded.keys():
os.rename(fn,os.path.join(custom_template_path,fn))
else:
custom_template_path = None
use_templates = False

print("jobname",jobname)
print("sequence",query_sequence)
print("length",len(query_sequence.replace(":","")))

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the supplied Colab notebook code and reproduce the hosted T4 run using the homodimer sequence and num_relax=1. Inspect the reranking step where the simtk.openmm warning appears; done means establishing whether this warning causes the run to stop and identifying the expected reranking outcome.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter-notebook, python
Domain
bioinformatics, machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.