OpenClaw-Medical-Skills foldseek

install
source · Clone the upstream repo
git clone https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/foldseek" ~/.claude/skills/freedomintelligence-openclaw-medical-skills-foldseek && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/FreedomIntelligence/OpenClaw-Medical-Skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/foldseek" ~/.openclaw/skills/freedomintelligence-openclaw-medical-skills-foldseek && rm -rf "$T"
manifest: skills/foldseek/SKILL.md
safety · automated scan (medium risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
  • shell exec via library
  • makes HTTP requests (curl)
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content

Foldseek Structure Search

Prerequisites

RequirementMinimumRecommended
Python3.8+3.10
RAM8GB16GB
Disk10GB50GB (for local databases)

How to run

Note: Foldseek can run locally or via web server. No GPU required.

Option 1: Web Server (Quick; rate-limited, use sparingly)

# Upload structure to web server
curl -X POST "https://search.foldseek.com/api/ticket" \
  -F "q=@query.pdb" \
  -F "database[]=afdb50" \
  -F "database[]=pdb100"

Option 2: Local installation

# Install Foldseek
conda install -c conda-forge -c bioconda foldseek

# Search PDB
foldseek easy-search query.pdb /path/to/pdb100 results.m8 tmp/

# Search AlphaFold DB
foldseek easy-search query.pdb /path/to/afdb50 results.m8 tmp/

Option 3: Python API

import subprocess
import pandas as pd

def foldseek_search(query_pdb, database, output="results.m8"):
    """Run Foldseek search."""
    subprocess.run([
        "foldseek", "easy-search",
        query_pdb, database, output, "tmp/",
        "--format-output", "query,target,pident,alnlen,evalue,bits"
    ])
    return pd.read_csv(output, sep="\t",
                       names=["query", "target", "pident", "alnlen", "evalue", "bits"])

Key parameters

ParameterDefaultDescription
--min-seq-id
0.0Minimum sequence identity
-e
0.001E-value threshold
--alignment-type
20=3Di, 1=TM, 2=3Di+AA
--max-seqs
300Max hits to pass through prefilter; reducing this affects sensitivity

Databases

DatabaseDescriptionSize
pdb100
PDB clustered at 100%~200K structures
afdb50
AlphaFold DB at 50%~67M structures
swissprot
SwissProt structures~500K structures
cath50
CATH domains~50K domains

Output format

# results.m8 (tabular)
query   target          pident  alnlen  evalue  bits
query   1abc_A          85.2    120     1e-45   180.5
query   2def_B          72.1    115     1e-32   145.2

Sample output

Successful run

$ foldseek easy-search query.pdb pdb100 results.m8 tmp/
[INFO] Loading database: pdb100 (194,527 entries)
[INFO] Searching...
[INFO] Found 127 hits

Top 5 hits:
1. 1abc_A - 85.2% identity, E=1e-45
2. 2def_B - 72.1% identity, E=1e-32
3. 3ghi_C - 68.5% identity, E=1e-28
4. 4jkl_A - 55.3% identity, E=1e-18
5. 5mno_B - 42.1% identity, E=1e-10

Decision tree

Should I use Foldseek?
│
├─ What are you searching?
│  ├─ By 3D structure → Foldseek ✓
│  ├─ By sequence → Use BLAST (uniprot skill)
│  └─ Both → Run both, compare results
│
└─ What do you need?
   ├─ Find structural homologs → Foldseek ✓
   ├─ Remote homolog detection → Foldseek ✓
   ├─ Structural clustering → Foldseek ✓
   └─ Functional annotation → Cross-reference with UniProt

Common use cases

Find similar designs

# Compare your design to PDB
foldseek easy-search design.pdb pdb100 similar_natural.m8 tmp/

Novelty check

# Ensure design is novel (low similarity to known)
foldseek easy-search design.pdb afdb50 novelty.m8 tmp/

# Novel if: top hit identity < 30%

Scaffold search

# Find scaffolds for motif grafting
foldseek easy-search motif.pdb pdb100 scaffolds.m8 tmp/ \
  --min-seq-id 0.0 -e 10

Verify

wc -l results.m8  # Number of hits

Troubleshooting

No hits: Lower e-value threshold, try larger database Too many hits: Increase min-seq-id threshold Slow search: Use smaller database

Error interpretation

ErrorCauseFix
Database not found
Wrong pathCheck database location
Invalid PDB
Malformed structureValidate PDB format
Out of memory
Large databaseUse more RAM or web server

Next: Download hits with

pdb
skill → use for scaffold design.