# Molclaw Protein Structure Retrieve

> Retrieve and download a protein structure file (.pdb or .cif) using a gene name, UniProt ID, or PDB ID.

- Skill: `internscience/molclaw-protein-structure-retrieve` (Agent Skill)
- Install (CLI): `npx skillmds@latest add internscience/molclaw-protein-structure-retrieve`
- Raw SKILL.md: https://api.skillmd.com/api/skills/internscience/molclaw-protein-structure-retrieve/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT license
- Author: internscience (https://skillmd.com/u/internscience)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/internscience/molclaw-protein-structure-retrieve

---


# Retrieve Protein Structure 

Note: 
- Local files are not directly accessible by the server. Please upload them to the server using `molclaw-file-transfer` before execution. 
- For PDB file inputs, it is recommended to preprocess them using `molclaw-pdbfixer` before execution.
- Please refer to skill `molclaw-scp-server` to complete tool invocation.

**Scene 1**: If the **gene name** is provided, please use tool *retrieve_protein_structure_by_gene_name*.

The description of tool *retrieve_protein_structure_by_gene_name*.

```tex
Retrieve and download a protein structure (.pdb or .cif) using a standard gene name.
Args:
    gene_name (str): Input gene name (e.g., 'TP53')
    organism (str): Required species NCBI Taxonomy ID (use 9606 for human or 10090 for mouse)
    sort_by (str): Required sorting strategy: 'length' prioritizes sequence coverage; 'resolution' prioritizes structural resolution.
Return:
    status (str): success/error
    msg (str): message
    prot_structure_path (str): Path to the downloaded .pdb or .cif structure file
```

How to use tool *retrieve_protein_structure_by_gene_name* :

```python
response = await client.session.call_tool(
    "retrieve_protein_structure_by_gene_name",
    arguments={
        "gene_name": gene_name,
        "organism": "9606",
        "sort_by": "length"
    }
)
result = client.parse_result(response)
prot_structure_path = result["prot_structure_path"]
```

**Scene 2**: If the **UniProt ID** is provided, please use tool *retrieve_protein_structure_by_uniprot_id*.

The description of tool *retrieve_protein_structure_by_uniprot_id*.

```tex
Retrieve and download a protein structure (.pdb or .cif) using a UniProt ID.
Args:
    uniprot_id (str): Input uniprot id (e.g., 'P04637')
    sort_by (str): Required sorting strategy: 'length' prioritizes sequence coverage; 'resolution' prioritizes structural resolution.
Return:
    status (str): success/error
    msg (str): message
    prot_structure_path (str): Path to the downloaded .pdb or .cif structure file
```

How to use tool *retrieve_protein_structure_by_uniprot_id* :

```python
response = await client.session.call_tool(
    "retrieve_protein_structure_by_uniprot_id",
    arguments={
        "uniprot_id": uniprot_id,
        "sort_by": "length"
    }
)
result = client.parse_result(response)
prot_structure_path = result["prot_structure_path"]
```

**Scene 3**: If the **PDB ID** is provided, please use tool *retrieve_protein_structure_by_pdb_id*.

The description of tool *retrieve_protein_structure_by_pdb_id*.

```tex
Retrieve and download a protein structure using a PDB ID. The service tries .pdb first and automatically falls back to .cif when needed.
Args:
    pdb_id (str): Input pdb id (e.g., "2l3r", "5XYF")
Return:
    status (str): success/error
    msg (str): message
    prot_structure_path (str): Path to the downloaded .pdb or fallback .cif structure file
```

How to use tool *retrieve_protein_structure_by_pdb_id* :

```python
response = await client.session.call_tool(
    "retrieve_protein_structure_by_pdb_id",
    arguments={
        "pdb_id": pdb_id
    }
)
result = client.parse_result(response)
prot_structure_path = result["prot_structure_path"]
```

