Unconfigured Ad

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Scotch
    Junior Member
    • Aug 2010
    • 6

    #1

    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.
  • simonandrews
    Simon Andrews
    • May 2009
    • 870

    #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

    • msincan
      Member
      • Dec 2009
      • 19

      #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

      • quinlana
        Senior Member
        • Sep 2008
        • 119

        #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

        • Adjuvant
          Member
          • Sep 2010
          • 13

          #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

          • msincan
            Member
            • Dec 2009
            • 19

            #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

            • quinlana
              Senior Member
              • Sep 2008
              • 119

              #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

              • msincan
                Member
                • Dec 2009
                • 19

                #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

                • bpetersen
                  Member
                  • Mar 2010
                  • 20

                  #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

                  • Bruins
                    Member
                    • Feb 2010
                    • 78

                    #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

                    • quinlana
                      Senior Member
                      • Sep 2008
                      • 119

                      #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

                      • colindaven
                        Senior Member
                        • Oct 2008
                        • 417

                        #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

                        • SEQadmin2
                          Beyond CRISPR/Cas9: Understand, Choose, and Use the Right Genome Editing Tool
                          by SEQadmin2



                          CRISPR/Cas9 sparked the gene editing revolution for both research and therapeutics.1 But this system still showed severe issues that limited its applications. The most prominent were the heavy reliance on PAM sequences, delivery limitations, double-stranded breaks that prompt unintended edits and cell death, and editing inefficiency (both in targeting and in knock-in reliability).

                          Despite this, “CRISPR helped turn genome editing from a specialized technique into
                          ...
                          07-31-2026, 11:01 AM
                        • SEQadmin2
                          Proteomic Platforms: How to Choose the Right Analytical Strategy to Improve Detection and Clinical Applications
                          by SEQadmin2


                          Proteomics platforms are evolving rapidly, with advances in mass spectrometry and affinity-based approaches expanding what researchers can detect and at what scale. As the field moves toward deeper proteome coverage and clinical applications, scientists face an increasingly complex landscape of tools. This article will explore how researchers are navigating these choices to find the right platform for their work.

                          The systematic characterization of the human proteome has
                          ...
                          07-20-2026, 11:48 AM

                        ad_right_rmr

                        Collapse

                        News

                        Collapse

                        Topics Statistics Last Post
                        Started by SEQadmin2, 08-06-2026, 07:41 AM
                        0 responses
                        23 views
                        0 reactions
                        Last Post SEQadmin2  
                        Started by SEQadmin2, 08-03-2026, 10:13 AM
                        0 responses
                        39 views
                        0 reactions
                        Last Post SEQadmin2  
                        Started by SEQadmin2, 07-31-2026, 02:55 AM
                        0 responses
                        43 views
                        0 reactions
                        Last Post SEQadmin2  
                        Started by SEQadmin2, 07-24-2026, 12:17 PM
                        0 responses
                        26 views
                        0 reactions
                        Last Post SEQadmin2  
                        Working...