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
                            Current Approaches to Protein Sequencing
                            by seqadmin


                            Proteins are often described as the workhorses of the cell, and identifying their sequences is key to understanding their role in biological processes and disease. Currently, the most common technique used to determine protein sequences is mass spectrometry. While still a valuable tool, mass spectrometry faces several limitations and requires a highly experienced scientist familiar with the equipment to operate it. Additionally, other proteomic methods, like affinity assays, are constrained...
                            04-04-2024, 04:25 PM
                          • seqadmin
                            Strategies for Sequencing Challenging Samples
                            by seqadmin


                            Despite advancements in sequencing platforms and related sample preparation technologies, certain sample types continue to present significant challenges that can compromise sequencing results. Pedro Echave, Senior Manager of the Global Business Segment at Revvity, explained that the success of a sequencing experiment ultimately depends on the amount and integrity of the nucleic acid template (RNA or DNA) obtained from a sample. “The better the quality of the nucleic acid isolated...
                            03-22-2024, 06:39 AM

                          ad_right_rmr

                          Collapse

                          News

                          Collapse

                          Topics Statistics Last Post
                          Started by seqadmin, 04-11-2024, 12:08 PM
                          0 responses
                          18 views
                          0 likes
                          Last Post seqadmin  
                          Started by seqadmin, 04-10-2024, 10:19 PM
                          0 responses
                          22 views
                          0 likes
                          Last Post seqadmin  
                          Started by seqadmin, 04-10-2024, 09:21 AM
                          0 responses
                          17 views
                          0 likes
                          Last Post seqadmin  
                          Started by seqadmin, 04-04-2024, 09:00 AM
                          0 responses
                          49 views
                          0 likes
                          Last Post seqadmin  
                          Working...
                          X