Seqanswers Leaderboard Ad

Collapse

Announcement

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

  • Software to find gaps in coverage

    I'm trying to make a list of gaps in coverage in Illumina sequence data? IGV displays the number of reads covering each base, but is there a way to output this count data to a text file? This will save me having to manually scroll through the data in IGV and annotate by hand. Many thanks in advance.

  • #2
    You could do this in SeqMonk. The process would be:
    1. Import your raw data
    2. Do a contig probe generation with a depth of 1 read
    3. Do a read count quantitation
    4. Go back to probe generation and do an interstitial probe generation (so you put probes between the existing probes, which will be all the gaps in your assembly) - make sure not to exclude probes with no data!
    5. Do a read count quantitation (even through they will all be 0)
    6. Create an annotated probe report and you'll have a list of all of the gaps in your assembly
    7. Alternatively you can convert your probe set into an annotation track so you can see where the gaps are when performing further analyses

    Comment


    • #3
      I have a python program that can do that. Please contact me at [email protected] if you are interested in using it. It can do sums, averages and determine streches of coverages based on thresholds using aligned bam files as input.

      Comment


      • #4
        Originally posted by Scotch View Post
        I'm trying to make a list of gaps in coverage in Illumina sequence data? IGV displays the number of reads covering each base, but is there a way to output this count data to a text file? This will save me having to manually scroll through the data in IGV and annotate by hand. Many thanks in advance.
        genomeCoverageBed in the BEDTools package will do this for you.

        The "-d" option will report depth at every base (perhaps excessive). The -bga option will create a BEDGRAPH file documenting intervals with common depth. You could use awk on the output to report solely those intervals with 0 or <X coverage. Something like this:

        Code:
        genomeCoverageBed -ibam aln.possorted.bam -bga | awk '$4 == 0' > intervals.with.0.cov.bedg

        Check out the BEDTools manual or see the examples here:

        Comment


        • #5
          I also go the Bedtools route, but I wrote a quick perlscript to output some coverage statistics that can then be imported into Excel. I've been working with alignments against multiple fragments, but it works for single sequence alignments as well.

          Here's my method:

          Calculating alignment coverage

          Code:
          genomecoveragebed –ibam alignment_sorted.bam –g reference.fa.fai –bga > alignment.coverage
          ** Generates a file listing read coverage at each base for each genome. The "reference.fa.fai" file is the one created by samtools faidx.

          Code:
          perl path/to/get_fragment_coverage.pl –c alignment.coverage –o alignment_coverage.txt –d 1
          ** Generates a text file with the number of uncovered bases per genome or fragment and the total percent coverage of the entire genome or fragment. The –d flag is optional and designates how deep the coverage at a base should be for it to be counted as “covered.” The default is that if even a single read covers a base, it is counted as covered.

          By the way, if you want you can pipe genomecoveragebed and get_fragment_coverage.pl together if you want, like so:
          Code:
          genomecoveragebed –ibam alignment_sorted.bam –g reference.fa.fai –bga | perl path/to/get_fragment_coverage.pl –c STDIN –o alignment_coverage.txt –d 1
          And here's my script. Remember, I wrote it myself and it works pretty well for me, but feel free to adapt it for your purposes as needed.
          Attached Files

          Comment


          • #6
            I just tried bedtools genomeCoverage and it gave an error and exit. The error is Chromosome chr_random10 found in your bed file but not in your genome file . So my hg18.fai only has regular chromosomes and it is these type of issues that led me to write my own program. I agree that bedtools is very fast and efficient but it doesn't fit every requirement easily at least for me. Do you know any workaround to this (i.e a flag to tell bedtools to ignore such errors) other than creating another fai with random chromosome positions.

            Comment


            • #7
              I'm not sure why you wouldn't be using the same .fai as the header in your BAM, but in this case you could just make a new "genome" file from your BAM header.

              Code:
              samtools view -H [BAM] | grep "@SQ" | sed -e "s/SN://" -e "s/LN://" | cut -f 2,3 > chroms.txt

              Comment


              • #8
                Originally posted by quinlana View Post
                I'm not sure why you wouldn't be using the same .fai as the header in your BAM, but in this case you could just make a new "genome" file from your BAM header.

                Code:
                samtools view -H [BAM] | grep "@SQ" | sed -e "s/SN://" -e "s/LN://" | cut -f 2,3 > chroms.txt
                It works, thanks, but how can I get coverage for only those regular (non-random) chromosomes?
                Last edited by msincan; 02-09-2011, 01:23 PM.

                Comment


                • #9
                  At the risk of this being a stupid question: What exactly are these "random" chromosomes? I stumbled over this when converting a soap alignment to bam. I think alignments to these random chromosome s were just skipped in the conversion and I would like to know if I'm now missing important data in my bamfile.

                  Comment


                  • #10
                    They are unassembled supercontigs. They can be found in hg19 (at least, in 1kg.37) but not in hg18.

                    Can someone confirm if I got this right?

                    Anyway, we do use them to align to, because there may be reads that should be aligned there instead of at the regular chromosomes. If the supercontigs are missing, those reads may be forced to align in a place where they don't belong. In short: reduce the number of false positives.

                    Sorry for being slightly off topic.

                    Comment


                    • #11
                      Originally posted by msincan View Post
                      It works, thanks, but how can I get coverage for only those regular (non-random) chromosomes?
                      Just add a grep -v "_random" after the output of genomeCoverageBed to filter any intervals arising from the "random" chroms.

                      Comment


                      • #12
                        I couldn't get the following command to work:

                        genomeCoverageBed -ibam aln.possorted.bam -bga | awk '$4 == 0' > intervals.with.0.cov.bedg

                        The following worked fine:

                        samtools view -b mybam.bam | genomeCoverageBed -ibam stdin -g PA14genome.txt -bga | awk '$4 == 0' > intervals.with.0.cov.bedg

                        Comment

                        Latest Articles

                        Collapse

                        • seqadmin
                          Essential Discoveries and Tools in Epitranscriptomics
                          by seqadmin


                          The field of epigenetics has traditionally concentrated more on DNA and how changes like methylation and phosphorylation of histones impact gene expression and regulation. However, our increased understanding of RNA modifications and their importance in cellular processes has led to a rise in epitranscriptomics research. “Epitranscriptomics brings together the concepts of epigenetics and gene expression,” explained Adrien Leger, PhD, Principal Research Scientist on Modified Bases...
                          Yesterday, 07:01 AM
                        • 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

                        ad_right_rmr

                        Collapse

                        News

                        Collapse

                        Topics Statistics Last Post
                        Started by seqadmin, 04-11-2024, 12:08 PM
                        0 responses
                        39 views
                        0 likes
                        Last Post seqadmin  
                        Started by seqadmin, 04-10-2024, 10:19 PM
                        0 responses
                        41 views
                        0 likes
                        Last Post seqadmin  
                        Started by seqadmin, 04-10-2024, 09:21 AM
                        0 responses
                        35 views
                        0 likes
                        Last Post seqadmin  
                        Started by seqadmin, 04-04-2024, 09:00 AM
                        0 responses
                        55 views
                        0 likes
                        Last Post seqadmin  
                        Working...
                        X