# rustyhmmer
Pure-Rust reimplementation of [HMMER3](http://hmmer.org/)'s `hmmsearch`,
producing **byte-identical `--tblout` output** to HMMER 3.4 for protein
profile-HMM search.
HMMER is pronounced "hammer"; this is a rusty one.
## Status
- Amino-acid `hmmsearch` pipeline: MSV/SSV (F1) → bias (F3b) → Viterbi (F2)
→ Forward (F3) → domain definition → per-sequence / per-domain scoring →
`--tblout` reporting.
- Output is validated byte-for-byte against C HMMER 3.4 `--tblout` hit rows.
- No `unsafe`, no architecture-specific intrinsics; SIMD is obtained through
auto-vectorization, so it runs on both x86-64 (SSE2) and AArch64 (NEON).
## Build
```sh
cargo build --release
```
## Usage
```sh
rustyhmmer-hmmsearch [options] <query.hmm> <target.faa>
```
The tool reads a HMMER3/f `.hmm` file and a protein FASTA database and writes
`--tblout`-format tabular results to standard output.
## Scope and limitations
- Protein (amino-acid) models only.
- `hmmsearch` only (no `hmmscan` / `nhmmer` / `phmmer` / `jackhmmer`).
- Local, multihit mode (HMMER's default).
## License
BSD-3-Clause. rustyhmmer is a derivative work of HMMER and its Easel library
and is distributed under the same terms. See [LICENSE](LICENSE) for the full
HMMER and Easel copyright notices.
## Author
Sunju Kim <n.e.coli.1822@gmail.com>