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
|