Git Product home page Git Product logo

fastqc-rs's Introduction

fastqc-rs logo fastqc-rs

Rust Crates.io Crates.io Crates.io install with bioconda Bioconda downloads

A fast quality control tool for FASTQ files written in rust inspired by fastQC. Results are written to stdout as a self containing html report with visualizations for all statistics. Summary files for usage with MultiQC can also be generated.

Available statistics are:

  • Read length
  • Sequence quality score
  • Sequence quality per base
  • Sequence content per base
  • k-mer content
  • GC content

For a detailed list of changes, take a look at the CHANGELOG.

Installation

There are multiple ways to install fastqc-rs:

Bioconda

fastqc-rs is available via Bioconda. With Bioconda set up, installation is as easy as

conda install fastqc-rs

Cargo

If the Rust compiler and associated Cargo are installed, fastqc-rs can be installed via

cargo install fastqc-rs

Source

Download the source code and within the root directory of source run

cargo install

Usage

fqc -q path/to/my_sequence.fastq > report.html

Arguments:

Parameter Default Description
-q --fastq - The path to the FASTQ file to use
-k 5 The length k of k-mers for k-mer counting
-s --summary - Creates an output file for usage with MultiQC under the given path

fastqc-rs's People

Contributors

dependabot[bot] avatar fxwiegand avatar jelber2 avatar nlhepler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

fastqc-rs's Issues

Fastqc-rs incompatibility with rust-1.58.1?

Hi,

After this announcement (https://blog.rust-lang.org/2022/01/20/cve-2022-21658.html), rust-1.58.1 was released, so I tried compiling fastqc-rs with rust-1.58.1 and get the following:

$ rustup update

info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2022-01-20, rust version 1.58.1 (db9d1b20b 2022-01-20)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: removing previous version of component 'cargo'
info: removing previous version of component 'clippy'
info: removing previous version of component 'rust-docs'
info: removing previous version of component 'rust-std'
info: removing previous version of component 'rustc'
info: removing previous version of component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
 18.9 MiB /  18.9 MiB (100 %)   3.9 MiB/s in  3s ETA:  0s
info: installing component 'rust-std'
 25.0 MiB /  25.0 MiB (100 %)  11.6 MiB/s in  2s ETA:  0s
info: installing component 'rustc'
 53.2 MiB /  53.2 MiB (100 %)  13.4 MiB/s in  3s ETA:  0s
info: installing component 'rustfmt'
info: cleaning up downloads & tmp directories

$ cargo install fastqc-rs

    Updating crates.io index
  Installing fastqc-rs v0.3.0
   Compiling libc v0.2.114
   Compiling autocfg v1.0.1
   Compiling cfg-if v1.0.0
   Compiling memchr v2.4.1
   Compiling version_check v0.9.4
   Compiling cc v1.0.72
   Compiling cfg-if v0.1.10
   Compiling log v0.4.14
   Compiling lazy_static v1.4.0
   Compiling pkg-config v0.3.24
   Compiling futures v0.1.31
   Compiling semver-parser v0.7.0
   Compiling proc-macro2 v1.0.36
   Compiling maybe-uninit v2.0.0
   Compiling unicode-xid v0.2.2
   Compiling byteorder v1.4.3
   Compiling syn v1.0.86
   Compiling either v1.6.1
   Compiling fnv v1.0.7
   Compiling rand_core v0.4.2
   Compiling tinyvec_macros v0.1.0
   Compiling autocfg v0.1.7
   Compiling scopeguard v1.1.0
   Compiling slab v0.4.5
   Compiling matches v0.1.9
   Compiling siphasher v0.3.9
   Compiling unicode-bidi v0.3.7
   Compiling ppv-lite86 v0.2.16
   Compiling once_cell v1.9.0
   Compiling serde_derive v1.0.136
   Compiling adler v1.0.2
   Compiling bitflags v1.3.2
   Compiling serde v1.0.136
   Compiling regex-syntax v0.6.25
   Compiling itoa v0.4.8
   Compiling hashbrown v0.11.2
   Compiling percent-encoding v2.1.0
   Compiling crossbeam-utils v0.8.6
   Compiling serde_json v1.0.78
   Compiling ucd-trie v0.1.3
   Compiling crc32fast v1.3.1
   Compiling gimli v0.26.1
   Compiling openssl v0.10.38
   Compiling percent-encoding v1.0.1
   Compiling httparse v1.5.1
   Compiling foreign-types-shared v0.1.1
   Compiling failure_derive v0.1.8
   Compiling ryu v1.0.9
   Compiling native-tls v0.2.8
   Compiling maplit v1.0.2
   Compiling same-file v1.0.6
   Compiling unic-char-range v0.9.0
   Compiling itoa v1.0.1
   Compiling unic-common v0.9.0
   Compiling try-lock v0.2.3
   Compiling rustc-demangle v0.1.21
   Compiling encoding_rs v0.8.30
   Compiling openssl-probe v0.1.5
   Compiling dtoa v0.4.8
   Compiling deunicode v0.4.3
   Compiling mime v0.3.16
   Compiling safemem v0.3.3
   Compiling textwrap v0.14.2
   Compiling humansize v1.1.1
   Compiling bytecount v0.6.2
   Compiling termcolor v1.1.2
   Compiling strsim v0.10.0
   Compiling rustc-hash v1.1.0
   Compiling try_from v0.3.2
   Compiling tinyvec v1.5.1
   Compiling lock_api v0.3.4
   Compiling itertools v0.10.3
   Compiling form_urlencoded v1.0.1
   Compiling rand_core v0.3.1
   Compiling rand_jitter v0.1.4
   Compiling thread_local v1.1.4
   Compiling semver v0.9.0
   Compiling foreign-types v0.3.2
   Compiling base64 v0.10.1
   Compiling pest v2.1.3
   Compiling walkdir v2.3.2
   Compiling unic-ucd-version v0.9.0
   Compiling unic-char-property v0.9.0
   Compiling rand_pcg v0.1.2
   Compiling rand_chacha v0.1.1
   Compiling rand v0.6.5
   Compiling uncased v0.9.6
   Compiling unicase v2.6.0
   Compiling crossbeam-utils v0.7.2
   Compiling memoffset v0.5.6
   Compiling miniz_oxide v0.4.4
   Compiling crossbeam-epoch v0.8.2
   Compiling indexmap v1.8.0
   Compiling num-traits v0.2.14
   Compiling num-integer v0.1.44
   Compiling slug v0.1.4
   Compiling rand_xorshift v0.1.1
   Compiling rand_hc v0.1.0
   Compiling rand_isaac v0.1.1
   Compiling unic-ucd-segment v0.9.0
   Compiling rustc_version v0.2.3
   Compiling smallvec v0.6.14
   Compiling aho-corasick v0.7.18
   Compiling object v0.27.1
   Compiling bstr v0.2.17
   Compiling os_str_bytes v6.0.0
   Compiling buf_redux v0.8.4
   Compiling phf_shared v0.10.0
   Compiling tokio-sync v0.1.8
   Compiling want v0.2.0
   Compiling parking_lot_core v0.6.2
   Compiling parking_lot v0.9.0
   Compiling hyper v0.12.36
   Compiling unic-segment v0.9.0
   Compiling quote v1.0.15
   Compiling unicode-normalization v0.1.19
   Compiling phf v0.10.1
   Compiling openssl-sys v0.9.72
   Compiling backtrace v0.3.63
   Compiling lzma-sys v0.1.17
   Compiling bzip2-sys v0.1.11+1.0.8
   Compiling pest_meta v2.1.3
   Compiling iovec v0.1.4
   Compiling num_cpus v1.13.1
   Compiling time v0.1.44
   Compiling net2 v0.2.37
   Compiling getrandom v0.2.4
   Compiling rand_os v0.1.3
   Compiling atty v0.2.14
   Compiling mime_guess v2.0.3
   Compiling bytes v0.4.12
   Compiling flate2 v1.0.22
   Compiling futures-cpupool v0.1.8
   Compiling clap v3.0.12
   Compiling rand_core v0.6.3
   Compiling mio v0.6.23
   Compiling rand_chacha v0.3.1
   Compiling tokio-executor v0.1.10
   Compiling crossbeam-queue v0.2.3
   Compiling regex v1.5.4
   Compiling tokio-io v0.1.13
   Compiling http v0.1.21
   Compiling string v0.2.1
   Compiling tokio-buf v0.1.1
   Compiling xz2 v0.1.6
   Compiling tokio-current-thread v0.1.7
   Compiling tokio-timer v0.2.13
   Compiling rand v0.8.4
   Compiling crossbeam-deque v0.7.4
   Compiling idna v0.1.5
   Compiling idna v0.2.3
   Compiling tokio-reactor v0.1.12
   Compiling tokio-threadpool v0.1.18
   Compiling addr2line v0.17.0
   Compiling uuid v0.7.4
   Compiling chrono v0.4.19
   Compiling tokio-tcp v0.1.4
   Compiling url v1.7.2
   Compiling globset v0.4.8
   Compiling url v2.2.2
   Compiling tokio v0.1.22
   Compiling phf_generator v0.10.0
   Compiling phf_codegen v0.10.0
   Compiling ignore v0.4.18
   Compiling parse-zoneinfo v0.3.0
   Compiling cookie v0.12.0
   Compiling publicsuffix v1.5.6
   Compiling http-body v0.1.0
   Compiling h2 v0.1.26
   Compiling chrono-tz-build v0.0.2
   Compiling globwalk v0.8.1
   Compiling synstructure v0.12.6
   Compiling pest_generator v2.1.3
   Compiling chrono-tz v0.6.1
   Compiling pest_derive v2.1.0
   Compiling failure v0.1.8
   Compiling bzip2 v0.4.3
   Compiling needletail v0.4.1
   Compiling hyper-tls v0.3.2
   Compiling serde_urlencoded v0.5.5
   Compiling cookie_store v0.7.0
   Compiling tera v1.15.0
   Compiling reqwest v0.9.24
   Compiling fastqc-rs v0.3.0
error[E0599]: no method named `about` found for struct `Arg` in the current scope
  --> /nfs/scistore16/itgrp/jelbers/.cargo/registry/src/github.com-1ecc6299db9ec823/fastqc-rs-0.3.0/src/main.rs:14:18
   |
14 |                 .about("The input FASTQ file to use.")
   |                  ^^^^^ method not found in `Arg<'_>`

error[E0599]: no method named `about` found for struct `Arg` in the current scope
  --> /nfs/scistore16/itgrp/jelbers/.cargo/registry/src/github.com-1ecc6299db9ec823/fastqc-rs-0.3.0/src/main.rs:22:18
   |
22 |                 .about("The length k of k-mers for k-mer counting.")
   |                  ^^^^^ method not found in `Arg<'_>`

error[E0599]: no method named `about` found for struct `Arg` in the current scope
  --> /nfs/scistore16/itgrp/jelbers/.cargo/registry/src/github.com-1ecc6299db9ec823/fastqc-rs-0.3.0/src/main.rs:30:18
   |
30 |                 .about("Creates an output file for usage with MultiQC under the given path.")
   |                  ^^^^^ method not found in `Arg<'_>`

For more information about this error, try `rustc --explain E0599`.
error: failed to compile `fastqc-rs v0.3.0`, intermediate artifacts can be found at `/tmp/cargo-install65g6Ka`

Caused by:
  could not compile `fastqc-rs` due to 3 previous errors

Requesting Enhancement: Summary files ala FastQC

Hey!

Thanks for the tool! It is blindingly fast and real easy to use.

One thing that I have a request for is to generate a summary file(s) similar to FastQC so that the same can be parsed with MultiQC to summarize over the entire datasets.

Would you think that this would be possible?

lzma unstable lib feature

Hi,

Running cargo build on the tar gets me this:

Ubuntu 20.04, any ideas? A deprecated rust library ?


  Compiling lzma-sys v0.1.17
error[E0658]: use of unstable library feature 'slice_strip'
   --> /mnt/ngsnfs/tools/rust/cargo_home/registry/src/github.com-1ecc6299db9ec823/os_str_bytes-4.2.0/src/raw_str.rs:605:16
    |
605 |         self.0.strip_prefix(pat).map(Self::from_raw_bytes_unchecked)
    |                ^^^^^^^^^^^^
    |
    = note: see issue #73413 <https://github.com/rust-lang/rust/issues/73413> for more information

error[E0658]: use of unstable library feature 'slice_strip'
   --> /mnt/ngsnfs/tools/rust/cargo_home/registry/src/github.com-1ecc6299db9ec823/os_str_bytes-4.2.0/src/raw_str.rs:635:16
    |
635 |         self.0.strip_suffix(pat).map(Self::from_raw_bytes_unchecked)
    |                ^^^^^^^^^^^^
    |
    = note: see issue #73413 <https://github.com/rust-lang/rust/issues/73413> for more information

error[E0658]: use of unstable library feature 'slice_strip'
   --> /mnt/ngsnfs/tools/rust/cargo_home/registry/src/github.com-1ecc6299db9ec823/os_str_bytes-4.2.0/src/raw_str.rs:726:39
    |
726 |         impl_trim_matches!(self, pat, strip_suffix)
    |                                       ^^^^^^^^^^^^
    |
    = note: see issue #73413 <https://github.com/rust-lang/rust/issues/73413> for more information

error[E0658]: use of unstable library feature 'slice_strip'
   --> /mnt/ngsnfs/tools/rust/cargo_home/registry/src/github.com-1ecc6299db9ec823/os_str_bytes-4.2.0/src/raw_str.rs:749:39
    |
749 |         impl_trim_matches!(self, pat, strip_prefix)
    |                                       ^^^^^^^^^^^^
    |
    = note: see issue #73413 <https://github.com/rust-lang/rust/issues/73413> for more information

   Compiling bzip2-sys v0.1.11+1.0.8
error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0658`.
error: could not compile `os_str_bytes`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed

Attempting to analyze any file results in panic

I've tried this on two different computers running Ubuntu in WSL. Any time I try to analyze a file like fqc -q file.fastq > report.html I get a panic with the following error message.

thread 'main' panicked at /home/username/.cargo/registry/src/index.crates.io-6f17d22bba15001f/fastqc-rs-0.3.2/src/process.rs:362:37: called `Result::unwrap()` on an `Err` value: Error(Hyper(Error(Connect, Custom { kind: Uncategorized, error: "failed to lookup address information: Temporary failure in name resolution" })), "https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css") note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Happens on both my work computer at work and my personal computer at home. Copying and pasting that address into the browser does not give me an error (it displays a bunch of CSS), so I'm not sure what the problem is with running it in WSL.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.