Rustyread is a drop in replacement of badread simulate. Rustyread is very heavily inspired by badread, it reuses the same error and quality model file. But Rustyreads is multi-threaded and benefits from other optimizations.
WARNING:
- Rustyread has not yet been evaluated or even compared to any other long read generators
- Rustyread is tested only on Linux
- Rustyread is still in developpement many thing can change or be break
If previously you called badread like this:
badread simulate --reference {reference path} --quantity {quantity} > {reads}.fastq you can now replace badread by rustyread:
rustyread simulate --reference {reference path} --quantity {quantity} > {reads}.fastq But by default rustyread use all avaible core you can control it with option threads:
rustyread --theads {number of thread} simulate --reference {reference path} --quantity {quantity} > {reads}.fastq If you have badread installed in your python sys.path rustyread can found error and quality model automatically, but you can still use --error_model and --qscore_model option.
Rustyread memory usage could be estimated with formula: 2 * reference base + 2 * targeted base + epsilon, to limit memory impact of Rustyread you can use parameter number_base_store it's take an absolute value or a relative depth, if this option is set memory usage became 2 * reference base + 2 number_base_store + epsilon.
rustyread 0.4.1 Machamp Pierre Marijon <pierre@marijon.fr> A long read simulator based on badread idea and model USAGE: rustyread [OPTIONS] <SUBCOMMAND> OPTIONS: -h, --help Print help information -t, --threads <THREADS> Number of thread use by rustyread, 0 use all avaible core, default value 0 -v, --verbosity Verbosity level also control by environment variable RUSTYREAD_LOG if flag is set RUSTYREAD_LOG value is ignored -V, --version Print version information SUBCOMMANDS: help Print this message or the help of the given subcommand(s) simulate Generate fake long read rustyread-simulate Generate fake long read USAGE: rustyread simulate [FLAGS] [OPTIONS] --reference <reference-path> --quantity <quantity> FLAGS: -h, --help Prints help information --small_plasmid_bias If set, then small circular plasmids are lost when the fragment length is too high (default: small plasmids are included regardless of fragment length) -V, --version Prints version information OPTIONS: --chimera <chimera> Percentage at which separate fragments join together [default: 1] --end_adapter <end-adapter> Adapter parameters for read ends (rate and amount) [default: 50,20] --end_adapter_seq <end-adapter-seq> Adapter parameters for read ends [default: GCAATACGTAACTGAACGAAGT] --error_model <error-model> Path to an error model file [default: nanopore2020] --glitches <glitches> Read glitch parameters (rate, size and skip) [default: 10000,25,25] --identity <identity> Sequencing identity distribution (mean, max and stdev) [default: 85,95,5] --junk_reads <junk> This percentage of reads wil be low complexity junk [default: 1] --length <length> Fragment length distribution (mean and stdev) [default: 15000,13000] --number_base_store <nb-base-store> Number of base, rustyread can store in ram before write in output in absolute value (e.g. 250M) or a relative depth (e.g. 25x) --output <output-path> Where read is write --qscore_model <qscore-model> Path to an quality score model file [default: nanopore2020] --quantity <quantity> Either an absolute value (e.g. 250M) or a relative depth (e.g. 25x) --random_reads <random> This percentage of reads wil be random sequence [default: 1] --reference <reference-path> Reference fasta (can be gzipped, bzip2ped, xzped) --seed <seed> Random number generator seed for deterministic output (default: different output each time) --start_adapter <start-adapter> Adapter parameters for read starts (rate and amount) [default: 90,60] --start_adapter_seq <start-adapter-seq> Adapter parameters for read starts [default: AATGTACTTCGTTCAGTTACGTATTGCT] If you haven't bioconda setup follow this instruction
conda|mamba install rustyread If you haven't a rust environment you can use rustup or your package manager.
cargo install --git https://github.com/natir/rustyread.git --tag 0.4.1 git clone https://github.com/natir/rustyread.git cd rustyread git checkout 0.4.1 cargo install --path . Currently the minimum supported Rust version is 1.57.0.
- option
small_plasmid_biasis silently ignored but small plasmid is 'sequence'