sokrypton / sokrypton/ColabFold
"Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead." error code when ranking predicted structures of dimer
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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