A powerful manipulation suite for interleaved fastq files.
Executables can read/write to stdin and stdout, and they are compatible with the interleaved fastq format.
This makes it much easier to perform streaming operations using unix pipes.
Fasten is programmed in the Rust programming language. More information about Rust, including installation and the executable cargo, can be found at rust-lang.org.
After downloading, use the Rust executable cargo like so:
cd fasten
cargo build --release
export PATH=$PATH:$(pwd)/target/release
All executables will be in the directory fasten/target/release.
note: there are some Makefile methods to help including
make all to make the following
make release install fast executables
make debug install executables quickly (although the executables will not be optimized)
make fasten/doc compile lastest documents
make clean uninstall local binaries
Installation without git
You can also install Fasten straight from https://crates.io using the following command:
All scripts accept the parameters, read uncompressed fastq format from stdin, and print uncompressed fastq format to stdout. All paired end fastq files must be in interleaved format, and they are written in interleaved format, except when deshuffling with fasten_shuffle.
--help
--numcpus Not all scripts will take advantage of numcpus. (not currently implemented)
--paired-end Input reads are interleaved paired end
Executables are benchmarked under GitHub Actions.
A CI artifact is generated, and a composite image is available in the compressed file.
Etymology
Many of these scripts have inspiration from the fastx toolkit, and I wanted to make a fasty which was already the name of a bioinformatics program.
Therefore I cycled through other letters of the alphabet and came across “N.” So it is possible to pronounce this project like “Fast-N” or in a way
that indicates that you are securing your analysis by “fasten”ing it (with a silent T).
Citation
To cite, please refer to Katz et al., (2024). Fasten: a toolkit for streaming operations on fastq files. Journal of Open Source Software, 9(94), 6030, https://doi.org/10.21105/joss.06030
Fasten
A powerful manipulation suite for interleaved fastq files. Executables can read/write to
stdinandstdout, and they are compatible with the interleaved fastq format. This makes it much easier to perform streaming operations using unix pipes.Synopsis
read metrics
read cleaning
Installation
Installation from source
Fasten is programmed in the Rust programming language. More information about Rust, including installation and the executable
cargo, can be found at rust-lang.org.After downloading, use the Rust executable
cargolike so:All executables will be in the directory
fasten/target/release.note: there are some
Makefilemethods to help includingmake allto make the followingmake releaseinstall fast executablesmake debuginstall executables quickly (although the executables will not be optimized)make fasten/doccompile lastest documentsmake cleanuninstall local binariesInstallation without
gitYou can also install Fasten straight from https://crates.io using the following command:
Detailed information on how this works can be found in the cargo handbook at https://doc.rust-lang.org/cargo/commands/cargo-install.html.
General usage
All scripts accept the parameters, read uncompressed fastq format from stdin, and print uncompressed fastq format to stdout. All paired end fastq files must be in interleaved format, and they are written in interleaved format, except when deshuffling with
fasten_shuffle.--help--numcpusNot all scripts will take advantage of numcpus. (not currently implemented)--paired-endInput reads are interleaved paired end--verbosePrint more status messagesDocumentation
Please see the inline documentation at https://lskatz.github.io/fasten/fasten
This documentation was built with
cargo doc --no-depsOther documentation
Contributing
Instructions for how to contribute can be found in CONTRIBUTING.md.
Fasten script descriptions
All executables read and write in the fastq format except
fasten_convert.fasten_cleanfasten_convertfasten_straightenfasten_metricsfasten_pefasten_randomizefasten_combinefasten_kmerfasten_normalizefasten_samplefasten_headfasten_shufflefasten_validatefasten_inspectandfasten_repairfasten_inspectfasten_repairfasten_quality_filterfasten_trimfasten_replacefasten_mutatefasten_regexfasten_progressfasten_sortBenchmarking
Executables are benchmarked under GitHub Actions. A CI artifact is generated, and a composite image is available in the compressed file.
Etymology
Many of these scripts have inspiration from the fastx toolkit, and I wanted to make a
fastywhich was already the name of a bioinformatics program. Therefore I cycled through other letters of the alphabet and came across “N.” So it is possible to pronounce this project like “Fast-N” or in a way that indicates that you are securing your analysis by “fasten”ing it (with a silent T).Citation
To cite, please refer to Katz et al., (2024). Fasten: a toolkit for streaming operations on fastq files. Journal of Open Source Software, 9(94), 6030, https://doi.org/10.21105/joss.06030