You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+110-6Lines changed: 110 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,16 +12,120 @@ The core mission of SCREAM++ is to provide a robust, reliable, and easy-to-use t
12
12
-**Flexible Optimization Modes**: Supports both global side-chain optimization and focused refinement within a defined **binding site** or region of interest.
13
13
-**Modern Tooling**: Managed by Cargo for simple, reproducible builds and dependency management.
14
14
-**Multiple Interfaces**:
15
-
-**Standalone CLI**: An easy-to-use command-line interface for standard prediction tasks.
16
-
-**Python Package**: A user-friendly Python API (via PyO3) for scripting, integration, and advanced workflows.
17
-
-**C-Compatible Library**: A C FFI layer for integration with C, C++, and other programming languages.
18
-
-**Native Rust Crate**: A core Rust library (`screampp`) available on crates.io for direct use in other Rust-based scientific computing projects.
15
+
-**Standalone CLI**: A powerful and easy-to-use command-line interface for all prediction tasks.
16
+
-**Native Rust Crate**: The core library (`screampp`) is available on [crates.io](https://crates.io/crates/screampp) for direct use in other Rust-based scientific computing projects.
17
+
-**Python Package (Future)**: A user-friendly Python API (via PyO3) for scripting and integration is planned for future releases.
18
+
-**C-Compatible Library (Future)**: A C FFI layer for integration with C, C++, and other languages is planned for future releases.
19
+
20
+
## Getting Started
21
+
22
+
There are two main ways to use SCREAM++: as a standalone command-line tool or as a library in your own Rust project.
23
+
24
+
### 1. Using the Command-Line Interface (CLI)
25
+
26
+
This is the recommended method for most users.
27
+
28
+
#### Step 1: Download the executable
29
+
30
+
Go to the [**GitHub Releases page**](https://github.com/caltechmsc/screampp/releases) and download the pre-compiled binary for your operating system (Linux, macOS, Windows). Unzip the archive.
31
+
32
+
#### Step 2: Download the required data files
33
+
34
+
The first time you run the CLI, you must download the necessary forcefield and rotamer library files. This is a one-time setup.
35
+
36
+
```bash
37
+
# On Linux/macOS
38
+
./scream data download
39
+
40
+
# On Windows (Command Prompt)
41
+
scream.exe data download
42
+
```
43
+
44
+
This command will fetch and unpack the data to a default location on your system.
45
+
46
+
#### Step 3: Run a prediction
47
+
48
+
You are now ready to run a side-chain placement job.
49
+
50
+
```bash
51
+
# Optimize all side-chains in input.bgf and save the result
52
+
./scream place -i path/to/input.bgf -o path/to/output.bgf
53
+
```
54
+
55
+
For detailed instructions on all commands, options, and advanced configuration, please refer to the [**CLI User Manual**](docs/cli/USAGE.md).
56
+
57
+
### 2. Using as a Rust Library
58
+
59
+
If you are a Rust developer, you can add `screampp` as a dependency to your project.
60
+
61
+
#### Step 1: Add to `Cargo.toml`
62
+
63
+
```toml
64
+
[dependencies]
65
+
screampp = "0.5.0"
66
+
```
67
+
68
+
#### Step 2: Use in your code
69
+
70
+
You can now use the high-level `workflows` API to perform side-chain placement programmatically.
Comprehensive documentation is available for both users and developers.
112
+
113
+
-**For Users**:
114
+
115
+
-[**CLI User Manual**](docs/cli/USAGE.md): A complete guide to installing and using the `scream` command-line tool, including detailed explanations of all commands, configuration options, and practical examples.
116
+
117
+
-**For Developers**:
118
+
119
+
-[**Rust Library API Docs (docs.rs)**](https://docs.rs/screampp): The official, versioned API documentation for the `scream-core` (`screampp`) crate, generated by `rustdoc`. This is the best resource for understanding the public API of the library.
120
+
-**Developer Documentation**: In-depth documentation covering the architecture, data models, algorithms, and design philosophy of the entire project. This is essential reading for anyone looking to contribute to or deeply understand the internals of SCREAM++.
121
+
-[**`scream-core` Developer Docs**](docs/dev/core/README.md): Details the internal architecture, data models, and algorithms of the `scream-core` library.
122
+
-[**`scream-cli` Developer Docs**](docs/dev/cli/README.md): Provides a comprehensive technical breakdown of the `scream-cli` crate, including execution flow, configuration handling, and data management.
0 commit comments