Metadata-Version: 2.4
Name: proteinpulse
Version: 0.1.0
Summary: Analyze protein sequences from the CLI — MW, pI, GRAVY, instability, domains, secondary structure, and PDB lookup.
Project-URL: Homepage, https://github.com/Eswar-mse/proteinpulse
Project-URL: Repository, https://github.com/Eswar-mse/proteinpulse
Project-URL: Bug Tracker, https://github.com/Eswar-mse/proteinpulse/issues
Author: ProteinPulse Contributors
License: MIT
Keywords: bioinformatics,cli,protein,proteomics,sequence,structural-biology
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.9
Requires-Dist: requests>=2.31.0
Requires-Dist: rich>=13.0.0
Requires-Dist: typer[all]>=0.12.0
Provides-Extra: dev
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Description-Content-Type: text/markdown

# 🧬 ProteinPulse

**Analyze protein sequences from the command line.**

ProteinPulse is a fast, dependency-light CLI tool for protein sequence analysis. No internet connection required for core analysis — just paste a sequence and go.

[![PyPI version](https://img.shields.io/pypi/v/proteinpulse)](https://pypi.org/project/proteinpulse/)
[![Python](https://img.shields.io/pypi/pyversions/proteinpulse)](https://pypi.org/project/proteinpulse/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![CI](https://github.com/Eswar-mse/proteinpulse/actions/workflows/ci.yml/badge.svg)](https://github.com/Eswar-mse/proteinpulse/actions)

---

## Features

| Command | What it does |
|---|---|
| `analyze` | MW, pI, GRAVY, instability index, charge, extinction coefficient |
| `domains` | Scan for zinc fingers, RGD, NLS, TM regions, glycosylation sites, and 20+ more motifs |
| `structure` | Chou-Fasman secondary structure prediction (α-helix / β-sheet / coil) |
| `pdb` | Fetch structure metadata from RCSB PDB |
| `full` | All of the above in one shot |

---

## Installation

```bash
pip install proteinpulse
```

Requires Python 3.9+. No conda, no virtualenv required.

---

## Quick Start

```bash
# Physicochemical properties
proteinpulse analyze MQIFVKTLTGKTITLEVEPSDTIENVKAKIQDKEGIPPDQQRLIFAGKQLEDGRTLSDYNIQKESTLHLVLRLRGG

# From a FASTA file
proteinpulse analyze my_protein.fasta

# Domain scan
proteinpulse domains MQIFVKTLTGKTITLEVEPSDTIENVKAKIQDKEGIPPDQQRLIFAGKQLEDGRTLSDYNIQKESTLHLVLRLRGG

# Secondary structure prediction
proteinpulse structure MQIFVKTLTGKTITLEVEPSDTIENVKAK

# Fetch PDB metadata
proteinpulse pdb 1UBQ

# Full report in one command
proteinpulse full MQIFVKTLTGKTITLEVEPSDTIENVKAKIQDKEGIPPDQQRLIFAGKQLEDGRTLSDYNIQKESTLHLVLRLRGG --pdb 1UBQ

# Save output as JSON
proteinpulse full my_protein.fasta --output json --save report.json
```

---

## Output Formats

All commands support `--output` with three options:

- `table` — rich, coloured terminal table (default)
- `json` — machine-readable JSON
- `csv` — flat CSV (for `analyze` and `domains`)

Use `--save <file>` to write output to disk.

---

## Commands Reference

### `analyze`
```
proteinpulse analyze SEQUENCE [--output table|json|csv] [--save FILE]
```
Computes:
- Molecular weight (Da and kDa)
- Isoelectric point (pI)
- GRAVY hydrophobicity index (Kyte-Doolittle)
- Instability index (Guruprasad et al.)
- Net charge at pH 7
- Extinction coefficient
- Aromaticity and aliphatic index
- Full amino acid composition

### `domains`
```
proteinpulse domains SEQUENCE [--output table|json] [--save FILE]
```
Scans for 20+ motifs including:
zinc fingers, RGD, KDEL/HDEL ER retention, nuclear localisation signals,
transmembrane regions, N/O-glycosylation, phosphorylation sites (CK2, PKC, PKA),
leucine zippers, EF-hands, SH2/SH3 binding, 14-3-3 binding, and more.

### `structure`
```
proteinpulse structure SEQUENCE
```
Predicts α-helix, β-sheet, turn, and coil percentages using Chou-Fasman propensity scores.

### `pdb`
```
proteinpulse pdb PDB_ID [--output table|json] [--save FILE]
```
Fetches title, experimental method, resolution, chain count, residue count, and deposition dates from RCSB PDB.

### `full`
```
proteinpulse full SEQUENCE [--pdb PDB_ID] [--output table|json] [--save FILE]
```
Runs all analyses and optionally fetches a PDB entry.

---

## Programmatic Use

```python
from proteinpulse.sequence import load_sequence
from proteinpulse.properties import compute_properties
from proteinpulse.domains import scan_domains
from proteinpulse.structure import predict_secondary_structure

seq   = load_sequence("MQIFVKTLTGKTITLEVEPSDTIENVKAK")
props = compute_properties(seq)
hits  = scan_domains(seq)
struct = predict_secondary_structure(seq)

print(props.molecular_weight_kda)   # e.g. 3.24
print(props.isoelectric_point)      # e.g. 6.73
print([h.name for h in hits])       # e.g. ['SH3 binding (PXXP)']
print(struct.dominant)              # e.g. 'Alpha-Helix'
```

---

## Development

```bash
git clone https://github.com/Eswar-mse/proteinpulse
cd proteinpulse
pip install -e ".[dev]"
pytest tests/ -v
```

---

## License

MIT © ProteinPulse Contributors
