Skip to content

ARyaskov/kira-protein-longevity-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages