Metadata-Version: 2.4
Name: replicatescience
Version: 0.1.0
Summary: Python SDK for ReplicateScience — programmable protocol library for reproducible science
Project-URL: Homepage, https://replicatescience.com
Project-URL: Documentation, https://replicatescience.com/developers
Project-URL: Repository, https://github.com/ShuhanCS/replicatescience-python
Project-URL: Issues, https://github.com/ShuhanCS/replicatescience-python/issues
Author-email: ReplicateScience <support@replicatescience.com>
License-Expression: MIT
License-File: LICENSE
Keywords: biology,equipment,protocols,reproducibility,science
Classifier: Development Status :: 4 - Beta
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: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.9
Requires-Dist: click>=8.0
Requires-Dist: httpx>=0.25.0
Requires-Dist: pyyaml>=6.0
Description-Content-Type: text/markdown

# ReplicateScience Python SDK

Programmable protocol library for reproducible science. Search, compare, and export experimental protocols extracted from published papers.

## Installation

```bash
pip install replicatescience
```

## Quick Start

```python
import replicatescience as rs

# Configure your API key (or set RS_API_KEY env var)
rs.configure(api_key="rs_live_YOUR_KEY")

# Search protocols by keyword + species
results = rs.search("fear conditioning", species="mouse")
for p in results.protocols:
    print(f"{p.slug}: {p.name} ({p.step_count} steps)")

# Get full protocol detail
protocol = rs.get("smith-fear-conditioning-2024")

# Compare two protocols
diff = rs.diff(
    rs.get("smith-fear-conditioning-2024"),
    rs.get("jones-fear-conditioning-2023"),
)
print(diff.summary)
print(diff.to_markdown())

# Export to YAML
rs.save(protocol, "protocols/fear-conditioning.yaml")
```

## CLI

```bash
# Search from terminal
rs search "pcr" --species mouse --limit 5

# Get a protocol
rs get smith-fear-conditioning-2024 --format yaml > protocol.yaml

# Diff two protocols
rs diff smith-2024 jones-2023
```

## API Key

Get your free API key at [replicatescience.com/developers](https://replicatescience.com/developers).

| Plan | Requests/Day | Exports/Day |
|------|-------------|-------------|
| Free | 100 | 10 |
| Pro | 5,000 | Unlimited |
| Institutional | 50,000 | Unlimited |

## Links

- [Documentation](https://replicatescience.com/developers)
- [API Reference (OpenAPI)](https://replicatescience.com/api/v1/openapi.json)
- [GitHub](https://github.com/ShuhanCS/replicatescience-python)
