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
                            Advanced Tools Transforming the Field of Cytogenomics
                            by seqadmin


                            At the intersection of cytogenetics and genomics lies the exciting field of cytogenomics. It focuses on studying chromosomes at a molecular scale, involving techniques that analyze either the whole genome or particular DNA sequences to examine variations in structure and behavior at the chromosomal or subchromosomal level. By integrating cytogenetic techniques with genomic analysis, researchers can effectively investigate chromosomal abnormalities related to diseases, particularly...
                            Today, 06:26 AM
                          • seqadmin
                            How RNA-Seq is Transforming Cancer Studies
                            by seqadmin



                            Cancer research has been transformed through numerous molecular techniques, with RNA sequencing (RNA-seq) playing a crucial role in understanding the complexity of the disease. Maša Ivin, Ph.D., Scientific Writer at Lexogen, and Yvonne Goepel Ph.D., Product Manager at Lexogen, remarked that “The high-throughput nature of RNA-seq allows for rapid profiling and deep exploration of the transcriptome.” They emphasized its indispensable role in cancer research, aiding in biomarker...
                            09-07-2023, 11:15 PM
                          • seqadmin
                            Methods for Investigating the Transcriptome
                            by seqadmin




                            Ribonucleic acid (RNA) represents a range of diverse molecules that play a crucial role in many cellular processes. From serving as a protein template to regulating genes, the complex processes involving RNA make it a focal point of study for many scientists. This article will spotlight various methods scientists have developed to investigate different RNA subtypes and the broader transcriptome.

                            Whole Transcriptome RNA-seq
                            Whole transcriptome sequencing...
                            08-31-2023, 11:07 AM

                          ad_right_rmr

                          Collapse

                          News

                          Collapse

                          Topics Statistics Last Post
                          Started by seqadmin, Today, 07:53 AM
                          0 responses
                          7 views
                          0 likes
                          Last Post seqadmin  
                          Started by seqadmin, Yesterday, 07:42 AM
                          0 responses
                          12 views
                          0 likes
                          Last Post seqadmin  
                          Started by seqadmin, 09-22-2023, 09:05 AM
                          0 responses
                          39 views
                          0 likes
                          Last Post seqadmin  
                          Started by seqadmin, 09-21-2023, 06:18 AM
                          0 responses
                          36 views
                          0 likes
                          Last Post seqadmin  
                          Working...
                          X