seqtkrb is a ruby gem that wraps seqtk. This gives you fast access to basic operations on FASTA/FASTQ files without having to roll your own C extension or write a slow implementation in ruby.
Currently only the sampling functionality of seqtk is exposed. Create an issue or a Pull Request if you want more functionality.
Installation
Add this line to your application's Gemfile:
gem 'seqtkrb'
And then execute:
$ bundle
Or install it yourself as:
$ gem install seqtkrb
Usage
require 'seqtkrb'
seq = Seqtkrb::Seqtk.new # will download and install seqtk if it is not found
# basic sampling
seq.sample('reads.fq', 'sampled.fq' 10_000) # sample 10,000 reads
seq.sample('reads.fq', 'sampled.fq' 0.5) # sample reads with 50% chance of taking each read
# sampling from paired files
seq.sample('reads_l.fq', 'sampled_l.fq', 1_000, 1234) # sample 1,000 left reads with seed 1234
seq.sample('reads_r.fq', 'sampled_r.fq', 1_000, 1234) # sample the matching right reads
# low memory sampling (uses two passes)
seq.sample_lowmem('reads.fq', 'sampled.fq', 1_000_000) # sample 1 million reads
Contributing
- Fork it ( https://github.com/[my-github-username]/seqtkrb/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request