iirs

Crates.ioiirs
lib.rsiirs
version0.9.2
sourcesrc
created_at2024-05-05 22:03:57.161342
updated_at2024-05-08 22:24:55.332545
descriptionInverted repeats finder
homepage
repository
max_upload_size
id1230579
size6,029,769
(daxida)

documentation

README

iirs

IIRS is an Iupac Inverted RepeatS finder written in rust (rs).

That is, an exact tool for efficient identification of Inverted Repeats (IRs) in IUPAC-encoded DNA sequences as substrings of a large text, allowing also for potential mismatches and gaps.

This is a port of IUPACpal, result of their work on this paper.

Compared to the original this version is faster, platform-independent and modular, facilitating the creation of customized format outputs. It does not require cmake, libdivsufsort nor sdsl.

How to use

TODO - but mainly it works much like the original with an extra flag for the type of output format.

There are many examples in the justfile.

This also works as a library: The find_irs function is exported (think of crates.io).

How to install

(Option 1) Download executable

Download the latest binary from releases and extract it somewhere on your $PATH.

(Option 2) Build executable

$ git clone https://github.com/daxida/iirs
$ cd iirs
$ cargo build --release
$ // The binary will be located at `target/release/iirs`

(Option 3) Build from source:

$ git clone https://github.com/daxida/iirs
$ cargo install --path=.

Branches

TODO

  • master (Sparse table)
  • parallel (parallelize the main loop - not ideal if we want to parallelize over sequences, but THE FASTEST if we only query one sequence)
  • tabulation (maybe better than master? needs testing)
  • visualize && custom > ignore

Testing

  • cargo test for unit tests.
  • Justfile for individual tests against sequences. Some use the Linux profiler perf.
  • bench.rs benches against a single file. To use together with just bench after modifying the parameters in bench.rs.
  • logs.rs benches against the cpp binary. You will need a IUPACpal binary (and they only support Linux). The binary is expected to be in the bench folder, but that can be changed in logs.rs and validate.py.
  • For instance, create the heatmaps with just printlogs. You can also modify the steps in which the binaries are compared. A heatmap will be created per size_seq (size of sequence). NOTE: There is a requirements.txt that needs to be previously installed, with libraries like plotly to be able to print the heatmaps.

Links

Commit count: 0

cargo fmt