Seismic-rna

Latest version: v0.23.1

Safety actively analyzes 707299 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 13

0.23.1

New Features

- New global command line option `--exit-on-error` makes SEISMIC-RNA exit immediately with code 1 if any uncaught exceptions occur rather than logging a message and exiting with code 0. It is most useful for automating the test suite, i.e. `seismic --exit-on-error test`, which will cause the test suite to exit with code 1 if any test fails (`seismic test` will still exit with code 0 even if tests fail, making it harder to detect failure automatically).

Bug Fixes

- Fixed the wrong default value of `--max-marcd-join`; it was 1.5 and is now 0.0175. A new unit test makes sure it has the same default value as `--min-marcd-run`.
- The global command line option `--profile` has been removed, since it had been nonfunctional for a long time.

**Full Changelog**: https://github.com/rouskinlab/seismic-rna/compare/v0.23.0...v0.23.1

0.23.0

New Features

- `seismic ensembles` is a new command that performs scanning clustering, similar to DRACO (https://doi.org/10.1038/s41592-021-01075-w).
- A region of choice (default: full) is divided into overlapping subregions of identical lengths. By default, the length is chosen so that the average read has 2 mutations (the minimum for clustering).
- Each subregion is clustered to determine how many structures it forms.
- Consecutive subregions that form the same number of clusters, with similar mutation rates, are joined automatically.
- Each joined region suggests the existence of an RNA module that folds into one or more structures independently of the surrounding sequences.
- `seismic join` can now automatically determine the best way to match clusters from multiple regions, without needing to provide a `--join-clusts` file. The regions must still have the same numbers or clusters (or none, if coming from the Mask step).
- Three new types of graph have been added (and are also now available through `seismic wf`):
- `seismic graph abundance`: Abundance of each cluster, either as a fraction of the ensemble or as a number of reads in the cluster.
- `seismic graph poscorr`: Phi correlation of the mutations between every pair of positions.
- `seismic graph mutdist`: Histogram of the distance between the two closest mutations in each read (or 0 for each read with fewer than two mutations).
- Both `pool` and `join` now tabulate the pooled/joined datasets automatically (with the option to turn this off).
- Five new commands provide easy access to online resources:
- `seismic biorxiv`: the preprint on bioRxiv
- `seismic docs`: the documentation on GitHub pages
- `seismic github`: this GitHub repository
- `seismic pypi`: the Python Package Index page for SEISMIC-RNA
- `seismic conda`: the Conda page for SEISMIC-RNA


Bug Fixes

- In `seismic relate`, the algorithm that finds ambiguous indels has been redesigned to make it non-recursive, so that it will no longer take extreme amounts of time to process reads with indels in long stretches of low-quality base calls.
- Fixed a bug in `seismic align` and `seismic relate` where processing multiple FASTQ/BAM files with the same sample and reference names could cause crashes or files to be overwritten. Now, if this situation is detected at the beginning, an error is raised to protect the data.
- Fixed a bug in `seismic mask` and `seismic cluster` where processing datasets in multiple output directories with the same sample, reference, and region names could cause crashes or files to be overwritten.
- Fixed a bug where running `seismic mask` with multiple regions of the same Relate dataset simultaneously would cause all but one of those regions to crash.
- Fixed a bug in `seismic mask` where if 0 positions remained at the end of one iteration, it would fail to mask out the remaining reads.
- In `seismic mask`, `-s` has been renamed to `-i`.
- In `seismic join` for clustered datasets, if the joined mask report already exists, then it now checks that the joined regions in the mask report match the regions that will be joined in the cluster report (and raises an error if they do not match).
- When correcting observer bias, the algorithm now issues a warning for `ValueError: Jacobian inversion yielded zero vector` instead of crashing.
- In `seismic cluster`, error that happen when calculating the jackpot quotient and creating the graphs now also trigger warning messages rather than crashes.
- Graphs that take two tables (`corroll`, `delprof`, and `scatter`) now always sort the names of their two samples alphabetically, so that they don't generate multiple sample directories for the same graphs depending on the order of their arguments.
- Replaced `static const char` variables with macros for backwards compatibility with older versions of C.


Logging

- There are now eight levels, including a new level ACTION (for writes to the filesystem and shell commands).
- The verbosity arguments now range from `-vvvv` (log everything to console) to `-qqqq` (log nothing to console).
- Many of the logging messages have been made more concise for easier comprehension.
- SEVERE has been renamed to FATAL.
- COMMAND has been renamed to STATUS.


Other Changes

- To speed up `seismic relate`, batches of read names and the table of relationships per read are no longer written by default, since they are rarely needed but writing them takes a relatively long time.
- The `meson.build` file now includes compiler flags `-O2` and `-DNDEBUG` to make the machine code for `seismic relate` more efficient.
- The `pool` and `join` commands now require specifying the name of the pooled sample and joined region, respectively, to avoid confusion over what the new sample/region is named.
- When calculating the BIC, the threshold for the reads to parameters ratio has been relaxed to cause fewer warning messages.
- In the API, run functions now accept generic `Iterable[str | Path]` arguments where they previously expected only `tuple[str, ...]` arguments.
- Unit tests now test all types of graphs, and run in double verbose mode on the command line.


**Full Changelog**: https://github.com/rouskinlab/seismic-rna/compare/v0.22.3...v0.23.0

0.22.3

PyPI

- Wheels for macOS
- Source distribution


**Full Changelog**: https://github.com/rouskinlab/seismic-rna/compare/v0.22.2...v0.22.3

0.22.2

- The core algorithm of the relate step has been re-implemented in C, speeding it up by roughly 10x. The original Python version of the algorithm is still available as a fallback or for benchmarking or debugging, using the option `--relate-py`.
- The build backend has been changed from Hatch to Meson in order to build the new C extension module for relate.

**Full Changelog**: https://github.com/rouskinlab/seismic-rna/compare/v0.22.1...v0.22.2

0.22.1

Draw

- The `draw` module creates vectorized, publication-quality figures, directly from the output of SEISMIC-RNA's `fold` module.
- Initially piloted in 0.22.0, drawing can now be run automatically as part of `wf` by including the `--draw` flag.
- The `draw` command will automatically color bases according to the reactivities used by SEISMIC-RNA to constrain the structure prediction, although this behavior can be disabled with the `--no-color` flag.
- When multiple structures are predicted, only the one with the best AUROC will be drawn by default, although any structure(s) can be specified with the `--struct-num` flag.
- Many thanks to Fabrice Jossinet (fjossinet) for developing [RNArtistCore](https://github.com/fjossinet/RNArtistCore), the heart the `draw` module.
- To install RNArtistCore, first download the [latest release](https://github.com/fjossinet/RNArtistCore/releases) and save the `.jar` file in a safe place. Second, set the environmental variable `RNARTISTCORE` to the full path to the `.jar` file. It is recommended you do this by adding the line `export RNARTISTCORE="/full/path/to/your/rnartistcore-X.X.X-SNAPSHOT-jar-with-dependencies.jar"` to your .bashrc or .zshrc file.
- Installation instructions for RNArtistCore can also be found in a descriptive error message triggered by running the `draw` command when it is not installed.

Bug Fixes

- Fixed incorrect parsing of structure profiles generated from mask tables when using the draw module.
- Implemented safeguards against missing color and table files when drawing structures.

**Full Changelog**: https://github.com/rouskinlab/seismic-rna/compare/v0.22.0...v0.22.1

0.22.0

Migration

- To convert SEISMIC-RNA outputs from version 0.21 to version 0.22 (which are not compatible with each other), type `seismic migrate out`, where `out` is an output directory. You may give additional output directories as positional arguments.

Align

- The default alignment scores have been made more stringent, from `L,1,0.5` to `L,1,0.8` (local mode) and from `L,-1,-0.5` to `L,-1,-0.8` (end-to-end mode), to reduce the number of reads with huge numbers of mutations (especially indels) that could previously slip through.
- In the align report, references are now sorted from most to fewest reads.

Relate

- Insertions are now marked on either the base immediately 3' of the insertion (default) or immediately 5' (enabled with `--insert5`), rather than on both bases, to make it possible to count insertions using the existing code.
- The algorithm that finds ambiguous indels has been rewritten to simplify the code and handle more edge cases. It is consequently slower, but its simpler structure now allows the algorithm to be reimplemented in C (to make it much faster than even the original), which will be done in a subsequent version.

Mask

- The term "section" is renamed to "region" to match the terminology used by most of the field to refer to parts of sequences/genes.
- The mask step runs multiple iterations of filtering reads, then filtering positions, and repeating, to make sure the reads that are ultimately kept meet all the criteria for the positions that are ultimately kept.
- The masking process is repeated until an iteration removes no more reads/positions, no reads/positions remain at all, or an maximum number of iterations is reached (no limit by default, but can be set with `--max-mask-iter`).
- Arbitrary reads can be masked out by naming them individually with `--mask-read`, providing a text file of read names to mask out with `--mask-read-file`, or both.

Table

- Table files are now written into the relate, mask, and cluster directories instead of into a separate table directory.
- Table files are now created during the relate, mask, and cluster steps; the table command still exists but is needed only for regenerating the table files if they are ever deleted.
- When calculating the data in a table, batches are now processed in parallel, which speeds up tabulation when you have a small number of large samples.
- Specific tables can now be disabled with options, e.g. `--no-mask-pos-table`.
- Table files now have more descriptive names, e.g. `mask-position-table` instead of `mask-per-pos`.
- The "Unambiguous" column has been renamed to "Informative".
- A bug causing some errors when counting duplicate reads has been fixed.

Graph

- Graphs of data from the mask step have been renamed from `masked` to `filtered` to make it clear that the data are from the reads/positions that remained after filtering, not the ones that were masked out.

Draw

- A new command, draw, has been added to draw RNA structures using RNArtist.

Simulation

- Simulating end coordinates now uses two parameters for variance, `--center-fvar` and `--length-fvar`, so that they can be decoupled (e.g. to generate uniform-length reads of variable position).

Workflow

- Commands that are not part of the main workflow all began with a `+` to help distinguish them as auxiliary; with improved documentation, it should now be more clear to distinguish them, so the `+` has been removed to make auxiliary commands easier to type.
- To reduce the risk of rerunning an earlier step (e.g. mask) and forgetting to rerun a later step (e.g. cluster) based on the new results, an error is raised if the "Time Ended" field of the later step's report file occurs before that of the earlier step. If needed, this check can be disabled with `--no-verify-times`.

Python API

- The logger is now initialized by default when using `import seismicrna`.
- Brickle files can be loaded without a checksum by passing `checksum=""` to `BrickleIO.load()`.
- The `Dataset.load()` class method has been removed; `Dataset.__init__()` now accepts a report file and should be used instead.
- Class `Qnames` has been renamed to `ReadNames`.
- Arbitrary reads can be masked when tabulating mask and cluster datasets.
- Table classes have been renamed with full names, e.g. from `ClustPosTable` to `ClusterPositionTable`.
- Default fields for Table paths now include `cmd`, `table`, and `ext`.


What's Changed
* 0.22.0 by matthewfallan in https://github.com/rouskinlab/seismic-rna/pull/19


**Full Changelog**: https://github.com/rouskinlab/seismic-rna/compare/v0.21.1...v0.22.0

Page 1 of 13

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.