Seqanswers Leaderboard Ad

Collapse

Announcement

Collapse
No announcement yet.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • average quality score for fastq file

    Hello,
    Simple question here, but I've had a problem finding a program to do it.

    Given a fastq file, is there software that will calculate the average quality score for the entire file?

    Thanks

  • #2
    The "Compute quality statistics" function in Galaxy (https://main.g2.bx.psu.edu)

    Comment


    • #3
      Thanks @JackieBadger

      Do you know of any unix/linux based tools to do this? I'm trying to stay away from galaxy for this tidbit.

      Comment


      • #4
        Originally posted by jgibbons1 View Post
        Thanks @JackieBadger

        Do you know of any unix/linux based tools to do this? I'm trying to stay away from galaxy for this tidbit.
        Why do you need to avoid Galaxy?

        Comment


        • #5
          I'm trying to integrate this value into a larger analysis pipeline. Automating it would be more efficient.

          Comment


          • #6
            Originally posted by jgibbons1 View Post
            Hello,

            Given a fastq file, is there software that will calculate the average quality score for the entire file?

            Thanks
            One should be careful about "average quality score" for an entire file since you could still have a subset of sequences that may be hidden outliers ("bad") in an otherwise "good" file.

            Both Fastx toolkit (http://hannonlab.cshl.edu/fastx_toolkit/) and FastQC (http://www.bioinformatics.babraham.a...ojects/fastqc/) will generate statistics you could use.

            If this is illumina data and you have access to CASAVA pipeline output then the summary file has a "mean" quality score for each sample that you could parse.

            Comment


            • #7
              You can also get the source code for any Galaxy function

              Comment


              • #8
                With Biopieces (www.biopieces.org) you can do it in two steps where you first find the mean score per sequence entry and then the overall mean score:

                Code:
                read_fastq -i test.fq | mean_scores | mean_vals -k SCORES_MEAN -x

                Comment


                • #9
                  Thanks to everyone's suggestions!

                  I will try a few of these and let you know what I ended up doing.

                  Comment


                  • #10
                    For anyone still interested...

                    For simplicity, I ended up using Bioawk (https://github.com/lh3/bioawk):

                    Get the mean Phred quality score from FASTQ:
                    awk -c fastx '{ print ">"$name; print meanqual($qual) }' seq.fq.gz

                    Comment


                    • #11
                      That bioawk command doesn't compute the quality score for the entire file as per the question you originally asked. It computes it for every sequence and floods your standard output.

                      Here is a program that actually does what you asked.

                      Code:
                      #!/usr/bin/env python
                      
                      """
                      Compute the average quality for a given FASTQ file.
                      
                      Written by Lucas Sinclair.
                      Kopimi.
                      
                      You can use this script from the shell like this:
                      $ fastq_avg_qual < reads.fastq
                      """
                      
                      # Iterative mean #
                      def imean(numbers):
                          count = 0
                          total = 0
                          for num in numbers:
                              count += 1
                              total += num
                          return float(total)/count
                      
                      # Do it #
                      import sys
                      from Bio import SeqIO
                      records = (r for r in SeqIO.parse(sys.stdin, "fastq"))
                      scores = (s for r in records for s in r.letter_annotations["phred_quality"])
                      print imean(scores)
                      Last edited by xApple; 07-12-2013, 07:45 AM.

                      Comment


                      • #12
                        Thanks xApple. You're right...I ended up taking the average of the quality scores.

                        I will give your script a shot. Thanks!

                        Comment


                        • #13
                          You're welcome ! It's just a quick hack that has the advantage to not use any memory but suffers from being extremely slow. Probably not suitable for Illumina sized data.

                          Comment

                          Latest Articles

                          Collapse

                          • seqadmin
                            Recent Developments in Metagenomics
                            by seqadmin





                            Metagenomics has improved the way researchers study microorganisms across diverse environments. Historically, studying microorganisms relied on culturing them in the lab, a method that limits the investigation of many species since most are unculturable1. Metagenomics overcomes these issues by allowing the study of microorganisms regardless of their ability to be cultured or the environments they inhabit. Over time, the field has evolved, especially with the advent...
                            09-23-2024, 06:35 AM
                          • seqadmin
                            Understanding Genetic Influence on Infectious Disease
                            by seqadmin




                            During the COVID-19 pandemic, scientists observed that while some individuals experienced severe illness when infected with SARS-CoV-2, others were barely affected. These disparities left researchers and clinicians wondering what causes the wide variations in response to viral infections and what role genetics plays.

                            Jean-Laurent Casanova, M.D., Ph.D., Professor at Rockefeller University, is a leading expert in this crossover between genetics and infectious...
                            09-09-2024, 10:59 AM

                          ad_right_rmr

                          Collapse

                          News

                          Collapse

                          Topics Statistics Last Post
                          Started by seqadmin, 10-02-2024, 04:51 AM
                          0 responses
                          11 views
                          0 likes
                          Last Post seqadmin  
                          Started by seqadmin, 10-01-2024, 07:10 AM
                          0 responses
                          19 views
                          0 likes
                          Last Post seqadmin  
                          Started by seqadmin, 09-30-2024, 08:33 AM
                          0 responses
                          24 views
                          0 likes
                          Last Post seqadmin  
                          Started by seqadmin, 09-26-2024, 12:57 PM
                          0 responses
                          17 views
                          0 likes
                          Last Post seqadmin  
                          Working...
                          X