Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kira-protein-longevity-analysis

Rust CLI tool for physics-informed protein robustness and fragility analysis under environmental conditions (pH, oxidative stress, temperature).

Installation

Install from crates.io (Rust 1.91+ / Windows / Linux / MacOS):

cargo install kira-protein-longevity-analysis

Or

Build from source (Rust 1.91+):

cargo build --release

Usage

kira-protein-longevity-analysis analyze --input <file_or_dir> --ph 5.8 --ros high --temp-c 39

Options:

  • --input <file_or_dir>: structure file or directory of .cif/.mmcif/.pdb
  • --fasta <file>: optional FASTA (currently unused)
  • --ph <float>: environment pH (default 7.4)
  • --ros <low|normal|high>: oxidative stress level (default normal)
  • --temp-c <float>: temperature in C (default 37.0)
  • --threads <usize>: worker threads (default: num_cpus)
  • --backend <scalar|simd>: SIMD backend selection
  • --format <json|tsv>: output format (default json)
  • --out <file>: output file (stdout if omitted)
  • --short: reduce output payload
  • --verbose: per-stage timing info

Notes

  • Heuristic scoring only (no MD or Rosetta).
  • Deterministic output for the same inputs.

Sample output (for hen egg-white lysozyme)

.\target\release\kira-protein-longevity-analysis.exe  analyze --input 1LYZ.cif --ph 4.5 --ros normal --temp-c 37 --short
{
  "schema_version": 1,
  "tool": "kira-protein-longevity-analysis",
  "env": {
    "ph": 4.5,
    "ros": "Normal",
    "temp_c": 37.0
  },
  "results": [
    {
      "protein_id": "1LYZ",
      "length": 129,
      "chains": 1,
      "robustness": {
        "score": 0.8534382,
        "delta_vs_neutral": -0.069004476,
        "verdict": "ACCEPT"
      },
      "reasons": [
        {
          "tag": "packing:low_core_packing",
          "value": 0.3029582,
          "details": {
            "contribution": 0.0757395476102829
          }
        },
        {
          "tag": "ph:risk_combined",
          "value": 0.2760181,
          "details": {
            "contribution": 0.06900452822446823,
            "electrostatic_risk": 0.1336318999528885,
            "salt_bridge_loss_fraction": 0.2760181128978729
          }
        },
        {
          "tag": "temp:sensitivity",
          "value": 0.018177493,
          "details": {
            "contribution": 0.0018177492311224341
          }
        },
        {
          "tag": "ph:salt_bridge_loss",
          "value": 0.2760181,
          "details": {
            "lost": 122,
            "total": 442
          }
        },
        {
          "tag": "ros:oxidation_exposed",
          "value": 0.0,
          "details": {
            "contribution": 0.0
          }
        },
        {
          "tag": "strain:high_turn_strain",
          "value": 0.0,
          "details": {
            "contribution": 0.0
          }
        },
        {
          "tag": "surface:exposed_hydrophobic_load",
          "value": 0.0,
          "details": {
            "contribution": 0.0
          }
        }
      ],
      "hotspots_topk": [
        {
          "chain": "A",
          "res_idx": 129,
          "aa": "L",
          "fragility": 0.2744191,
          "flags": [
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 128,
          "aa": "R",
          "fragility": 0.25469586,
          "flags": [
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 21,
          "aa": "R",
          "fragility": 0.23720291,
          "flags": [
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 114,
          "aa": "R",
          "fragility": 0.22168806,
          "flags": [
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 5,
          "aa": "R",
          "fragility": 0.19572324,
          "flags": [
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 45,
          "aa": "R",
          "fragility": 0.19572324,
          "flags": [
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 20,
          "aa": "Y",
          "fragility": 0.18489888,
          "flags": [
            "oxidation_prone",
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 127,
          "aa": "C",
          "fragility": 0.18489888,
          "flags": [
            "oxidation_prone",
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 6,
          "aa": "C",
          "fragility": 0.17529854,
          "flags": [
            "oxidation_prone",
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 13,
          "aa": "K",
          "fragility": 0.16678384,
          "flags": [
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 116,
          "aa": "K",
          "fragility": 0.16678384,
          "flags": [
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 33,
          "aa": "K",
          "fragility": 0.15923193,
          "flags": [
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 115,
          "aa": "C",
          "fragility": 0.15923193,
          "flags": [
            "oxidation_prone",
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 68,
          "aa": "R",
          "fragility": 0.15469585,
          "flags": []
        },
        {
          "chain": "A",
          "res_idx": 18,
          "aa": "D",
          "fragility": 0.15253401,
          "flags": [
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 52,
          "aa": "D",
          "fragility": 0.15253401,
          "flags": [
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 30,
          "aa": "C",
          "fragility": 0.14659348,
          "flags": [
            "oxidation_prone",
            "salt_bridge_loss"
          ]
        },
        {
          "chain": "A",
          "res_idx": 22,
          "aa": "G",
          "fragility": 0.13720292,
          "flags": []
        },
        {
          "chain": "A",
          "res_idx": 48,
          "aa": "D",
          "fragility": 0.13720292,
          "flags": []
        },
        {
          "chain": "A",
          "res_idx": 118,
          "aa": "T",
          "fragility": 0.13720292,
          "flags": []
        }
      ]
    }
  ]
}

Test data provenance

This directory contains protein structure files (pdb & cif) obtained from the Protein Data Bank (PDB, https://www.rcsb.org).

PDB data are in the public domain (CC0 1.0). Original authors retain attribution for experimental determination.

These files are included solely for testing and benchmarking purposes.

License

MIT

About

Rust CLI tool for physics-informed protein robustness and fragility analysis under environmental conditions (pH, oxidative stress, temperature).

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages