app fqkit

fqkit: a simple and cross-platform program for fastq file manipulation

35 releases

0.4.10 Jul 18, 2024
0.4.8 May 27, 2024
0.3.13 Mar 28, 2024
0.3.6 Dec 21, 2023
0.1.0 Dec 6, 2022

#31 in Biology

GPL-3.0 license

170KB
4.5K SLoC

icon

fqkit

Static Badge Static Badge Crates.io (latest) Crates.io GitHub Gist last commit

🦀 a simple program for fastq file manipulation

install

setp1: install cargo first
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
step2: on linux or windows
cargo install fqkit
# or

git clone https://github.com/sharkLoc/fqkit.git
cd fqkit
cargo b --release
# mv target/release/fqkit to anywhere you want 
install latest version
cargo install --git https://github.com/sharkLoc/fqkit.git

usage

FqKit -- A simple and cross-platform program for fastq file manipulation

Version: 0.4.10

Authors: sharkLoc <mmtinfo@163.com>
Source code: https://github.com/sharkLoc/fqkit.git

Fqkit supports reading and writing gzip (.gz) format.
Bzip2 (.bz2) format is supported since v0.3.8.
Xz (.xz) format is supported since v0.3.9.
Under the same compression level, xz has the highest compression ratio but consumes more time. 

Compression level:
  format   range   default   crate
  gzip     1-9     6         https://crates.io/crates/flate2
  bzip2    1-9     6         https://crates.io/crates/bzip2
  xz       1-9     6         https://crates.io/crates/xz2


Usage: fqkit [OPTIONS] <COMMAND>

Commands:
  topn     get first N records from fastq file [aliases: head]
  tail     get last N records from fastq file
  concat   concat fastq files from different lanes
  subfq    subsample sequences from big fastq file [aliases: sample]
  select   select pair-end reads by read id
  trim     trim fastq reads by position
  adapter  cut the adapter sequence on the reads
  filter   a simple filter for pair end fastq sqeuence
  range    print fastq records in a range
  search   search reads/motifs from fastq file
  grep     grep fastq sequence by read id or full name
  stats    summary for fastq format file [aliases: stat]
  kmer     a simple kmer counter
  shuffle  shuffle fastq sequences
  size     report the number sequences and bases
  slide    extract subsequences in sliding windows
  sort     sort fastq file by name/seq/gc/length
  plot     line plot for A T G C N percentage in read position
  fq2fa    translate fastq to fasta
  fq2sam   converts a fastq file to an unaligned SAM file
  fqscore  converts the fastq file quality scores
  flatten  flatten fastq sequences [aliases: flat]
  barcode  perform demultiplex for pair-end fastq reads [aliases: demux]
  check    check the validity of a fastq record
  remove   remove reads by read name
  rename   rename sequence id in fastq file
  reverse  get a reverse-complement of fastq file [aliases: rev]
  split    split interleaved fastq file
  merge    merge PE reads as interleaved fastq file
  mask     convert any low quality base to 'N' or other chars
  split2   split fastq file by records number
  gcplot   get GC content result and plot
  length   get reads length count [aliases: len]
  view     view fastq file page by page
  help     Print this message or the help of the given subcommand(s)

Global Arguments:
      --compress-level <INT>  set gzip/bzip2/xz compression level 1 (compress faster) - 9 (compress better) for gzip/bzip2/xz output file, just work with option -o/--out [default: 6]
      --output-type <u|g|b|x>  output type for stdout: 'g' gzip; 'b' bzip2; 'x' xz; 'u' uncompressed txt format [default: u
      --log <FILE>            if file name specified, write log message to this file, or write to stderr
  -v, --verbosity...          control verbosity of logging, [-v: Error, -vv: Warn, -vvv: Info, -vvvv: Debug, -vvvvv: Trace, defalut: Debug]

Global FLAGS:
  -q, --quiet    be quiet and do not show any extra information
  -h, --help     prints help information
  -V, --version  prints version information

Use "fqkit help [command]" for more information about a command

** any bugs please report issues **💖

Dependencies

~26–40MB
~623K SLoC