sciagent-skill-creator
Scaffold a new SciAgent-Skills entry. Picks pipeline/toolkit/database/guide template, creates skills/{category}/{name}/SKILL.md…
MaxQuant + Perseus proteomics pipeline: run MaxQuant for LFQ and SILAC; parse proteinGroups.txt in Python; filter contaminants/decoys; log2 + median-normalize; impute MNAR; t-test with FDR; volcano plot; GO/pathway enrichment. Use Proteome Discoverer for Thermo-native
Claude Code
$ npx -y skills add jaechang-hits/SciAgent-Skills --skill maxquant-proteomics --agent claude-code
Codex
$ npx skills add jaechang-hits/SciAgent-Skills --skill maxquant-proteomics -a codex -y
Cursor
$ npx skills add jaechang-hits/SciAgent-Skills --skill maxquant-proteomics -a cursor -y
Gemini CLI
$ npx skills add jaechang-hits/SciAgent-Skills --skill maxquant-proteomics -a gemini-cli -y
GitHub Copilot
$ npx skills add jaechang-hits/SciAgent-Skills --skill maxquant-proteomics -a github-copilot -y
OpenCode
$ npx skills add jaechang-hits/SciAgent-Skills --skill maxquant-proteomics -a opencode -y
Windsurf
$ npx skills add jaechang-hits/SciAgent-Skills --skill maxquant-proteomics -a windsurf -y
name: "maxquant-proteomics" description: "MaxQuant + Perseus proteomics pipeline: run MaxQuant for LFQ and SILAC; parse proteinGroups.txt in Python; filter contaminants/decoys; log2 + median-normalize; impute MNAR; t-test with FDR; volcano plot; GO/pathway enrichment. Use Proteome Discoverer for Thermo-native processing; FragPipe/MSFragger for GPU-accelerated DB search." license: "Apache-2.0"
MaxQuant is the community-standard software for label-free quantification (LFQ) and SILAC proteomics. It performs database search, protein grouping, and intensity-based quantification from raw LC-MS/MS files, producing `proteinGroups.txt` as the primary output. Downstream statistical analysis — filtering, normalization, imputation, differential abundance testing, and visualization — is performed in Python using pandas, scipy, and matplotlib/seaborn, mirroring the Perseus workflow in a reproducible scripting environment.
pip install pandas numpy scipy matplotlib seaborn statsmodels gseapy
# Install pyMaxQuant for programmatic mqpar.xml configuration pip install pymaxquant
Settle these with the user before writing any analysis code.
decisions:
- id: D1
param: quantificationStrategy
kind: required
source: user
ask: "How were samples quantified - label-free, SILAC, or isobaric tags?"
default: null
- id: D2
param: proteinSequenceDatabase
kind: required
source: user
ask: "Which organism's protein FASTA, and which release, should spectra be searched against?"
default: null
- id: D3
param: digestionEnzyme
kind: required
source: user
ask: "Which protease was used, and how many missed cleavages should be allowed?"
default: "trypsin, up to 2 missed cleavages"
- id: D4
param: modifications
kind: required
source: user
ask: "Which modifications are fixed, and which variable - and is there an enrichment such as phospho to search for?"
default: "fixed carbamidomethyl on cysteine; variable oxidation and N-terminal acetylation"
- id: D5
param: falseDiscoveryRates
kind: required
source: user
ask: "What false-discovery rate should peptide and protein identifications be held to?"
default: "1% at both levels"
- id: D6
param: matchBetweenRuns
kind: required
source: user
depends_on: [D1]
ask: "Should identifications be transferred between runs by retention time, recovering more proteins at the cost of some transferred errors?"
default: "off"
- id: D7
param: lfqMinRatioCount
kind: optional
source: user
depends_on: [D1]
ask: "How many shared peptides must two samples have before their abundances are normalized against each other?"
default: 2
skip_if: "labelled quantification"
- id: D8
param: missingValueImputation
kind: required
source: user
ask: "How should proteins missing from a sample be treated - left missing, or imputed as below the detection limit?"
default: "imputed from a downshifted distribution"
- id: D9
param: differentialThresholds
kind: required
source: user
ask: "What significance and fold-change cuts define a changed protein?"
default: "FDR 0.05, log2 fold change 1.0"D8 is where proteomics differs from RNA-seq and where results most often turn on an unexamined default. A protein absent from every control and present in every treated sample is the strongest possible result or an artefact of detection limits, and the imputation choice decides which one the volcano plot shows. D6 interacts with it: transferred identifications fill in exactly the values that would otherwise be imputed.
import pandas as pd
import numpy as np
# Load MaxQuant output
df = pd.read_csv("combined/txt/proteinGroups.txt", sep="\t", low_memory=False)
print(f"Raw protein groups: {len(df)}")
# Filter contaminants, reverse decoys, only-by-site
mask = (
(df["Potential contaminant"] != "+") &
(df["Reverse"] != "+") &
(df["Only identified by site"] != "+")
)
df = df[mask].copy()
print(f"After filtering: {len(df)} protein groups")
# Extract LFQ intensity columns
lfq_cols = [c for c in df.columns if c.startswith("LFQ intensity ")]
print(f"LFQ columns: {lfq_cols}")
# Log2-transform (0 → NaN)Turn your AI coding agent into a life sciences expert — 199 bioinformatics skills for Claude Code covering RNA-seq, single-cell analysis, genomics, proteomics, drug discovery, and more. Boosted BixBench from 65% to 92%. Open source.
Scaffold a new SciAgent-Skills entry. Picks pipeline/toolkit/database/guide template, creates skills/{category}/{name}/SKILL.md…
Bayesian modeling with PyMC 5: priors, likelihood, NUTS/ADVI sampling, diagnostics (R-hat, ESS), LOO/WAIC comparison, prediction.…
Time-to-event modeling with scikit-survival: Cox PH (elastic net), Random Survival Forests, Boosting, SVMs for censored data.…
Guided statistical analysis: test choice, assumption checks, effect sizes, power, APA reporting. Pick tests, verify assumptions,…
Python statistical modeling: regression (OLS, WLS, GLM), discrete (Logit, Poisson, NegBin), time series (ARIMA, SARIMAX, VAR),…
DL cell/nucleus segmentation for fluorescence and brightfield microscopy. Pre-trained models (cyto3, nuclei, tissuenet) and a…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.