Pymol Visualization
ChatMol/ChatMol
Generate publication-quality molecular visualization images using PyMOL.
Run and analyze molecular dynamics simulations with OpenMM and MDAnalysis.
$ npx skills add LeonChaoX/qinyan-academic-skills --skill molecular-dynamics -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeonChaoX/qinyan-academic-skills molecular-dynamics --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeonChaoX/qinyan-academic-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/'skills/06-化学信息与药物发现/molecular-dynamics' .claude/skills/molecular-dynamics && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "molecular-dynamics" agent skill from https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/06-%E5%8C%96%E5%AD%A6%E4%BF%A1%E6%81%AF%E4%B8%8E%E8%8D%AF%E7%89%A9%E5%8F%91%E7%8E%B0/molecular-dynamics into .claude/skills/molecular-dynamics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "molecular-dynamics", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/06-%E5%8C%96%E5%AD%A6%E4%BF%A1%E6%81%AF%E4%B8%8E%E8%8D%AF%E7%89%A9%E5%8F%91%E7%8E%B0/molecular-dynamicsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeonChaoX/qinyan-academic-skills --skill molecular-dynamics -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeonChaoX/qinyan-academic-skills molecular-dynamics --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeonChaoX/qinyan-academic-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/'skills/06-化学信息与药物发现/molecular-dynamics' .agents/skills/molecular-dynamics && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "molecular-dynamics" agent skill from https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/06-%E5%8C%96%E5%AD%A6%E4%BF%A1%E6%81%AF%E4%B8%8E%E8%8D%AF%E7%89%A9%E5%8F%91%E7%8E%B0/molecular-dynamics into .agents/skills/molecular-dynamics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "molecular-dynamics", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeonChaoX/qinyan-academic-skills --skill molecular-dynamics -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeonChaoX/qinyan-academic-skills molecular-dynamics --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeonChaoX/qinyan-academic-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/'skills/06-化学信息与药物发现/molecular-dynamics' .cursor/skills/molecular-dynamics && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "molecular-dynamics" agent skill from https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/06-%E5%8C%96%E5%AD%A6%E4%BF%A1%E6%81%AF%E4%B8%8E%E8%8D%AF%E7%89%A9%E5%8F%91%E7%8E%B0/molecular-dynamics into .cursor/skills/molecular-dynamics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "molecular-dynamics", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeonChaoX/qinyan-academic-skills.git --path 'skills/06-化学信息与药物发现/molecular-dynamics'--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeonChaoX/qinyan-academic-skills --skill molecular-dynamics -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeonChaoX/qinyan-academic-skills molecular-dynamics --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeonChaoX/qinyan-academic-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/'skills/06-化学信息与药物发现/molecular-dynamics' .gemini/skills/molecular-dynamics && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "molecular-dynamics" agent skill from https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/06-%E5%8C%96%E5%AD%A6%E4%BF%A1%E6%81%AF%E4%B8%8E%E8%8D%AF%E7%89%A9%E5%8F%91%E7%8E%B0/molecular-dynamics into .gemini/skills/molecular-dynamics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "molecular-dynamics", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeonChaoX/qinyan-academic-skills molecular-dynamicsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeonChaoX/qinyan-academic-skills --skill molecular-dynamics -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeonChaoX/qinyan-academic-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/'skills/06-化学信息与药物发现/molecular-dynamics' .github/skills/molecular-dynamics && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "molecular-dynamics" agent skill from https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/06-%E5%8C%96%E5%AD%A6%E4%BF%A1%E6%81%AF%E4%B8%8E%E8%8D%AF%E7%89%A9%E5%8F%91%E7%8E%B0/molecular-dynamics into .github/skills/molecular-dynamics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "molecular-dynamics", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeonChaoX/qinyan-academic-skills --skill molecular-dynamics -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeonChaoX/qinyan-academic-skills molecular-dynamics --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeonChaoX/qinyan-academic-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/'skills/06-化学信息与药物发现/molecular-dynamics' .opencode/skills/molecular-dynamics && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "molecular-dynamics" agent skill from https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/06-%E5%8C%96%E5%AD%A6%E4%BF%A1%E6%81%AF%E4%B8%8E%E8%8D%AF%E7%89%A9%E5%8F%91%E7%8E%B0/molecular-dynamics into .opencode/skills/molecular-dynamics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "molecular-dynamics", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
molecular-dynamicsRun and analyze molecular dynamics simulations with OpenMM and MDAnalysis.
Molecular Dynamics is an agent skill from LeonChaoX/qinyan-academic-skills. Run and analyze molecular dynamics simulations with OpenMM and MDAnalysis. Set up protein/small molecule systems, define force fields, run energy minimization and production MD, analyze trajectories (RMSD, RMSF, contact maps, free energy surfaces). For structural biology, drug binding, and biophysics.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/mdanalysis_analysis.md`).
It sits in Research & Science, covering Physical and earth sciences and Protein structure and design. The repository describes itself as: A curated, multilingual library of 182 installable AI agent skills for end-to-end academic research—spanning literature discovery, scientific writing, grant development… The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit df5a498. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
condapipFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
openmm.orgmdanalysis.orgdocs.mdanalysis.orgmanual.gromacs.orgks.uiuc.educharmm-gui.orgambermd.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Molecular Dynamics loads about 3.7k tokens when it runs, and up to ~5.1k if it reads all its reference files. Until then it costs about 80 tokens; SKILL.md has 362 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LeonChaoX/qinyan-academic-skills at commit df5a498, republished under its MIT licence (© LeonChaoX). 362 words, ~3,671 tokens.
.claude/skills/molecular-dynamics/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Molecular dynamics (MD) simulation computationally models the time evolution of molecular systems by integrating Newton's equations of motion. This skill covers two complementary tools:
Installation:
conda install -c conda-forge openmm mdanalysis nglview
# or
pip install openmm mdanalysisUse molecular dynamics when:
from openmm.app import *
from openmm import *
from openmm.unit import *
import sys
def prepare_system_from_pdb(pdb_file, forcefield_name="amber14-all.xml",
water_model="amber14/tip3pfb.xml"):
"""
Prepare an OpenMM system from a PDB file.
Args:
pdb_file: Path to cleaned PDB file (use PDBFixer for raw PDB files)
forcefield_name: Force field XML file
water_model: Water model XML file
Returns:
pdb, forcefield, system, topology
"""
# Load PDB
pdb = PDBFile(pdb_file)
# Load force field
forcefield = ForceField(forcefield_name, water_model)
# Add hydrogens and solvate
modeller = Modeller(pdb.topology, pdb.positions)
modeller.addHydrogens(forcefield)
# Add solvent box (10 Å padding, 150 mM NaCl)
modeller.addSolvent(
forcefield,
model='tip3p',
padding=10*angstroms,
ionicStrength=0.15*molar
)
print(f"System: {modeller.topology.getNumAtoms()} atoms, "
f"{modeller.topology.getNumResidues()} residues")
# Create system
system = forcefield.createSystem(
modeller.topology,
nonbondedMethod=PME, # Particle Mesh Ewald for long-range electrostatics
nonbondedCutoff=1.0*nanometer,
constraints=HBonds, # Constrain hydrogen bonds (allows 2 fs timestep)
rigidWater=True,
ewaldErrorTolerance=0.0005
)
return modeller, systemfrom openmm.app import *
from openmm import *
from openmm.unit import *
def minimize_energy(modeller, system, output_pdb="minimized.pdb",
max_iterations=1000, tolerance=10.0):
"""
Energy minimize the system to remove steric clashes.
Args:
modeller: Modeller object with topology and positions
system: OpenMM System
output_pdb: Path to save minimized structure
max_iterations: Maximum minimization steps
tolerance: Convergence criterion in kJ/mol/nm
Returns:
simulation object with minimized positions
"""
# Set up integrator (doesn't matter for minimization)
integrator = LangevinMiddleIntegrator(300*kelvin, 1/picosecond, 0.004*picoseconds)
# Create simulation
# Use GPU if available (CUDA or OpenCL), fall back to CPU
try:
platform = Platform.getPlatformByName('CUDA')
properties = {'DeviceIndex': '0', 'Precision': 'mixed'}
except Exception:
try:
platform = Platform.getPlatformByName('OpenCL')
properties = {}
except Exception:
platform = Platform.getPlatformByName('CPU')
properties = {}
simulation = Simulation(
modeller.topology, system, integrator,
platform, properties
)
simulation.context.setPositions(modeller.positions)
# Check initial energy
state = simulation.context.getState(getEnergy=True)
print(f"Initial energy: {state.getPotentialEnergy()}")
# Minimize
simulation.minimizeEnergy(
tolerance=tolerance*kilojoules_per_mole/nanometer,
maxIterations=max_iterations
)
state = simulation.context.getState(getEnergy=True, getPositions=True)
print(f"Minimized energy: {state.getPotentialEnergy()}")
# Save minimized structure
with open(output_pdb, 'w') as f:
PDBFile.writeFile(simulation.topology, state.getPositions(), f)
return simulationfrom openmm.app import *
from openmm import *
from openmm.unit import *
def run_nvt_equilibration(simulation, n_steps=50000, temperature=300,
report_interval=1000, output_prefix="nvt"):
"""
NVT equilibration: constant N, V, T.
Equilibrate velocities to target temperature.
Args:
simulation: OpenMM Simulation (after minimization)
n_steps: Number of MD steps (50000 × 2fs = 100 ps)
temperature: Temperature in Kelvin
report_interval: Steps between data reports
output_prefix: File prefix for trajectory and log
"""
# Add position restraints for backbone during NVT
# (Optional: restraint heavy atoms)
# Set temperature
simulation.context.setVelocitiesToTemperature(temperature*kelvin)
# Add reporters
simulation.reporters = []
# Log file
simulation.reporters.append(
StateDataReporter(
f"{output_prefix}_log.txt",
report_interval,
step=True,
potentialEnergy=True,
kineticEnergy=True,
temperature=True,
volume=True,
speed=True
)
)
# DCD trajectory (compact binary format)
simulation.reporters.append(
DCDReporter(f"{output_prefix}_traj.dcd", report_interval)
)
print(f"Running NVT equilibration: {n_steps} steps ({n_steps*2/1000:.1f} ps)")
simulation.step(n_steps)
print("NVT equilibration complete")
return simulationdef run_npt_production(simulation, n_steps=500000, temperature=300, pressure=1.0,
report_interval=5000, output_prefix="npt"):
"""
NPT production run: constant N, P, T.
Args:
n_steps: Production steps (500000 × 2fs = 1 ns)
temperature: Temperature in Kelvin
pressure: Pressure in bar
report_interval: Steps between reports
"""
# Add Monte Carlo barostat for pressure control
system = simulation.context.getSystem()
system.addForce(MonteCarloBarostat(pressure*bar, temperature*kelvin, 25))
simulation.context.reinitialize(preserveState=True)
# Update reporters
simulation.reporters = []
simulation.reporters.append(
StateDataReporter(
f"{output_prefix}_log.txt",
report_interval,
step=True,
potentialEnergy=True,
temperature=True,
density=True,
speed=True
)
)
simulation.reporters.append(
DCDReporter(f"{output_prefix}_traj.dcd", report_interval)
)
# Save checkpoints
simulation.reporters.append(
CheckpointReporter(f"{output_prefix}_checkpoint.chk", 50000)
)
print(f"Running NPT production: {n_steps} steps ({n_steps*2/1000000:.2f} ns)")
simulation.step(n_steps)
print("Production MD complete")
return simulationimport MDAnalysis as mda
from MDAnalysis.analysis import rms, align, contacts
import numpy as np
import matplotlib.pyplot as plt
def load_trajectory(topology_file, trajectory_file):
"""
Load an MD trajectory with MDAnalysis.
Args:
topology_file: PDB, PSF, or other topology file
trajectory_file: DCD, XTC, TRR, or other trajectory
"""
u = mda.Universe(topology_file, trajectory_file)
print(f"Universe: {u.atoms.n_atoms} atoms, {u.trajectory.n_frames} frames")
print(f"Time range: 0 to {u.trajectory.totaltime:.0f} ps")
return udef compute_rmsd(u, selection="backbone", reference_frame=0):
"""
Compute RMSD of selected atoms relative to reference frame.
Args:
u: MDAnalysis Universe
selection: Atom selection string (MDAnalysis syntax)
reference_frame: Frame index for reference structure
Returns:
numpy array of (time, rmsd) values
"""
# Align trajectory to minimize RMSD
aligner = align.AlignTraj(u, u, select=selection, in_memory=True)
aligner.run()
# Compute RMSD
R = rms.RMSD(u, select=selection, ref_frame=reference_frame)
R.run()
rmsd_data = R.results.rmsd # columns: frame, time, RMSD
return rmsd_data
def plot_rmsd(rmsd_data, title="RMSD over time", output_file="rmsd.png"):
"""Plot RMSD over simulation time."""
fig, ax = plt.subplots(figsize=(10, 4))
ax.plot(rmsd_data[:, 1] / 1000, rmsd_data[:, 2], 'b-', linewidth=0.5)
ax.set_xlabel("Time (ns)")
ax.set_ylabel("RMSD (Å)")
ax.set_title(title)
ax.axhline(rmsd_data[:, 2].mean(), color='r', linestyle='--',
label=f'Mean: {rmsd_data[:, 2].mean():.2f} Å')
ax.legend()
plt.tight_layout()
plt.savefig(output_file, dpi=150)
return figdef compute_rmsf(u, selection="backbone", start_frame=0):
"""
Compute per-residue RMSF (flexibility).
Returns:
resids, rmsf_values arrays
"""
# Select atoms
atoms = u.select_atoms(selection)
# Compute RMSF
R = rms.RMSF(atoms)
R.run(start=start_frame)
# Average by residue
resids = []
rmsf_per_res = []
for res in u.select_atoms(selection).residues:
res_atoms = res.atoms.intersection(atoms)
if len(res_atoms) > 0:
resids.append(res.resid)
rmsf_per_res.append(R.results.rmsf[res_atoms.indices].mean())
return np.array(resids), np.array(rmsf_per_res)def analyze_contacts(u, protein_sel="protein", ligand_sel="resname LIG",
radius=4.5, start_frame=0):
"""
Track protein-ligand contacts over trajectory.
Args:
radius: Contact distance cutoff in Angstroms
"""
protein = u.select_atoms(protein_sel)
ligand = u.select_atoms(ligand_sel)
contact_frames = []
for ts in u.trajectory[start_frame:]:
# Find protein atoms within radius of ligand
distances = contacts.contact_matrix(
protein.positions, ligand.positions, radius
)
contact_residues = set()
for i in range(distances.shape[0]):
if distances[i].any():
contact_residues.add(protein.atoms[i].resid)
contact_frames.append(contact_residues)
return contact_frames| System | Recommended Force Field | Water Model |
|---|---|---|
| Standard proteins | AMBER14 (amber14-all.xml) | TIP3P-FB |
| Proteins + small molecules | AMBER14 + GAFF2 | TIP3P-FB |
| Membrane proteins | CHARMM36m | TIP3P |
| Nucleic acids | AMBER99-bsc1 or AMBER14 | TIP3P |
| Disordered proteins | ff19SB or CHARMM36m | TIP3P |
from pdbfixer import PDBFixer
from openmm.app import PDBFile
def fix_pdb(input_pdb, output_pdb, ph=7.0):
"""Fix common PDB issues: missing residues, atoms, add H, standardize."""
fixer = PDBFixer(filename=input_pdb)
fixer.findMissingResidues()
fixer.findNonstandardResidues()
fixer.replaceNonstandardResidues()
fixer.removeHeterogens(True) # Remove water/ligands
fixer.findMissingAtoms()
fixer.addMissingAtoms()
fixer.addMissingHydrogens(ph)
with open(output_pdb, 'w') as f:
PDBFile.writeFile(fixer.topology, fixer.positions, f)
return output_pdb# For ligand parameterization, use OpenFF toolkit or ACPYPE
# pip install openff-toolkit
from openff.toolkit import Molecule, ForceField as OFFForceField
from openff.interchange import Interchange
def parameterize_ligand(smiles, ff_name="openff-2.0.0.offxml"):
"""Generate GAFF2/OpenFF parameters for a small molecule."""
mol = Molecule.from_smiles(smiles)
mol.generate_conformers(n_conformers=1)
off_ff = OFFForceField(ff_name)
interchange = off_ff.create_interchange(mol.to_topology())
return interchange© LeonChaoX, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/06-化学信息与药物发现/molecular-dynamics of LeonChaoX/qinyan-academic-skills.
Open the folder on GitHubat commit df5a498
We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in LeonChaoX/qinyan-academic-skills, which our catalogue first saw on October 9, 2026.
Molecular Dynamics next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Molecular Dynamics this skillLeonChaoX/qinyan-academic-skills | 944 | 2 repos | ~3.7k | Automated safety check: Pass | MIT | |
| Pymol VisualizationChatMol/ChatMol | 373 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Pymolgoogle-deepmind/science-skills | 3.2k | 2 repos | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Hugging ScienceK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~2.9k | Automated safety check: Notes | MIT | |
| TamarindK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~3.4k | Automated safety check: Pass | MIT | |
| Molecular DynamicsK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~4.7k | Automated safety check: Pass | MIT |
ChatMol/ChatMol
Generate publication-quality molecular visualization images using PyMOL.
google-deepmind/science-skills
Visualize, analyze, and render protein and molecular structures using PyMOL.
K-Dense-AI/scientific-agent-skills
Discovers and evaluates scientific datasets, models, methodology posts, and Spaces through the Hugging Science catalog.
K-Dense-AI/scientific-agent-skills
Provides access to a collection of open-source molecular design and structural biology tools on the Tamarind Bio platform, via its REST API or MCP server — no local GPUs required.
K-Dense-AI/scientific-agent-skills
Runs and analyzes molecular dynamics simulations with OpenMM and MDAnalysis.
GPTomics/bioSkills
Prepares a deposited or predicted structure for docking, molecular dynamics, or electrostatics by adding hydrogens, assigning protonation and tautomer states, and filling missing atoms and short…
LeonChaoX/qinyan-academic-skills
Generate professional slide deck images from academic papers and content.
LeonChaoX/qinyan-academic-skills
Search the web, extract URL content, and run deep research using the Parallel Chat API and Extract API.
LeonChaoX/qinyan-academic-skills
Generate academic research proposals for PhD applications. An agent skill from LeonChaoX/qinyan-academic-skills.
LeonChaoX/qinyan-academic-skills
Write comprehensive literature reviews for medical imaging AI research.
LeonChaoX/qinyan-academic-skills
Query the Cancer Dependency Map (DepMap) for cancer cell line gene dependency scores (CRISPR Chronos), drug sensitivity data, and gene effect profiles.
LeonChaoX/qinyan-academic-skills
Build and analyze phylogenetic trees using MAFFT (multiple alignment), IQ-TREE 2 (maximum likelihood), and FastTree (fast NJ/ML).
Categories
Run and analyze molecular dynamics simulations with OpenMM and MDAnalysis. Molecular Dynamics is an agent skill from LeonChaoX/qinyan-academic-skills. Run and analyze molecular dynamics simulations with OpenMM and MDAnalysis.
Molecular Dynamics fits situations like: tasks that involve Physical and earth sciences; tasks that involve Protein structure and design.
Run `npx skills add LeonChaoX/qinyan-academic-skills --skill molecular-dynamics -a claude-code`. Or copy the skill folder (skills/06-化学信息与药物发现/molecular-dynamics in LeonChaoX/qinyan-academic-skills) into .claude/skills/molecular-dynamics in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeonChaoX/qinyan-academic-skills --skill molecular-dynamics -a codex`. Or copy the skill folder (skills/06-化学信息与药物发现/molecular-dynamics in LeonChaoX/qinyan-academic-skills) into .agents/skills/molecular-dynamics in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeonChaoX/qinyan-academic-skills --skill molecular-dynamics -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/molecular-dynamics, .gemini/skills/molecular-dynamics, .github/skills/molecular-dynamics and .opencode/skills/molecular-dynamics in your project.
Going by SKILL.md and its folder, Molecular Dynamics needs the command-line tools its instructions call (conda and pip). Our summary lists: Python 3.
SKILL.md names 7 domains. As links in the text: openmm.org, mdanalysis.org, docs.mdanalysis.org, manual.gromacs.org, ks.uiuc.edu, charmm-gui.org and ambermd.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Molecular Dynamics is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Molecular Dynamics: Pymol Visualization (ChatMol/ChatMol, 373 stars), Pymol (google-deepmind/science-skills, 3.2k stars), Hugging Science (K-Dense-AI/scientific-agent-skills, 48k stars) and Tamarind (K-Dense-AI/scientific-agent-skills, 48k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeonChaoX (a GitHub user) maintains it in LeonChaoX/qinyan-academic-skills, which has 944 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeonChaoX/qinyan-academic-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.