Need help with fastqe?
Click the β€œchat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

fastqe
136 Stars 14 Forks BSD 3-Clause "New" or "Revised" License 63 Commits 16 Opened issues

Description

FASTQ sequence quality visualisation with Emoji

Services available

!
?

Need anything else?

Contributors list

Example

FASTQ with Emoji = FASTQE πŸ€”

Read one or more FASTQ files, fastqe will compute quality stats for each file and print those stats as emoji... for some reason.

Given a fastq file in Illumina 1.8+/Sanger format, calculate the mean (rounded) score for each position and print a corresponding emoji!

Example

https://fastqe.com/

Install

Latest release versions of

fastqe
are available via
pip
or BioConda:

pip install fastqe

conda install -c bioconda fastqe

Development

Development version can be isntall from this repository in the

master
branch.

Usage

fastqe
can display usage information on the command line via the
-h
or
--help
argument: ``` usage: fastqe [-h] [--minlen N] [--scale] [--version] [--mean] [--custom CUSTOM_DICT] [--bin] [--noemoji] [--min] [--max] [--output OUTPUTFILE] [--long READLENGTH] [--log LOGFILE] [FASTQFILE [FASTQ_FILE ...]]

Read one or more FASTQ files, compute quality stats for each file, print as emoji... for some reason.πŸ˜„

positional arguments: FASTQ_FILE Input FASTQ files

optional arguments: -h, --help show this help message and exit --minlen N Minimum length sequence to include in stats (default 0) --scale show relevant scale in output --version show program's version number and exit --mean show mean quality per position (DEFAULT) --custom CUSTOMDICT use a mapping of custom emoji to quality in CUSTOMDICT (🐍🌴) --bin use binned scores (πŸš«πŸ’€πŸ’©βš οΈπŸ˜„πŸ˜†πŸ˜ŽπŸ˜) --noemoji use mapping without emoji (β–β–‚β–ƒβ–„β–…β–†β–‡β–ˆ) --min show minimum quality per position --max show maximum quality per position --output OUTPUTFILE write output to OUTPUTFILE instead of stdout --long READLENGTH enable long reads up to READLENGTH bp long --log LOGFILE record program progress in LOGFILE ```

Convert

fastqe
will summarise FASTQ files to display the max, mean and minumum quality using emoji. To convert a file into this format, rather than summarise, you can use the companion program
biomojify
that will convert both sequence and quality information to emoji:
$ cat test.fq
@ Sequence
GTGCCAGCCGCCGCGGTAGTCCGACGTGGC
+
[email protected]#$%&%(
$ biomojify fastq test.fq
▢️  Sequence
πŸ‡πŸ…πŸ‡πŸŒ½πŸŒ½πŸ₯‘πŸ‡πŸŒ½πŸŒ½πŸ‡πŸŒ½πŸŒ½πŸ‡πŸŒ½πŸ‡πŸ‡πŸ…πŸ₯‘πŸ‡πŸ…πŸŒ½πŸŒ½πŸ‡πŸ₯‘πŸŒ½πŸ‡πŸ…πŸ‡πŸ‡πŸŒ½
πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸ˜πŸš«πŸ˜„πŸ‘ΊπŸ’”πŸ™…πŸ‘ΎπŸ™…πŸ’€

Intall with

pip install biomojify
, and see the
biomojify
page for more information: https://github.com/fastqe/biomojify/

Quickstart

fastqe test.fastq

fastqe --min test.fastq

fastqe --max test.fastq

fastqe --max -min -bin test.fastq

Teaching Materials

Command line and NGS Introduction

This lesson introduces NGS process in the command line using by using the results of FASTQE before and after quality filerting using

fastp
:

https://qubeshub.org/publications/1092/2

Rachael St. Jacques, Max Maza, Sabrina Robertson, Guoqing Lu, Andrew Lonsdale, Ray A Enke (2019).
A Fun Introductory Command Line Exercise: Next Generation Sequencing Quality Analysis with Emoji!.
NIBLSE Incubator: Intro to Command Line Coding Genomics Analysis, (Version 2.0).
QUBES Educational Resources. doi:10.25334/Q4D172

Galaxy

A Galaxy wrapper is available from the IUC toolshed. Contact your Galaxy Admin if you would like to have it installed. A Galaxy Tutorial using FASTQE is in development.

FASTQE in Galaxy

History

FASTQE started out as part of PyCon Au presentations:

Responsive image

Versions

  • version 0.0.1 at PyCon Au 2016:
    • Mean position per read
  • version 0.0.2 at PyconAu 2017:
    • update emoji map
    • Max and minimum scores per position added
    • Wrapper code based on early version of Bionitio added
    • prepare for PyPi
  • version 0.1.0 July 2018
    • clean up code
    • add binning
  • version 0.2.6 July 2020
    • refactor code
    • add long read support with --long
    • add --noemoji for block-based output on systems that don't support emoji
    • add --custom for user-defined mapping to emoji
    • add --output to redirect to file instead of stdout
    • add gzip support
    • add redirect from stdin support
    • fix bug of dropping position if some sequences are only 0 quality
  • Galaxy Wrapper created July 2020
  • biomojify
    created July 2020

Limitations

  • ~Reads up to 500bp only~ Read length above 500bp allowed but must be set by user with
    --long MAX_LENGTH
  • Same emoji for all scores above 41

Licence

This program is released as open source software under the terms of BSD License

Dependencies

  • pyemojify
  • BioPython
  • NumPy

Roadmap

  • [x] Rearrange emoji to use more realistic ranges (i.e > 60 use uncommon emoji) and remove inconsistencies
  • [x] ~Add conversion to emoji sequence format, with/without binning, for compressed fastq data~ fits into https://github.com/fastqe/biomojify/
  • [ ] Rewrite conversion to standalone function for use in iPython etc.
  • [ ] Teaching resources
  • [ ] Test data and unit tests
  • [x] ~Add FASTA mode for nucleotide and proteins emoji~ see https://github.com/fastqe/biomojify/
  • [ ] MultiQC plugin
  • [ ] ~Galaxy Wrapper~: available form the IUC toolshed

Rather convert to emoji than summarise? We've just started

biomojify
for that: https://github.com/fastqe/biomojify/

Contributors

  • Andrew Lonsdale
  • BjΓΆrn GrΓΌning
  • Catherine Bromhead
  • Clare Sloggett
  • Clarissa Womack
  • Helena Rasche
  • Maria Doyle
  • Michael Franklin
  • Nicola Soranzo
  • Phil Ewels

Scale

Use the

--scale
option to include in output.
0 ! 🚫
1 " ❌
2 # πŸ‘Ί
3 $ πŸ’”
4 % πŸ™…
5 & πŸ‘Ύ
6 ' πŸ‘Ώ
7 ( πŸ’€
8 ) πŸ‘»
9 * πŸ™ˆ
10 + πŸ™‰
11 , πŸ™Š
12 - 🐡
13 . 😿
14 / 😾
15 0 πŸ™€
16 1 πŸ’£
17 2 πŸ”₯
18 3 😑
19 4 πŸ’©
20 5 ⚠️
21 6 πŸ˜€
22 7 πŸ˜…
23 8 😏
24 9 😊
25 : πŸ˜™
26 ; πŸ˜—
27 < 😚
28 = πŸ˜ƒ
29 > 😘
30 ? πŸ˜†
31 @ πŸ˜„
32 A πŸ˜‹
33 B πŸ˜„
34 C 😝
35 D πŸ˜›
36 E 😜
37 F πŸ˜‰
38 G 😁
39 H πŸ˜„
40 I 😎
41 J 😍

Binned scale:

0 ! 🚫
1 " 🚫
2 # πŸ’€
3 $ πŸ’€
4 % πŸ’€
5 & πŸ’€
6 ' πŸ’€
7 ( πŸ’€
8 ) πŸ’€
9 * πŸ’€
10 + πŸ’©
11 , πŸ’©
12 - πŸ’©
13 . πŸ’©
14 / πŸ’©
15 0 πŸ’©
16 1 πŸ’©
17 2 πŸ’©
18 3 πŸ’©
19 4 πŸ’©
20 5 ⚠️
21 6 ⚠️
22 7 ⚠️
23 8 ⚠️
24 9 ⚠️
25 : πŸ˜„
26 ; πŸ˜„
27 < πŸ˜„
28 = πŸ˜„
29 > πŸ˜„
30 ? πŸ˜†
31 @ πŸ˜†
32 A πŸ˜†
33 B πŸ˜†
34 C πŸ˜†
35 D 😎
36 E 😎
37 F 😎
38 G 😎
39 H 😎
40 I 😍
41 J 😍

Custom

Use a dictionary of Pyemojify mappings in a text file instead of built in emoji choices:

{
'#': ':no_entry_sign:',
'\"': ':x:',
'!': ':japanese_goblin:',
'$': ':broken_heart:'
}

Emoji characters can also be used directlty instead (experimental):

{
'#': ':no_entry_sign:',
'\"': ':x:',
'!': 'πŸ‘Ώ',
'$': ':broken_heart:'
}

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.