bio-samtools 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/VERSION +1 -1
 - data/bin/bam_consensus.rb +85 -0
 - data/bio-samtools.gemspec +5 -3
 - metadata +5 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: a061cf6e87c05ce1f622d1607878cb68d85f92e0
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 90f4a519c6174d6b8787e42d6be8917f1b5721b1
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 02168c213254e2f4cbe2b16281c0f92c4dbccf6aaca92c4418457a68b835ac2a07e5cc81d68934f86441fe6fb1578ff08e149a5915262843cec67afd5ccc5e8a
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 02b7cb92700fc834a3425649f8c1df6694cb22b3d6bc805707695f7206d1055ebbe72293e9a577df6766341ab0dbf12fa95992eec0addc7b4f8321219c96c979
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            2. 
     | 
| 
      
 1 
     | 
    
         
            +
            2.2.0
         
     | 
| 
         @@ -0,0 +1,85 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'bio'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            require 'optparse'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'set'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            $: << File.expand_path(File.dirname(__FILE__) + '/../lib')
         
     | 
| 
      
 9 
     | 
    
         
            +
            $: << File.expand_path('.')
         
     | 
| 
      
 10 
     | 
    
         
            +
            path= File.expand_path(File.dirname(__FILE__) + '/../lib/bio-samtools.rb')
         
     | 
| 
      
 11 
     | 
    
         
            +
            require path
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            def log(msg)
         
     | 
| 
      
 15 
     | 
    
         
            +
              time=Time.now.strftime("%Y-%m-%d %H:%M:%S.%L")
         
     | 
| 
      
 16 
     | 
    
         
            +
              puts "#{time}: #{msg}"
         
     | 
| 
      
 17 
     | 
    
         
            +
            end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            options = {}
         
     | 
| 
      
 21 
     | 
    
         
            +
            options[:min_cov] = 5
         
     | 
| 
      
 22 
     | 
    
         
            +
            options[:min_percentage] = 0.5
         
     | 
| 
      
 23 
     | 
    
         
            +
            options[:output_file] = "-"
         
     | 
| 
      
 24 
     | 
    
         
            +
            OptionParser.new do |opts|
         
     | 
| 
      
 25 
     | 
    
         
            +
              
         
     | 
| 
      
 26 
     | 
    
         
            +
              opts.banner = "Usage: bam_consensus.rb [options]"
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
              opts.on("-b", "--bam_file FILE", "BAM File to call for the consensus") do |o|
         
     | 
| 
      
 29 
     | 
    
         
            +
                options[:bam] = o
         
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
      
 31 
     | 
    
         
            +
              opts.on("-r", "--reference FASTA", "reference with the contigs") do |o|
         
     | 
| 
      
 32 
     | 
    
         
            +
                options[:reference] = o
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
              opts.on("-p", "--min_percentage FLOAT", "Minimum percentage to call for a base. When more than one base gets the percentage, an ambiguty code is produced") do |o|
         
     | 
| 
      
 35 
     | 
    
         
            +
                options[:min_percentage] = o.to_f / 100
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
               opts.on("-m", "--min_cov INT", "Minimum percentage to call for a base. When more than one base gets the percentage, an ambiguty code is produced") do |o|
         
     | 
| 
      
 39 
     | 
    
         
            +
                options[:min_cov] = o.to_i 
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              opts.on("-f", "--filter_entries FILE", "File with a list of entries to process") do |o|
         
     | 
| 
      
 43 
     | 
    
         
            +
                options[:filter_entries] = o
         
     | 
| 
      
 44 
     | 
    
         
            +
              end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
              opts.on("-o" "--output_file FILE", "Output of the program, in fasta format") do |o|
         
     | 
| 
      
 47 
     | 
    
         
            +
                options[:output_file] = o
         
     | 
| 
      
 48 
     | 
    
         
            +
              end
         
     | 
| 
      
 49 
     | 
    
         
            +
              
         
     | 
| 
      
 50 
     | 
    
         
            +
            end.parse!
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            bam =  @parental_1_sam =  Bio::DB::Sam.new({:fasta=>options[:reference], :bam=>options[:bam]})
         
     | 
| 
      
 53 
     | 
    
         
            +
            region_set = nil
         
     | 
| 
      
 54 
     | 
    
         
            +
              if options[:filter_entries]
         
     | 
| 
      
 55 
     | 
    
         
            +
              region_set = Set.new
         
     | 
| 
      
 56 
     | 
    
         
            +
              File.foreach(options[:filter_entries]) do |line| 
         
     | 
| 
      
 57 
     | 
    
         
            +
                region_set << line.chomp
         
     | 
| 
      
 58 
     | 
    
         
            +
              end
         
     | 
| 
      
 59 
     | 
    
         
            +
            end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            fasta_db = Bio::DB::Fasta::FastaFile.new(:fasta=> options[:reference])
         
     | 
| 
      
 62 
     | 
    
         
            +
            fasta_db.load_fai_entries
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
            output = $stdout
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
            output = File.open(options[:output_file], "w") if options[:output_file] != "-"
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
            fasta_db.index.entries.each do | r |
         
     | 
| 
      
 69 
     | 
    
         
            +
              process = true
         
     | 
| 
      
 70 
     | 
    
         
            +
            	region=r.get_full_region
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
              process = region_set.include? region.entry if region_set
         
     | 
| 
      
 73 
     | 
    
         
            +
              if process
         
     | 
| 
      
 74 
     | 
    
         
            +
                reg = bam.fetch_region({:region=>region,  :min_cov=>options[:min_cov],:min_per=>options[:min_percentage],  :A=>1})
         
     | 
| 
      
 75 
     | 
    
         
            +
                cons = reg.consensus
         
     | 
| 
      
 76 
     | 
    
         
            +
                org = fasta_db.fetch_sequence(region)
         
     | 
| 
      
 77 
     | 
    
         
            +
                if cons.upcase != org.upcase 
         
     | 
| 
      
 78 
     | 
    
         
            +
                  output.puts ">#{region.entry}"
         
     | 
| 
      
 79 
     | 
    
         
            +
                  tmp = cons.scan /.{1,80}/
         
     | 
| 
      
 80 
     | 
    
         
            +
                  output.puts  tmp.join("\n")
         
     | 
| 
      
 81 
     | 
    
         
            +
                end
         
     | 
| 
      
 82 
     | 
    
         
            +
              end
         
     | 
| 
      
 83 
     | 
    
         
            +
            end
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
            output.close if options[:output_file] != "-"
         
     | 
    
        data/bio-samtools.gemspec
    CHANGED
    
    | 
         @@ -2,19 +2,20 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            # DO NOT EDIT THIS FILE DIRECTLY
         
     | 
| 
       3 
3 
     | 
    
         
             
            # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
         
     | 
| 
       4 
4 
     | 
    
         
             
            # -*- encoding: utf-8 -*-
         
     | 
| 
       5 
     | 
    
         
            -
            # stub: bio-samtools 2. 
     | 
| 
      
 5 
     | 
    
         
            +
            # stub: bio-samtools 2.2.0 ruby lib
         
     | 
| 
       6 
6 
     | 
    
         
             
            # stub: ext/mkrf_conf.rb
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       9 
9 
     | 
    
         
             
              s.name = "bio-samtools"
         
     | 
| 
       10 
     | 
    
         
            -
              s.version = "2. 
     | 
| 
      
 10 
     | 
    
         
            +
              s.version = "2.2.0"
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       13 
13 
     | 
    
         
             
              s.require_paths = ["lib"]
         
     | 
| 
       14 
14 
     | 
    
         
             
              s.authors = ["Ricardo Ramirez-Gonzalez", "Dan MacLean", "Raoul J.P. Bonnal"]
         
     | 
| 
       15 
     | 
    
         
            -
              s.date = "2014- 
     | 
| 
      
 15 
     | 
    
         
            +
              s.date = "2014-10-16"
         
     | 
| 
       16 
16 
     | 
    
         
             
              s.description = "Binder of samtools for ruby, on the top of FFI. \n\n  This project was born from the need to add support of BAM files to \n  the gee_fu genome browser (http://github.com/danmaclean/gee_fu)."
         
     | 
| 
       17 
17 
     | 
    
         
             
              s.email = "ilpuccio.febo@gmail.com"
         
     | 
| 
      
 18 
     | 
    
         
            +
              s.executables = ["bam_consensus.rb"]
         
     | 
| 
       18 
19 
     | 
    
         
             
              s.extensions = ["ext/mkrf_conf.rb"]
         
     | 
| 
       19 
20 
     | 
    
         
             
              s.extra_rdoc_files = [
         
     | 
| 
       20 
21 
     | 
    
         
             
                "LICENSE.txt",
         
     | 
| 
         @@ -28,6 +29,7 @@ Gem::Specification.new do |s| 
     | 
|
| 
       28 
29 
     | 
    
         
             
                "README.md",
         
     | 
| 
       29 
30 
     | 
    
         
             
                "Rakefile",
         
     | 
| 
       30 
31 
     | 
    
         
             
                "VERSION",
         
     | 
| 
      
 32 
     | 
    
         
            +
                "bin/bam_consensus.rb",
         
     | 
| 
       31 
33 
     | 
    
         
             
                "bio-samtools.gemspec",
         
     | 
| 
       32 
34 
     | 
    
         
             
                "doc/Bio.html",
         
     | 
| 
       33 
35 
     | 
    
         
             
                "doc/Bio/DB.html",
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: bio-samtools
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.2.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Ricardo Ramirez-Gonzalez
         
     | 
| 
         @@ -10,7 +10,7 @@ authors: 
     | 
|
| 
       10 
10 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       11 
11 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       12 
12 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       13 
     | 
    
         
            -
            date: 2014- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2014-10-16 00:00:00.000000000 Z
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies:
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
16 
     | 
    
         
             
              name: bio-svgenes
         
     | 
| 
         @@ -184,7 +184,8 @@ description: "Binder of samtools for ruby, on the top of FFI. \n\n  This project 
     | 
|
| 
       184 
184 
     | 
    
         
             
              born from the need to add support of BAM files to \n  the gee_fu genome browser
         
     | 
| 
       185 
185 
     | 
    
         
             
              (http://github.com/danmaclean/gee_fu)."
         
     | 
| 
       186 
186 
     | 
    
         
             
            email: ilpuccio.febo@gmail.com
         
     | 
| 
       187 
     | 
    
         
            -
            executables: 
     | 
| 
      
 187 
     | 
    
         
            +
            executables:
         
     | 
| 
      
 188 
     | 
    
         
            +
            - bam_consensus.rb
         
     | 
| 
       188 
189 
     | 
    
         
             
            extensions:
         
     | 
| 
       189 
190 
     | 
    
         
             
            - ext/mkrf_conf.rb
         
     | 
| 
       190 
191 
     | 
    
         
             
            extra_rdoc_files:
         
     | 
| 
         @@ -198,6 +199,7 @@ files: 
     | 
|
| 
       198 
199 
     | 
    
         
             
            - README.md
         
     | 
| 
       199 
200 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       200 
201 
     | 
    
         
             
            - VERSION
         
     | 
| 
      
 202 
     | 
    
         
            +
            - bin/bam_consensus.rb
         
     | 
| 
       201 
203 
     | 
    
         
             
            - bio-samtools.gemspec
         
     | 
| 
       202 
204 
     | 
    
         
             
            - doc/Bio.html
         
     | 
| 
       203 
205 
     | 
    
         
             
            - doc/Bio/DB.html
         
     |