一键导入
molclaw-linker-sampling
Generate linker molecules connecting two warhead fragments, for applications such as PROTAC design, bivalent ligands, and fragment merging.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Generate linker molecules connecting two warhead fragments, for applications such as PROTAC design, bivalent ligands, and fragment merging.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Predict the ADMET (absorption, distribution, metabolism, excretion, and toxicity) properties of the input molecules.
Predict binding affinity between target protein sequence and small molecule SMILES using Boltz-2.
Predict protein structures with Chai-1 from sequence or FASTA input and return model scoring summaries.
Chroma toolkit skill covering chroma_monomer for single-chain generation, chroma_complex for multi-chain assembly generation, and chroma_symmetry for symmetry-constrained protein design.
Retrieve SMILES strings from PubChem database using compound names.
Generate entirely new drug-like molecules from scratch without any starting molecule, using REINVENT4's de novo prior.
| name | molclaw-linker-sampling |
| description | Generate linker molecules connecting two warhead fragments, for applications such as PROTAC design, bivalent ligands, and fragment merging. |
| license | MIT license |
| metadata | {"skill-author":"PJLab"} |
Use LinkInvent linker sampling when you have two molecular fragments (warheads) and need to generate linker structures connecting them. Common applications include PROTAC design, bivalent ligand construction, and fragment-based drug design.
Do NOT use when: you want to modify a complete molecule (use reinvent_mol2mol_sampling); you want to add R-groups to a scaffold (use libinvent_rgroup_sampling).
linkinvent_linker_sampling_by_warheads — Custom Warhead SMILESGenerate linker molecules connecting two user-specified warhead fragments.
Args:
warheads (str): SMILES of two warheads separated by '|'. Each warhead must contain exactly one '*' attachment point. Example: '*c1ccc(O)cc1|*N1CCNCC1'
n (int): Number of molecules to sample
filter_preset (str): Options: 'none', 'minimal', 'default', 'strict'. Default 'default'.
lipinski (bool): Default True. Set False for PROTACs (inherently large).
min_linker_atoms (int): Minimum heavy atoms in linker. 0 = no constraint. Default 0.
max_linker_atoms (int): Maximum heavy atoms in linker. 0 = no constraint. Default 0.
Return:
status (str): 'success' or 'error'
msg (str): Descriptive message
save_smiles_file (str): Path to saved CSV
output_smiles_list (List[str]): List of generated linked molecule SMILES
linkinvent_linker_sampling_by_warhead_pair_name — Predefined PairsGenerate linker molecules using a predefined warhead pair (no SMILES needed).
Args:
warhead_pair_name (str): Options:
- 'phenyl_phenyl', 'phenyl_pyridine', 'phenyl_piperidine',
- 'phenyl_morpholine', 'pyridine_morpholine', 'phenol_furan',
- 'indole_piperazine', 'thiophene_piperazine', 'benzamide_piperidine'
n (int): Number of molecules to sample
filter_preset (str): Default 'default'
lipinski (bool): Default True
min_linker_atoms (int): Default 0
max_linker_atoms (int): Default 0
Return:
Same as Tool 1
| Application | min_linker_atoms-max_linker_atoms | Rationale |
|---|---|---|
| Fragment merging | 1-5 | Short, rigid |
| Bivalent ligand | 3-8 | Moderate flexibility |
| PROTAC (CRBN-based) | 6-12 | Shorter preferred for CRBN |
| PROTAC (VHL-based) | 8-15 | Longer often needed |
# Custom warheads
response = await client.session.call_tool(
"linkinvent_linker_sampling_by_warheads",
arguments={
"warheads": "*c1ccc(O)cc1|*N1CCNCC1",
"n": 50, "lipinski": True, "filter_preset": "default",
"min_linker_atoms": 3, "max_linker_atoms": 8
}
)
# Predefined pair
response = await client.session.call_tool(
"linkinvent_linker_sampling_by_warhead_pair_name",
arguments={
"warhead_pair_name": "phenyl_piperidine",
"n": 50, "lipinski": False, "filter_preset": "default",
"min_linker_atoms": 6, "max_linker_atoms": 12
}
)
actual_count = len(result["output_smiles_list"])
If actual count < 70% of requested: Retry with looser filter_preset, wider linker atom range, or increased n.