Skip to main content

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 OUTPUT_FILE] [--long READ_LENGTH] [--log LOG_FILE]
              [FASTQ_FILE [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 CUSTOM_DICT  use a mapping of custom emoji to quality in
                        CUSTOM_DICT (🐍🌴)
  --bin                 use binned scores (🚫💀💩⚠️😄😆😎😍)
  --noemoji             use mapping without emoji (▁▂▃▄▅▆▇█)
  --min                 show minimum quality per position
  --max                 show maximum quality per position
  --output OUTPUT_FILE  write output to OUTPUT_FILE instead of stdout
  --long READ_LENGTH    enable long reads up to READ_LENGTH bp long
  --log LOG_FILE        record program progress in LOG_FILE

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
+
GGGGGGGGGGGGGGGGGGGGGG!@#$%&%(
$ 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
  • version 0.2.7 2021
    • bugfix
  • version 0.3.1 2023
    • HTML reporting for Galaxy
  • version 0.3.3 2024
    • Update emoji that render in default fonts with alternatives

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

  • Rearrange emoji to use more realistic ranges (i.e > 60 use uncommon emoji) and remove inconsistencies
  • 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
  • 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:'
}

Metadata

Release files for fastqe 0.5.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastqe 0.5.2
File Size Uploaded
fastqe-0.5.2.tar.gz 20.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastqe 0.5.2
File Interpreter ABI Platform
fastqe-0.5.2-py3-none-any.whl Python 3 none any Details

Total release size: 36.0 kB

Release files / fastqe-0.5.2.tar.gz

Download URL fastqe-0.5.2.tar.gz
Size 20.0 kB
Tags Source
SHA-256 checksum
How to use checksums
cbf35d0bb2203538b986c0d1c44c4d737e0e2ebc12d851f80f65a4f7fe0ed37e
BLAKE2b-256 checksum
How to use checksums
5ecb42f84b06a01d20da2451018ed2aa3b12ac06e50a751f382018c03ac6fbe8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / fastqe-0.5.2-py3-none-any.whl

Download URL fastqe-0.5.2-py3-none-any.whl
Size 16.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0d8faf54be63d246540c862b2968491e27b93c94516746f5e46238b0988e7508
BLAKE2b-256 checksum
How to use checksums
b1e57632112732c3068ca7e7c5cf8ea82df16d175c1661462f1232db953822c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

0.5.2 This release

2 release files

0.5.0

2 release files

0.3.3

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page