https://github.com/stevekm/squish
fastq file compression program
https://github.com/stevekm/squish
compression fastq fastq-compression fastq-files
Last synced: 3 months ago
JSON representation
fastq file compression program
- Host: GitHub
- URL: https://github.com/stevekm/squish
- Owner: stevekm
- Created: 2023-11-01T22:53:54.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-12-01T23:13:50.000Z (over 1 year ago)
- Last Synced: 2024-05-12T00:46:30.924Z (about 1 year ago)
- Topics: compression, fastq, fastq-compression, fastq-files
- Language: Go
- Homepage:
- Size: 77.1 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# squish
A program to re-arrange FASTQ file (.fastq.gz) reads in order to compress the file to a smaller size.
# Usage
Just point `squish` at your input fastq.gz file, and supply it with the filename of the desired output file.
```
$ ./squish data/test1.fastq.gz output.gz
2023/11/01 19:18:05 Input file data/test1.fastq.gz of size 4481 Bytes
2023/11/01 19:18:05 3276 reads loaded
2023/11/01 19:18:05 3276 reads sorted
2023/11/01 19:18:05 Output file created output.gz of size 4045 Bytes
2023/11/01 19:18:05 Size reduced by 436 Bytes (0.0973)
```The current implementation of `squish` loads all fastq reads into memory, so you will need available system memory equal to the uncompressed size, plus extra for overhead. Hopefully future versions of `squish` can reduce memory requirements.
Tests with various .fastq.gz files saw compression improvements ranging from 3-35%.
# Installation
You can download a pre-built binary from the Releases page [here](https://github.com/stevekm/squish/releases).
You can build it from source with Go version 1.20+
```
go build -o ./squish ./main.go
```(Makefile recipe for building is also included)