skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
mims-harvard/tooluniverse226 installs

tooluniverse-protein-modification-analysis

Post-translational modification (PTM) analysis — phosphorylation, ubiquitination, acetylation, glycosylation, methylation. Uses iPTMnet (sites + enzymes), ProtVar (functional consequences), UniProt (baseline), STRING, ELM (linear motifs), MassIVE/ProteomeXchange (experimental), and the EBI Proteins API (mutagenesis, MS-proteomics/HPP peptide evidence, antigenic regions, genomic coordinates, protein-level variant lookup by accession/dbSNP/HGVS) as a cross-validation source. Use for PTM site annotation, kinase-substrate identification, and PTM-disease associations.

How do I install this agent skill?

npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-protein-modification-analysis
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill is a bioinformatics tool for analyzing protein modifications using scientific databases and standard Python libraries for data processing. No malicious patterns or security risks were identified.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

What does this agent skill do?

Protein Post-Translational Modification Analysis

Comprehensive PTM analysis using iPTMnet (primary), ProtVar (functional context), UniProt (baseline), STRING (interactions), ELM (linear motifs), and MassIVE/ProteomeXchange (experimental data).

LOOK UP DON'T GUESS

  • PTM sites/enzymes: iPTMnet_get_ptm_sites
  • Functional consequence: ProtVar_get_function + iPTMnet_get_ptm_ppi
  • Proteoforms: iPTMnet_get_proteoforms
  • Linear motifs: ELM_get_instances

COMPUTE, DON'T DESCRIBE

When analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.

Domain Reasoning

PTMs are context-dependent: same phosphorylation site can activate or inhibit depending on kinase and effectors. Always check: which enzyme, what functional consequence, in what cell context.


KEY PRINCIPLES

  1. Disambiguation first -- resolve to UniProt accession before iPTMnet calls
  2. iPTMnet is SOAP-style -- every call requires operation parameter
  3. Evidence-graded -- distinguish experimental (T1) from predicted (T4)
  4. English-first queries

Workflow

Phase 0: Protein Disambiguation → UniProt accession
Phase 1: PTM Site Inventory → iPTMnet_get_ptm_sites
Phase 2: Proteoform Analysis → iPTMnet_get_proteoforms
Phase 3: PTM-Dependent Interactions → iPTMnet_get_ptm_ppi
Phase 4: Functional Context → ProtVar_get_function at key sites
Phase 4b: Linear Motif Context → ELM_get_instances for SLiM overlap
Phase 4c: Experimental Data → MassIVE/ProteomeXchange
Phase 5: Synthesis & Report

Phase 0: Disambiguation

  • iPTMnet_search(operation="search", search_term="TP53", role="Substrate") -- find UniProt IDs
  • If user provides UniProt accession directly, use it
  • Select human entry if multiple hits

Phase 1: PTM Sites

iPTMnet_get_ptm_sites(operation="get_ptm_sites", uniprot_id="P04637") -- returns position, residue, modification type, enzyme, evidence. Group by modification type. Fallback: UniProt_get_entry_by_accession PTM annotations.

Phase 2: Proteoforms

iPTMnet_get_proteoforms(operation="get_proteoforms", uniprot_id=...) -- distinct PTM combinations. Focus on those with functional/disease annotations if >20.

Phase 3: PTM-Dependent Interactions

iPTMnet_get_ptm_ppi(operation="get_ptm_ppi", uniprot_id=...) -- interacting protein, PTM site, effect (enables/disrupts). Supplement with STRING_get_interaction_partners(identifiers=gene, species=9606, required_score=700).

Phase 4: Functional Context

ProtVar_get_function(accession=..., position=N, variant_aa=AA) -- domain, active site, binding site, conservation. Grade: active-site PTM > domain-core > disordered region.

Phase 4b: Linear Motifs (ELM)

ELM_get_instances(operation="get_instances", uniprot_id=..., motif_type="MOD") -- MOD = modification sites, DEG = degradation signals. Cross-reference with Phase 1 PTM positions. ELM_list_classes(operation="list_classes") for motif details.

Phase 4c: Experimental Data

MassIVE_search_datasets(species="9606"), MassIVE_get_dataset(accession="MSV...") for public MS datasets.

Phase 4d: EBI Proteins Cross-Validation (Structural, Antigenic, MS-Peptide Evidence)

src/tooluniverse/data/ebi_proteins_ext_tools.json provides 11 UniProt-accession-keyed tools from the EBI Proteins API — a second, independent evidence source to corroborate or extend the iPTMnet/ProtVar findings above, not a replacement for them:

ToolReturnsWhen to use
EBIProteins_get_mutagenesisExperimentally characterized point-mutation effects (gain/loss of function, binding/structural impact), UniProtKB-curated with literature evidenceCorroborate a PTM-adjacent residue's functional importance with direct mutagenesis evidence, independent of iPTMnet
EBIProteins_get_proteomics_ptmMS-evidence-backed PTM sites from PeptideAtlas/ProteomicsDB/MaxQB/EPDCross-check an iPTMnet PTM call against raw MS detection evidence — this is detection evidence, not curated/annotated PTM biology, so treat a hit here as "observed by MS" not "known to be functional"
EBIProteins_get_featuresConsolidated UniProt features by category (DOMAINS_AND_SITES, MOLECULE_PROCESSING, PTM, STRUCTURAL, TOPOLOGY, VARIANTS, MUTAGENESIS; default DOMAINS_AND_SITES)Get all UniProt-curated PTM annotations in one call via category="PTM" — a faster alternative to browsing full UniProt when only PTM feature rows are needed
EBIProteins_get_antigenPredicted antigenic regions with match-confidence scoresPTM sites near/inside an antigenic region can affect antibody binding — relevant when a PTM study feeds into antibody or immunoassay design
EBIProteins_get_coordinatesUniProt protein -> Ensembl gene/transcript ID, chromosome, strand, exon countMap a PTM residue position back to genomic coordinates for genome-browser cross-referencing
EBIProteins_get_proteomics_peptidesGeneric MS peptide-level detection evidence (position, uniqueness, source DB)Confirm a PTM-bearing region of the protein has actually been observed by mass spec at all, before trusting a PTM call there
EBIProteins_get_hpp_peptidesHuman Proteome Project peptide evidence — a stringent, typically larger evidence set than get_proteomics_peptides for the same accessionPrefer this over get_proteomics_peptides when the strongest available MS confirmation is needed (human proteins only)

Known broken (verified live, not a guess): EBIProteins_get_rna_editing returns HTTP 404 directly from https://www.ebi.ac.uk/proteins/api/rna_editing/... for both of its own documented example accessions (P42262, P28335), while the sibling mutagenesis endpoint on the same API returns 200 for the same host. This looks like EBI deprecated/removed the endpoint rather than a transient outage — re-verify with a direct tu run EBIProteins_get_rna_editing '{"accession": "..."}' before relying on it, and do not present RNA-editing results from this tool as available without that check.

Protein-level variant lookup (distinct from Phase 1-4 PTM tools, not duplicative of tooluniverse-variant-analysis's SPDI/HGVS/rsID notation conversion):

ToolReturnsWhen to use
EBIProteins_get_variationAll known variants for a UniProt accession, merged from COSMIC/ClinVar/gnomAD/ExAC/UniProt, with clinical significance and disease associations; filterable by source_type and disease_onlyWant every reported variant on a protein with disease context in one call
EBIProteins_get_variation_by_dbsnpReverse lookup: given a dbSNP rsID, every UniProt entry (incl. isoforms) carrying that variant, with the mapped protein-level consequenceHave an rsID, need to know which protein(s)/isoform(s) it affects and how — tooluniverse-variant-analysis's NCBIVariation_* tools convert rsID<->SPDI<->HGVS notation but do not resolve to a UniProt protein consequence the way this does
EBIProteins_get_variation_by_hgvsReverse lookup: given an HGVS genomic expression (NC_...:g....), every overlapping UniProt entry with the resulting protein-level consequenceHave a genomic HGVS change, need its amino-acid consequence across all affected isoforms in one call, rather than converting notation first and then looking up each protein separately

All 3 return multiple UniProt entries per query (isoforms, paralogs sharing the position) — always check total_entries/total_variants and report which specific entry/isoform a finding came from, don't assume the first entry is the canonical one.

Single-category shortcuts (verified identical data to EBIProteins_get_features): EBIProteins_get_domains_sites, EBIProteins_get_molecule_processing, and EBIProteins_get_structural_features each take a plain accession and return exactly the same feature list as EBIProteins_get_features(accession, category="DOMAINS_AND_SITES"|"MOLECULE_PROCESSING"|"STRUCTURAL") respectively — confirmed live on P04637, byte-for-byte the same 31 DOMAINS_AND_SITES features (minor field-naming difference only: the dedicated tool flattens evidences[].source/.id, the generic one nests source_name/source_id). Use the dedicated tool when you already know which single category you want (one fewer parameter); use EBIProteins_get_features when browsing multiple categories in a loop. EBIProteins_get_molecule_processing is the one to reach for on precursor proteins that get cleaved into a mature form — e.g. P01308 (insulin) returns signal peptide (1-24), B chain (25-54), C peptide (57-87), A chain (90-110).

Protein-to-genome coordinate mapping (two tools, more detail than the existing EBIProteins_get_coordinates summary above):

ToolDirectionReturns
EBIProteins_get_coordinate_mappingprotein → genomePer-exon residue-to-genomic-coordinate mapping across all transcript isoforms (chromosome, strand, exon boundaries) — exon-level detail that EBIProteins_get_coordinates (chromosome/strand/exon count only) doesn't give you
EBIProteins_get_proteins_by_genomic_locgenome → proteinReverse lookup: given taxonomy + location ("17:7676154", 1-based) or chromosome+position, every UniProt protein whose coding sequence overlaps that position, with the exact affected residue

Real example (verified live): EBIProteins_get_coordinate_mapping(accession="P04637") → TP53 maps to 6 transcripts on chromosome 17 (reverse strand), 10 exons, positions 7669612-7676594. The reverse direction confirms it: EBIProteins_get_proteins_by_genomic_loc(taxonomy="9606", location="17:7676154") → TP53 (P04637) at protein residue 72 (Pro) on transcript ENST00000923569 — use this when you have a chromosomal variant position and need to know which protein(s)/residue it hits, before running any PTM/functional analysis on that residue.

Epitopes (experimental, IEDB-sourced — distinct from EBIProteins_get_antigen's predicted antigenic regions): EBIProteins_get_epitopes(accession) returns experimentally-mapped immune epitope regions with sequence, PubMed evidence, and IEDB IDs — e.g. P04637 (TP53) has 62 mapped epitopes. Use this over EBIProteins_get_antigen when the question is "has this region actually been shown to trigger an immune response" rather than "does this region look antigenic by sequence pattern" — relevant for vaccine/antibody design questions that land in this skill via a PTM-and-antigenicity angle.


Evidence Grading

TierCriteria
T1PTM at validated active/binding site with functional data
T2PTM in structured domain with ProtVar annotation
T3Correlation data only (mass spec detection)
T4Predicted, no experimental validation

Tool Parameter Reference

ToolKey Params
iPTMnet_searchoperation="search", search_term, role
iPTMnet_get_ptm_sitesoperation="get_ptm_sites", uniprot_id
iPTMnet_get_proteoformsoperation="get_proteoforms", uniprot_id
iPTMnet_get_ptm_ppioperation="get_ptm_ppi", uniprot_id
ELM_get_instancesoperation="get_instances", uniprot_id, motif_type
ELM_list_classesoperation="list_classes"
MassIVE_search_datasetspage_size, species
EBIProteins_get_mutagenesis / _get_proteomics_ptm / _get_antigen / _get_coordinates / _get_proteomics_peptides / _get_hpp_peptides / _get_domains_sites / _get_molecule_processing / _get_structural_features / _get_epitopesaccession (UniProt)
EBIProteins_get_featuresaccession, category (default DOMAINS_AND_SITES)
EBIProteins_get_coordinate_mappingaccession (UniProt)
EBIProteins_get_proteins_by_genomic_loctaxonomy (default 9606), location ("chr:pos") or chromosome+position
EBIProteins_get_variationaccession, optional source_type, disease_only
EBIProteins_get_variation_by_dbsnpdbsnp_id (rsID)
EBIProteins_get_variation_by_hgvshgvs (genomic, NC_...:g....)

Critical: All iPTMnet and ELM tools require operation as first parameter (SOAP-style). EBI Proteins tools take a plain accession/dbsnp_id/hgvs string, no operation wrapper.


Fallbacks

SituationFallback
Not in iPTMnetUniProt PTM/processing annotations
No PTM-PPI dataSTRING general PPI
No ProtVar dataUniProt domain annotations
No ELM dataProceed with iPTMnet/UniProt only
EBIProteins_get_rna_editing 404sVerified broken as of this writing (EBI-side, not a request bug) — skip, do not retry-loop on it

Limitations

  • iPTMnet biased toward well-studied proteins
  • Proteoform data covers observed combinations only
  • PTM-PPI: only PTM-specific evidence; more PPIs exist in STRING
  • EBIProteins_get_proteomics_ptm/_get_proteomics_peptides/_get_hpp_peptides are MS detection evidence, not curated PTM biology — a hit means "seen by mass spec," not "known functional PTM"
  • EBIProteins_get_rna_editing is currently non-functional (HTTP 404 from EBI on both of its own documented example accessions, confirmed live) — do not rely on it until re-verified

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/mims-harvard/tooluniverse/tooluniverse-protein-modification-analysis">View tooluniverse-protein-modification-analysis on skillZs</a>