• Stars
    star
    1,066
  • Rank 43,052 (Top 0.9 %)
  • Language
    Go
  • License
    MIT License
  • Created over 8 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A cross-platform and ultrafast toolkit for FASTA/Q file manipulation

SeqKit - a cross-platform and ultrafast toolkit for FASTA/Q file manipulation

Features

  • Easy to install (download)
    • Providing statically linked executable binaries for multiple platforms (Linux/Windows/macOS, amd64/arm64)
    • Light weight and out-of-the-box, no dependencies, no compilation, no configuration
    • conda install -c bioconda seqkit
  • Easy to use
    • Ultrafast (see technical-details and benchmark)
    • Seamlessly parsing both FASTA and FASTQ formats
    • Supporting (gzip/xz/zstd/bzip2 compressed) STDIN/STDOUT and input/output file, easily integrated in pipe
    • Reproducible results (configurable rand seed in sample and shuffle)
    • Supporting custom sequence ID via regular expression
    • Supporting Bash/Zsh autocompletion
  • Versatile commands (usages and examples)

Installation

Go to Download Page for more download options and changelogs, or install via conda:

conda install -c bioconda seqkit

Subcommands

category command function input strand-sensitivity multi-threads popularity
basic seq transform sequences: extract ID/seq, filter by length/quality, remove gaps, reverse complementโ€ฆ FASTA/Q โ˜…โ˜…โ˜…โ˜…โ˜…
stats simple statistics: #seqs, min/max_len, N50, Q20%, Q30%โ€ฆ FASTA/Q โœ“ โ˜…โ˜…โ˜…โ˜…โ˜…
sum compute message digest for all sequences in FASTA/Q files FASTA/Q + or both โœ“
subseq extract subsequences or flanking sequences by region/gtf/bed, FASTA/Q + or/and - โ˜…โ˜…โ˜…
sliding extract subsequences in sliding windows FASTA/Q + only โ˜…โ˜…
faidx create FASTA index file and extract subsequence (with more features than samtools faidx) FASTA + or/and -
watch monitoring and online histograms of sequence features FASTA/Q
sana sanitize broken single line FASTQ files FASTQ
scat real time concatenation and streaming of fastx files FASTA/Q โœ“
format conversion fq2fa convert FASTQ to FASTA FASTQ โ˜…โ˜…
fa2fq retrieve corresponding FASTQ records by a FASTA file FASTA/Q
fx2tab convert FASTA/Q to tabular format FASTA/Q โ˜…โ˜…
tab2fx convert tabular format to FASTA/Q format FASTA/Q
convert convert FASTQ quality encoding between Sanger, Solexa and Illumina FASTA/Q
translate translate DNA/RNA to protein sequence FASTA/Q + or/and - โ˜…โ˜…
searching grep search sequences by ID/name/sequence/sequence motifs, mismatch allowed FASTA/Q + and - partly, -m โ˜…โ˜…โ˜…โ˜…โ˜…
locate locate subsequences/motifs, mismatch allowed FASTA/Q + and - partly, -m โ˜…โ˜…โ˜…โ˜…โ˜…
amplicon extract amplicon (or specific region around it), mismatch allowed FASTA/Q + and - partly, -m โ˜…
fish look for short sequences in larger sequences FASTA/Q + and -
set operation sample sample sequences by number or proportion FASTA/Q โ˜…โ˜…โ˜…โ˜…
rmdup remove duplicated sequences by ID/name/sequence FASTA/Q + and - โ˜…โ˜…โ˜…
common find common sequences of multiple files by id/name/sequence FASTA/Q + and -
duplicate duplicate sequences N times FASTA/Q โ˜…
split split sequences into files by id/seq region/size/parts (mainly for FASTA) FASTA preffered โ˜…
split2 split sequences into files by size/parts (FASTA, PE/SE FASTQ) FASTA/Q โ˜…โ˜…
head print first N FASTA/Q records FASTA/Q
head-genome print sequences of the first genome with common prefixes in name FASTA/Q
range print FASTA/Q records in a range (start:end) FASTA/Q
pair match up paired-end reads from two fastq files FASTA/Q
edit concat concatenate sequences with same the ID from multiple files FASTA/Q + only โ˜…โ˜…โ˜…
replace replace name/sequence by regular expression FASTA/Q + only โ˜…โ˜…
restart reset start position for circular genome FASTA/Q + only โ˜…
mutate edit sequence (point mutation, insertion, deletion) FASTA/Q + only
rename rename duplicated IDs FASTA/Q โ˜…
ordering sort sort sequences by id/name/sequence/length FASTA preffered โ˜…โ˜…
shuffle shuffle sequences FASTA preffered
BAM processing bam monitoring and online histograms of BAM record features BAM

Notes:

  • Strand-sensitivity:
    • + only: only processing on the positive/forward strand.
    • + and -: searching on both strands.
    • + or/and -: depends on users' flags/options/arguments.
  • Multiple-threads: Using the default 4 threads is fast enough for most commands, some commands can benefit from extra threads.
  • Popularity: Bases on statistics of 227 publications citing seqkit since 2020.

Citation

W Shen, S Le, Y Li*, F Hu*. SeqKit: a cross-platform and ultrafast toolkit for FASTA/Q file manipulation. PLOS ONE. doi:10.1371/journal.pone.0163962.

Contributors

Acknowledgements

We thank Lei Zhang for testing SeqKit, and also thank Jim Hester, author of fasta_utilities, for advice on early performance improvements of for FASTA parsing and Brian Bushnell, author of BBMaps, for advice on naming SeqKit and adding accuracy evaluation in benchmarks. We also thank Nicholas C. Wu from the Scripps Research Institute, USA for commenting on the manuscript and Guangchuang Yu from State Key Laboratory of Emerging Infectious Diseases, The University of Hong Kong, HK for advice on the manuscript.

We thank Li Peng for reporting many bugs.

We appreciate Klaus Post for his fantastic packages ( compress and pgzip ) which accelerate gzip file reading and writing.

Contact

Create an issue to report bugs, propose new functions or ask for help.

License

MIT License

Starchart

Stargazers over time

More Repositories

1

csvtk

A cross-platform, efficient and practical CSV/TSV toolkit in Golang
Go
882
star
2

awesome

Awesome resources on Bioinformatics, data science, machine learning, programming language (Python, Golang, R, Perl) and miscellaneous stuff.
568
star
3

taxonkit

A Practical and Efficient NCBI Taxonomy Toolkit, also supports creating NCBI-style taxdump files for custom taxonomies
Go
256
star
4

brename

A practical cross-platform command-line tool for safely batch renaming files/directories via regular expression
Go
224
star
5

kmcp

Accurate metagenomic profiling && Fast large-scale sequence/genome searching
Go
139
star
6

bio_scripts

Practical, reusable scripts for bioinformatics
Perl
90
star
7

bio

A lightweight and high-performance bioinformatics package in Golang
Go
83
star
8

unikmer

Toolkit for k-mer with taxonomic information
Go
53
star
9

ClipboardTextJoiner

Monitoring system clipboard change and joining multi-line text. It's very useful when copying multi-line text from PDF files.
Perl
47
star
10

go4bio

Golang for Bioinformatics
31
star
11

gtdb-taxdump

GTDB taxonomy taxdump files with trackable TaxIds
R
28
star
12

easy_qsub

Easily submitting multiple PBS jobs or running local jobs in parallel. Multiple input files supported.
Python
27
star
13

countminsketch

An implementation of Count-Min Sketch in Golang
Go
24
star
14

taxid-changelog

NCBI taxonomic identifier (taxid) changelog, including taxids deletion, new adding, merge, reuse, and rank/name changes.
R
19
star
15

bwt

Burrows-Wheeler Transform and FM-index in golang
Go
18
star
16

cnote

A platform independent command line note app
Go
17
star
17

gtaxon

gTaxon - a fast cross-platform NCBI taxonomy data querying (gi2taxid, taxid2taxon, name2taxid, LCA) tool, with cmd client and REST API server for both local and remote server.
Go
15
star
18

easy_sbatch

easy_sbatch - Batch submitting Slurm jobs with script templates
Python
14
star
19

ncbi_acc2gtdb_acc

Mapping NCBI Genbank accession to GTDB accession
14
star
20

strobemers

A Go implementation of the strobemers (https://github.com/ksahlin/strobemers)
Go
14
star
21

ictv-taxdump

NCBI-style taxdump files for International Committee on Taxonomy of Viruses (ICTV)
12
star
22

crun

Run workflow mixed with concurrent and sequential jobs. Please use https://github.com/shenwei356/rush
Go
10
star
23

breader

breader (Buffered File Reader), asynchronous parsing and pre-processing while reading file. Safe cancellation is also supported.
Go
9
star
24

pinyin

ๆ”ถ้›†ๆฑ‰ๅญ—๏ผŒ็ป“ๅˆๆฑ‰่ฏญๆ‹ผ้Ÿณๆฅๅ–ๅ
Python
8
star
25

pand

Bitwise AND on two byte-slices using SIMD instructions
Go
7
star
26

unik

A k-mer serialization package for Golang
Go
7
star
27

kmers

bit-packed k-mers methods for Golang
Go
7
star
28

install-windows

Windows็ณป็ปŸๅฎ‰่ฃ…็ป้ชŒ
6
star
29

perfect-bioinformatic-tools

What should perfect bioinformatic tools be like?
6
star
30

breseq-rm-bg

Removing control/background mutations from breseq output index.html
Go
5
star
31

bbuffer

An alternative of standard library bytes.Buffer
Go
5
star
32

dirsize

Summarize size of directories and files in directories
Go
5
star
33

datakit

CSV/TSV file manipulation and more. Please use my another tool: csvtk, https://github.com/shenwei356/csvtk
Python
4
star
34

util

Golang utility packages
Go
4
star
35

uint64-hash-bench

Benchmark of three uint64 hash functions
Go
3
star
36

simhash-eval

Go
2
star
37

sun2021-cami-profiles

Ground truth metagenomic profiles in CAMI format for the 25 metagenomic reads in Sun et al.
2
star
38

go-hashing-kmer-bench

Benchmark of hashing k-mers in Golang
Go
2
star
39

shenwei356

2
star
40

RNA-HairpinFigure

Draw hairpin-like text figure from RNA sequence and its secondary structure in dot-bracket notation.
Perl
2
star
41

BioUtil

Bioinformatics Perl modules
Perl
2
star
42

rust-practice

Some tools in Rust for learning
2
star
43

todo

A very simple online todo list application
Go
1
star
44

blast-nf

A nextflow-based BLAST command-line helper tool
Nextflow
1
star
45

easy_run

Run command with default options in configuration file
Python
1
star
46

swr

Wei Shen' R utilities
R
1
star
47

shenwei356.github.io

HTML
1
star
48

uintset

Fast uint64 Set in golang
Go
1
star
49

process_queue

Process queue for high CPU/RAM/time usage processes
Perl
1
star
50

roux2016-mock-virome-cami-profile

Ground truth metagenomic profiles in CAMI format for the mock virome communities in Roux et al.
1
star