Skip to main content
Glama

protein_properties

Read-only

Molecular weight (average + monoisotopic), molecular formula, isoelectric point, instability index and amphipathicity (Boman index, Eisenberg hydrophobic moment) of a protein sequence (Biopython ProtParam + peptides + pyteomics).

Input Schema

NameRequiredDescriptionDefault
pHNopH the net charge is reported at (default 7.0).
_filesNoThe project: record references shaped like _subject. Their records become library documents a tool names in sequences/parts/document; a trace or alignment is found by file name.
proteinYesthe protein sequence (unambiguous one-letter codes); wire it from translate_sequence.
_subjectNoThe record to act on: exactly one of sequence, accession (+source), sample (an id from list_samples) or file ({name, text} or {name, base64}); record_index picks one record of several.
gravyScaleNohydropathy scale GRAVY is averaged over (all 28 ProtParam/ProtScale scales; default Kyte & Doolittle). Values: KyteDoolitle (Kyte & Doolittle (1982)), Aboderin (Aboderin (Int J Biochem 2:537)), AbrahamLeo (Abraham & Leo (1987)), Argos (Argos (Eur J Biochem 128:565)), BlackMould (Black & Mould (1991)), BullBreese (Bull & Breese (1974)), Casari (Casari & Sippl, hydrophobic potential (JMB 224:725)), Cid (Cid (Protein Eng 5:373)), Cowan3.4 (Cowan at pH 3.4 (1990)), Cowan7.5 (Cowan at pH 7.5 (1990)), Eisenberg (Eisenberg, normalized consensus (1984)), Engelman (Engelman, transfer free energy (Annu Rev Biophys 15:321)), Fasman (Fasman (1989)), Fauchere (Fauchere (1983)), GoldSack (Goldsack & Chalifoux, free energy of mixing (J Theor Biol 39:645)), Guy (Guy, transfer free energy kcal/mol (1985)), Jones (Jones (J Theor Biol 50:167)), Juretic (Juretic (Theor Comput Chem 5:405)), Kidera (Kidera factors (J Protein Chem 4:23)), Miyazawa (Miyazawa, contact energy from 3D structures (1985)), Parker (Parker, HYDROPHILICITY from HPLC retention (1986)), Ponnuswamy (Ponnuswamy, folded-protein character (Prog Biophys Mol Biol 59:57)), Rose (Rose (1985)), Roseman (Roseman (1988)), Sweet (Sweet, optimized matching OMH (1983)), Tanford (Tanford (1962)), Wilson (Wilson, hydrophobic constants from HPLC retention (1981)), Zimmerman (Zimmerman (J Theor Biol 21:170)).KyteDoolitle
momentWindowNosliding window for the hydrophobic moment, in residues (default 11; clamped to the sequence length).
cystineConventionNohow the oxidised e280 counts cysteines: 'cystine' = 125 per disulfide (ProtParam, default) or 'perCysteine' = 62.5 per residue (SnapGene). They differ only on an ODD cysteine count.cystine

Output Schema

NameRequiredDescriptionDefault
mwYesmolecular weight [Da] — a FLOOR when `nonStandard` is non-empty, because ProtParam has no mass for those letters and still counts them in the length
pIYesisoelectric point
a280YesA280 of a 1 g/L solution (cystines form) — divide a spectrophotometer reading by this
turnYesfraction of residues favouring a turn
atomsYestotal number of atoms in the molecule, or null when a residue has no formula
bomanYesBoman potential protein-interaction index [kcal/mol] (>2.48 = protein-binding)
gravyYesgrand average of hydropathicity over `gravyScale`, or null when a residue has no value on it
helixYesfraction of residues favouring an alpha-helix
sheetYesfraction of residues favouring a beta-sheet
chargeYesnet charge at `pH`
lengthYesresidues analysed, including any the mass tables have no row for
stableYesProtParam's own reading of the index: at or below 40. Null exactly when `instability` is — there is no verdict without a value
formulaYesmolecular formula, ProtParam style (e.g. C1755H2634N466O557S5); empty when a residue has no formula
elementsYesatom counts per element (C, H, N, O, S) behind the formula, or null when a residue has no formula
aliphaticYesaliphatic index (Ikai 1980) — higher suggests greater thermostability
nTerminalYesthe N-terminal residue the N-end rule half-lives below are read from
gravyScaleYeswhich hydropathy scale `gravy` was averaged over
aromaticityYesaromaticity (Lobry 1994): the F+W+Y frequency, as a fraction
compositionYesresidue counts, one entry per standard amino acid (ProtParam's composition table)
instabilityYesinstability index (>40 = unstable in vivo), or null when a residue the Guruprasad table has no row for makes it undefined — refused rather than computed on a spliced sequence
momentHelixYesmax Eisenberg hydrophobic moment at the α-helix periodicity (100°)
momentSheetYesmax Eisenberg hydrophobic moment at the β-sheet periodicity (160°)
nonStandardYesresidues with no mass at all (X, B, Z, gaps, *), with their positions: excluded from `mw`, `monoisotopicMw`, `formula` and `elements`, still counted in `length`. Empty on a clean chain
momentWindowYesthe window the two moments were measured over, after the clamp to the sequence length — a short peptide is not measured over 11 residues it does not have
halfLifeEcoliYesestimated in-vivo half-life, E. coli (N-end rule)
halfLifeYeastYesestimated in-vivo half-life, yeast (N-end rule)
monoisotopicMwYesmonoisotopic molecular weight [Da] — what mass spectrometry reports. Null when a residue has no mass, rather than a mass for a different molecule
scaleNonStandardYesresidues that ARE weighed but have no per-residue scale value (U, O). They are why `gravy` and `instability` can come back null on a sequence whose mass is exact
extinctionReducedYesmolar extinction coefficient at 280 nm [M-1 cm-1], all cysteines reduced
halfLifeMammalianYesestimated in-vivo half-life, mammalian reticulocytes (N-end rule); '—' when the N-terminus has no entry
compositionPercentYesthe same table as mole percent of the chain
extinctionCystinesYesmolar extinction coefficient at 280 nm [M-1 cm-1], cystines formed (per `cystineConvention`)
gravyHydrophobicEndYeswhich end of `gravyScale` is the hydrophobic one: 'higher' (Kyte & Doolittle and most others) or 'lower' (a transfer free energy or a hydrophilicity scale). Read `gravy` against this, never against zero alone
gravyZeroIsMeaningfulYeswhether `gravyScale` takes both signs. False on the eight one-sided tables (Rose, Miyazawa, Argos, …), where the sign of `gravy` is a property of the scale and says nothing about this protein

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedOutput schema / properties / boman / x-unit
      Added value: +"kcal/mol"
    • addedOutput schema / properties / extinctionCystines / x-unit
      Added value: +"M⁻¹ cm⁻¹"
    • addedOutput schema / properties / extinctionReduced / x-unit
      Added value: +"M⁻¹ cm⁻¹"
    • addedOutput schema / properties / monoisotopicMw / x-unit
      Added value: +"Da"
    • addedOutput schema / properties / mw / x-unit
      Added value: +"Da"
  2. Changed34 schema fields changed
    • changedOutput schema / properties / a280 / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / aliphatic / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / aromaticity / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / atoms / description
      Previous value: -"total number of atoms in the molecule"New value: +"total number of atoms in the molecule, or null when a residue has no formula"
    • changedOutput schema / properties / atoms / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / boman / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / charge / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / elements / description
      Previous value: -"atom counts per element (C, H, N, O, S) behind the formula"New value: +"atom counts per element (C, H, N, O, S) behind the formula, or null when a residue has no formula"
    • changedOutput schema / properties / extinctionCystines / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / extinctionReduced / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / formula / description
      Previous value: -"molecular formula, ProtParam style (e.g. C1755H2634N466O557S5)"New value: +"molecular formula, ProtParam style (e.g. C1755H2634N466O557S5); empty when a residue has no formula"
    • changedOutput schema / properties / gravy / description
      Previous value: -"grand average of hydropathicity over `gravyScale`"New value: +"grand average of hydropathicity over `gravyScale`, or null when a residue has no value on it"
    • changedOutput schema / properties / gravy / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / gravyHydrophobicEnd / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / gravyScale / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / gravyZeroIsMeaningful / type
      Previous value: -"boolean"New value: +[
      +  "boolean",
      +  "null"
      +]
    • changedOutput schema / properties / helix / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / instability / description
      Previous value: -"instability index (>40 = unstable in vivo)"New value: +"instability index (>40 = unstable in vivo), or null when a residue the Guruprasad table has no row for makes it undefined — refused rather than computed on a spliced sequence"
    • changedOutput schema / properties / instability / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • addedOutput schema / properties / length
      Added value: +{
      +  "description": "residues analysed, including any the mass tables have no row for",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / momentHelix / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / momentSheet / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • addedOutput schema / properties / momentWindow
      Added value: +{
      +  "description": "the window the two moments were measured over, after the clamp to the sequence length — a short peptide is not measured over 11 residues it does not have",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / monoisotopicMw / description
      Previous value: -"monoisotopic molecular weight [Da] — what mass spectrometry reports"New value: +"monoisotopic molecular weight [Da] — what mass spectrometry reports. Null when a residue has no mass, rather than a mass for a different molecule"
    • changedOutput schema / properties / monoisotopicMw / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / mw / description
      Previous value: -"molecular weight [Da]"New value: +"molecular weight [Da] — a FLOOR when `nonStandard` is non-empty, because ProtParam has no mass for those letters and still counts them in the length"
    • changedOutput schema / properties / mw / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • addedOutput schema / properties / nonStandard
      Added value: +{
      +  "description": "residues with no mass at all (X, B, Z, gaps, *), with their positions: excluded from `mw`, `monoisotopicMw`, `formula` and `elements`, still counted in `length`. Empty on a clean chain"
      +}
    • changedOutput schema / properties / pI / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • addedOutput schema / properties / scaleNonStandard
      Added value: +{
      +  "description": "residues that ARE weighed but have no per-residue scale value (U, O). They are why `gravy` and `instability` can come back null on a sequence whose mass is exact"
      +}
    • changedOutput schema / properties / sheet / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • addedOutput schema / properties / stable
      Added value: +{
      +  "description": "ProtParam's own reading of the index: at or below 40. Null exactly when `instability` is — there is no verdict without a value",
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / turn / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / required
      Previous value: -[
      -  "mw",
      -  "pI",
      -  "instability",
      -  "boman",
      -  "momentHelix",
      -  "momentSheet",
      -  "monoisotopicMw",
      -  "formula",
      -  "atoms",
      -  "extinctionReduced",
      -  "extinctionCystines",
      -  "a280",
      -  "nTerminal",
      -  "halfLifeMammalian",
      -  "halfLifeYeast",
      -  "halfLifeEcoli",
      -  "gravy",
      -  "gravyScale",
      -  "gravyHydrophobicEnd",
      -  "gravyZeroIsMeaningful",
      -  "aliphatic",
      -  "aromaticity",
      -  "helix",
      -  "turn",
      -  "sheet",
      -  "charge",
      -  "composition",
      -  "compositionPercent",
      -  "elements"
      -]New value: +[
      +  "mw",
      +  "length",
      +  "nonStandard",
      +  "scaleNonStandard",
      +  "pI",
      +  "instability",
      +  "stable",
      +  "boman",
      +  "momentHelix",
      +  "momentSheet",
      +  "momentWindow",
      +  "monoisotopicMw",
      +  "formula",
      +  "atoms",
      +  "extinctionReduced",
      +  "extinctionCystines",
      +  "a280",
      +  "nTerminal",
      +  "halfLifeMammalian",
      +  "halfLifeYeast",
      +  "halfLifeEcoli",
      +  "gravy",
      +  "gravyScale",
      +  "gravyHydrophobicEnd",
      +  "gravyZeroIsMeaningful",
      +  "aliphatic",
      +  "aromaticity",
      +  "helix",
      +  "turn",
      +  "sheet",
      +  "charge",
      +  "composition",
      +  "compositionPercent",
      +  "elements"
      +]
  3. First observed

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered and the bar is lower. The description adds useful provenance (Biopython ProtParam + `peptides` + `pyteomics`), implying deterministic local computation, but says nothing about handling of non-standard residues, failure modes, or compute cost.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense sentence, front-loaded with the enumerated outputs and ending with implementation provenance; nothing is redundant. The parenthetical tool citation is borderline but adds trust context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't describe return values, and it does cover the computed quantity set and backend. For a 7-parameter tool with a nested `_subject` input, the main remaining gap is guidance on the input record forms and the undefined e280/`cystineConvention` link.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already carries the parameter semantics and a baseline of 3 applies. The description alludes to the outputs tied to pH (pI/net charge), gravyScale and momentWindow (amphipathicity/hydrophobic moment), but never links cystineConvention to the extinction coefficient at 280 nm it actually controls, nor explicitly ties gravyScale to GRAVY.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (a protein sequence) and enumerates the exact computed quantities (molecular weight average + monoisotopic, formula, pI, instability index, Boman index, hydrophobic moment), which lets an agent separate it from siblings like protein_digest or protein_disorder. The verb is implicit ("properties of") rather than an explicit "compute/calculate," and no sibling is named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use/when-not guidance and no mention of alternatives such as peptide_mass, protein_profile, or protein_membrane_profile, even though many sibling tools overlap on protein analysis. The only usable signal is the implicit notion that this is for bulk physicochemical descriptors of a sequence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources