bio-ngs 0.3.2.alpha.01
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/Gemfile +39 -0
- data/Gemfile.lock +81 -0
- data/LICENSE.txt +28 -0
- data/README.rdoc +240 -0
- data/Rakefile +60 -0
- data/VERSION +1 -0
- data/bin/biongs +35 -0
- data/bio-ngs.gemspec +215 -0
- data/ext/mkrf_conf.rb +87 -0
- data/lib/bio-ngs.rb +54 -0
- data/lib/bio/appl/ngs/bcl2qseq.rb +93 -0
- data/lib/bio/appl/ngs/blast.rb +36 -0
- data/lib/bio/appl/ngs/bowtie-inspect.rb +50 -0
- data/lib/bio/appl/ngs/cufflinks.rb +489 -0
- data/lib/bio/appl/ngs/fastx.rb +170 -0
- data/lib/bio/appl/ngs/samtools.rb +118 -0
- data/lib/bio/appl/ngs/sff_extract.rb +23 -0
- data/lib/bio/appl/ngs/tophat.rb +158 -0
- data/lib/bio/ngs/converter.rb +100 -0
- data/lib/bio/ngs/core_ext.rb +12 -0
- data/lib/bio/ngs/db.rb +66 -0
- data/lib/bio/ngs/db/migrate/homology/201105030707_create_blastout.rb +22 -0
- data/lib/bio/ngs/db/migrate/homology/201105030709_create_goannotation.rb +29 -0
- data/lib/bio/ngs/db/migrate/ontology/201105030708_create_go.rb +18 -0
- data/lib/bio/ngs/db/migrate/ontology/201105030710_create_gene_go.rb +17 -0
- data/lib/bio/ngs/db/migrate/ontology/201105030711_create_gene.rb +16 -0
- data/lib/bio/ngs/db/models.rb +1 -0
- data/lib/bio/ngs/db/models/homology.rb +8 -0
- data/lib/bio/ngs/db/models/ontology.rb +16 -0
- data/lib/bio/ngs/ext/bin/common/fastq_coverage_graph.sh +161 -0
- data/lib/bio/ngs/ext/bin/common/sff_extract +1505 -0
- data/lib/bio/ngs/ext/bin/linux/samtools +0 -0
- data/lib/bio/ngs/ext/bin/osx/samtools +0 -0
- data/lib/bio/ngs/ext/versions.yaml +73 -0
- data/lib/bio/ngs/graphics.rb +189 -0
- data/lib/bio/ngs/homology.rb +102 -0
- data/lib/bio/ngs/ontology.rb +103 -0
- data/lib/bio/ngs/quality.rb +64 -0
- data/lib/bio/ngs/record.rb +50 -0
- data/lib/bio/ngs/task.rb +46 -0
- data/lib/bio/ngs/utils.rb +176 -0
- data/lib/development_tasks.rb +34 -0
- data/lib/enumerable.rb +37 -0
- data/lib/tasks/bwa.thor +126 -0
- data/lib/tasks/convert.thor +454 -0
- data/lib/tasks/history.thor +51 -0
- data/lib/tasks/homology.thor +121 -0
- data/lib/tasks/ontology.thor +93 -0
- data/lib/tasks/project.thor +51 -0
- data/lib/tasks/quality.thor +142 -0
- data/lib/tasks/rna.thor +126 -0
- data/lib/tasks/sff_extract.thor +9 -0
- data/lib/templates/README.tt +43 -0
- data/lib/templates/db.tt +6 -0
- data/lib/wrapper.rb +225 -0
- data/spec/converter_qseq_spec.rb +56 -0
- data/spec/fixture/s_1_1_1108_qseq.txt +100 -0
- data/spec/quality_spec.rb +40 -0
- data/spec/sff_extract_spec.rb +98 -0
- data/spec/spec_helper.rb +55 -0
- data/spec/tophat_spec.rb +99 -0
- data/spec/utils_spec.rb +22 -0
- data/test/conf/test_db.yml +4 -0
- data/test/data/blastoutput.xml +69 -0
- data/test/data/gene-GO.json +1 -0
- data/test/data/goa_uniprot +27 -0
- data/test/data/goslim_goa.obo +1763 -0
- data/test/helper.rb +18 -0
- data/test/test_bio-ngs.rb +17 -0
- data/test/test_db.rb +21 -0
- data/test/test_homology.rb +102 -0
- data/test/test_ngs.rb +21 -0
- data/test/test_ontology.rb +74 -0
- data/test/test_utils.rb +29 -0
- metadata +460 -0
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.3.2.alpha.01
|
data/bin/biongs
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
module Bio
|
4
|
+
module Ngs
|
5
|
+
|
6
|
+
path = File.expand_path(File.dirname(__FILE__))
|
7
|
+
$:<<File.join(File.dirname(path),"lib")
|
8
|
+
require 'bio-ngs'
|
9
|
+
|
10
|
+
path = File.expand_path(File.dirname(__FILE__))
|
11
|
+
Dir.glob(File.join(File.dirname(path),"lib","tasks","*.thor")) do |thorfile|
|
12
|
+
Thor::Util.load_thorfile(thorfile)
|
13
|
+
end
|
14
|
+
|
15
|
+
class Runner < Thor::Runner
|
16
|
+
|
17
|
+
def help(meth = nil)
|
18
|
+
if meth && !self.respond_to?(meth)
|
19
|
+
initialize_thorfiles(meth)
|
20
|
+
klass, task = Thor::Util.find_class_and_task_by_namespace(meth)
|
21
|
+
klass.start(["-h", task].compact, :shell => self.shell)
|
22
|
+
else
|
23
|
+
puts "\nBio-NGS is an official BioRuby plugin for Next Generation Sequencing data analysis and workflows.\n\n"
|
24
|
+
puts "To view the full list of available tasks and commands type:\n\n"
|
25
|
+
puts "\tbiongs -T\n\n"
|
26
|
+
puts "To get information on specific tasks type:\n\n"
|
27
|
+
puts "\tbiongs help [TASK]\n\n"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
$thor_runner = true
|
33
|
+
Runner.start
|
34
|
+
end
|
35
|
+
end
|
data/bio-ngs.gemspec
ADDED
@@ -0,0 +1,215 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{bio-ngs}
|
8
|
+
s.version = "0.3.2.alpha.01"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = [%q{Francesco Strozzi}, %q{Raoul J.P. Bonnal}]
|
12
|
+
s.date = %q{2011-10-10}
|
13
|
+
s.description = %q{bio-ngs provides a framework for handling NGS data with BioRuby}
|
14
|
+
s.email = %q{francesco.strozzi@gmail.com}
|
15
|
+
s.executables = [%q{biongs}]
|
16
|
+
s.extensions = [%q{ext/mkrf_conf.rb}]
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"LICENSE.txt",
|
19
|
+
"README.rdoc"
|
20
|
+
]
|
21
|
+
s.files = [
|
22
|
+
".document",
|
23
|
+
"Gemfile",
|
24
|
+
"Gemfile.lock",
|
25
|
+
"LICENSE.txt",
|
26
|
+
"README.rdoc",
|
27
|
+
"Rakefile",
|
28
|
+
"VERSION",
|
29
|
+
"bin/biongs",
|
30
|
+
"bio-ngs.gemspec",
|
31
|
+
"ext/mkrf_conf.rb",
|
32
|
+
"lib/bio-ngs.rb",
|
33
|
+
"lib/bio/appl/ngs/bcl2qseq.rb",
|
34
|
+
"lib/bio/appl/ngs/blast.rb",
|
35
|
+
"lib/bio/appl/ngs/bowtie-inspect.rb",
|
36
|
+
"lib/bio/appl/ngs/cufflinks.rb",
|
37
|
+
"lib/bio/appl/ngs/fastx.rb",
|
38
|
+
"lib/bio/appl/ngs/samtools.rb",
|
39
|
+
"lib/bio/appl/ngs/sff_extract.rb",
|
40
|
+
"lib/bio/appl/ngs/tophat.rb",
|
41
|
+
"lib/bio/ngs/converter.rb",
|
42
|
+
"lib/bio/ngs/core_ext.rb",
|
43
|
+
"lib/bio/ngs/db.rb",
|
44
|
+
"lib/bio/ngs/db/migrate/homology/201105030707_create_blastout.rb",
|
45
|
+
"lib/bio/ngs/db/migrate/homology/201105030709_create_goannotation.rb",
|
46
|
+
"lib/bio/ngs/db/migrate/ontology/201105030708_create_go.rb",
|
47
|
+
"lib/bio/ngs/db/migrate/ontology/201105030710_create_gene_go.rb",
|
48
|
+
"lib/bio/ngs/db/migrate/ontology/201105030711_create_gene.rb",
|
49
|
+
"lib/bio/ngs/db/models.rb",
|
50
|
+
"lib/bio/ngs/db/models/homology.rb",
|
51
|
+
"lib/bio/ngs/db/models/ontology.rb",
|
52
|
+
"lib/bio/ngs/ext/bin/common/fastq_coverage_graph.sh",
|
53
|
+
"lib/bio/ngs/ext/bin/common/sff_extract",
|
54
|
+
"lib/bio/ngs/ext/bin/linux/samtools",
|
55
|
+
"lib/bio/ngs/ext/bin/osx/samtools",
|
56
|
+
"lib/bio/ngs/ext/versions.yaml",
|
57
|
+
"lib/bio/ngs/graphics.rb",
|
58
|
+
"lib/bio/ngs/homology.rb",
|
59
|
+
"lib/bio/ngs/ontology.rb",
|
60
|
+
"lib/bio/ngs/quality.rb",
|
61
|
+
"lib/bio/ngs/record.rb",
|
62
|
+
"lib/bio/ngs/task.rb",
|
63
|
+
"lib/bio/ngs/utils.rb",
|
64
|
+
"lib/development_tasks.rb",
|
65
|
+
"lib/enumerable.rb",
|
66
|
+
"lib/tasks/bwa.thor",
|
67
|
+
"lib/tasks/convert.thor",
|
68
|
+
"lib/tasks/history.thor",
|
69
|
+
"lib/tasks/homology.thor",
|
70
|
+
"lib/tasks/ontology.thor",
|
71
|
+
"lib/tasks/project.thor",
|
72
|
+
"lib/tasks/quality.thor",
|
73
|
+
"lib/tasks/rna.thor",
|
74
|
+
"lib/tasks/sff_extract.thor",
|
75
|
+
"lib/templates/README.tt",
|
76
|
+
"lib/templates/db.tt",
|
77
|
+
"lib/wrapper.rb",
|
78
|
+
"spec/converter_qseq_spec.rb",
|
79
|
+
"spec/fixture/s_1_1_1108_qseq.txt",
|
80
|
+
"spec/quality_spec.rb",
|
81
|
+
"spec/sff_extract_spec.rb",
|
82
|
+
"spec/spec_helper.rb",
|
83
|
+
"spec/tophat_spec.rb",
|
84
|
+
"spec/utils_spec.rb",
|
85
|
+
"test/conf/test_db.yml",
|
86
|
+
"test/data/blastoutput.xml",
|
87
|
+
"test/data/gene-GO.json",
|
88
|
+
"test/data/goa_uniprot",
|
89
|
+
"test/data/goslim_goa.obo",
|
90
|
+
"test/helper.rb",
|
91
|
+
"test/test_bio-ngs.rb",
|
92
|
+
"test/test_db.rb",
|
93
|
+
"test/test_homology.rb",
|
94
|
+
"test/test_ngs.rb",
|
95
|
+
"test/test_ontology.rb",
|
96
|
+
"test/test_utils.rb"
|
97
|
+
]
|
98
|
+
s.homepage = %q{http://github.com/helios/bioruby-ngs}
|
99
|
+
s.licenses = [%q{MIT}]
|
100
|
+
s.require_paths = [%q{lib}]
|
101
|
+
s.rubygems_version = %q{1.8.6}
|
102
|
+
s.summary = %q{bio-ngs provides a framework for handling NGS data with BioRuby}
|
103
|
+
s.test_files = [
|
104
|
+
"spec/converter_qseq_spec.rb",
|
105
|
+
"spec/quality_spec.rb",
|
106
|
+
"spec/sff_extract_spec.rb",
|
107
|
+
"spec/spec_helper.rb",
|
108
|
+
"spec/tophat_spec.rb",
|
109
|
+
"spec/utils_spec.rb",
|
110
|
+
"test/helper.rb",
|
111
|
+
"test/test_bio-ngs.rb",
|
112
|
+
"test/test_db.rb",
|
113
|
+
"test/test_homology.rb",
|
114
|
+
"test/test_ngs.rb",
|
115
|
+
"test/test_ontology.rb",
|
116
|
+
"test/test_utils.rb"
|
117
|
+
]
|
118
|
+
|
119
|
+
if s.respond_to? :specification_version then
|
120
|
+
s.specification_version = 3
|
121
|
+
|
122
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
123
|
+
s.add_runtime_dependency(%q<bio>, [">= 1.4.2"])
|
124
|
+
s.add_runtime_dependency(%q<bio-bwa>, [">= 0.2.2"])
|
125
|
+
s.add_runtime_dependency(%q<bio-samtools>, [">= 0.0.0"])
|
126
|
+
s.add_runtime_dependency(%q<thor>, [">= 0.14.6"])
|
127
|
+
s.add_runtime_dependency(%q<rubyvis>, [">= 0.5.0"])
|
128
|
+
s.add_runtime_dependency(%q<daemons>, [">= 1.1.0"])
|
129
|
+
s.add_runtime_dependency(%q<ruby-ensembl-api>, [">= 1.0.1"])
|
130
|
+
s.add_runtime_dependency(%q<activerecord>, [">= 3.0.5"])
|
131
|
+
s.add_runtime_dependency(%q<sqlite3>, [">= 1.3.3"])
|
132
|
+
s.add_runtime_dependency(%q<bio-blastxmlparser>, [">= 0"])
|
133
|
+
s.add_runtime_dependency(%q<progressbar>, [">= 0.9.0"])
|
134
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
135
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
136
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
137
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
138
|
+
s.add_development_dependency(%q<bio>, [">= 1.4.2"])
|
139
|
+
s.add_development_dependency(%q<thor>, [">= 0.14.6"])
|
140
|
+
s.add_development_dependency(%q<ffi>, [">= 1.0.6"])
|
141
|
+
s.add_development_dependency(%q<rubyvis>, [">= 0.5.0"])
|
142
|
+
s.add_development_dependency(%q<rspec>, [">= 2.5.0"])
|
143
|
+
s.add_development_dependency(%q<daemons>, [">= 1.1.0"])
|
144
|
+
s.add_development_dependency(%q<bio-samtools>, [">= 0.0.0"])
|
145
|
+
s.add_development_dependency(%q<ruby-ensembl-api>, [">= 1.0.1"])
|
146
|
+
s.add_development_dependency(%q<bio-bwa>, [">= 0.2.2"])
|
147
|
+
s.add_development_dependency(%q<activerecord>, [">= 3.0.5"])
|
148
|
+
s.add_development_dependency(%q<sqlite3>, [">= 1.3.3"])
|
149
|
+
s.add_development_dependency(%q<bio-blastxmlparser>, [">= 0"])
|
150
|
+
s.add_development_dependency(%q<progressbar>, [">= 0.9.0"])
|
151
|
+
s.add_development_dependency(%q<json>, [">= 0"])
|
152
|
+
else
|
153
|
+
s.add_dependency(%q<bio>, [">= 1.4.2"])
|
154
|
+
s.add_dependency(%q<bio-bwa>, [">= 0.2.2"])
|
155
|
+
s.add_dependency(%q<bio-samtools>, [">= 0.0.0"])
|
156
|
+
s.add_dependency(%q<thor>, [">= 0.14.6"])
|
157
|
+
s.add_dependency(%q<rubyvis>, [">= 0.5.0"])
|
158
|
+
s.add_dependency(%q<daemons>, [">= 1.1.0"])
|
159
|
+
s.add_dependency(%q<ruby-ensembl-api>, [">= 1.0.1"])
|
160
|
+
s.add_dependency(%q<activerecord>, [">= 3.0.5"])
|
161
|
+
s.add_dependency(%q<sqlite3>, [">= 1.3.3"])
|
162
|
+
s.add_dependency(%q<bio-blastxmlparser>, [">= 0"])
|
163
|
+
s.add_dependency(%q<progressbar>, [">= 0.9.0"])
|
164
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
165
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
166
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
167
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
168
|
+
s.add_dependency(%q<bio>, [">= 1.4.2"])
|
169
|
+
s.add_dependency(%q<thor>, [">= 0.14.6"])
|
170
|
+
s.add_dependency(%q<ffi>, [">= 1.0.6"])
|
171
|
+
s.add_dependency(%q<rubyvis>, [">= 0.5.0"])
|
172
|
+
s.add_dependency(%q<rspec>, [">= 2.5.0"])
|
173
|
+
s.add_dependency(%q<daemons>, [">= 1.1.0"])
|
174
|
+
s.add_dependency(%q<bio-samtools>, [">= 0.0.0"])
|
175
|
+
s.add_dependency(%q<ruby-ensembl-api>, [">= 1.0.1"])
|
176
|
+
s.add_dependency(%q<bio-bwa>, [">= 0.2.2"])
|
177
|
+
s.add_dependency(%q<activerecord>, [">= 3.0.5"])
|
178
|
+
s.add_dependency(%q<sqlite3>, [">= 1.3.3"])
|
179
|
+
s.add_dependency(%q<bio-blastxmlparser>, [">= 0"])
|
180
|
+
s.add_dependency(%q<progressbar>, [">= 0.9.0"])
|
181
|
+
s.add_dependency(%q<json>, [">= 0"])
|
182
|
+
end
|
183
|
+
else
|
184
|
+
s.add_dependency(%q<bio>, [">= 1.4.2"])
|
185
|
+
s.add_dependency(%q<bio-bwa>, [">= 0.2.2"])
|
186
|
+
s.add_dependency(%q<bio-samtools>, [">= 0.0.0"])
|
187
|
+
s.add_dependency(%q<thor>, [">= 0.14.6"])
|
188
|
+
s.add_dependency(%q<rubyvis>, [">= 0.5.0"])
|
189
|
+
s.add_dependency(%q<daemons>, [">= 1.1.0"])
|
190
|
+
s.add_dependency(%q<ruby-ensembl-api>, [">= 1.0.1"])
|
191
|
+
s.add_dependency(%q<activerecord>, [">= 3.0.5"])
|
192
|
+
s.add_dependency(%q<sqlite3>, [">= 1.3.3"])
|
193
|
+
s.add_dependency(%q<bio-blastxmlparser>, [">= 0"])
|
194
|
+
s.add_dependency(%q<progressbar>, [">= 0.9.0"])
|
195
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
196
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
197
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
198
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
199
|
+
s.add_dependency(%q<bio>, [">= 1.4.2"])
|
200
|
+
s.add_dependency(%q<thor>, [">= 0.14.6"])
|
201
|
+
s.add_dependency(%q<ffi>, [">= 1.0.6"])
|
202
|
+
s.add_dependency(%q<rubyvis>, [">= 0.5.0"])
|
203
|
+
s.add_dependency(%q<rspec>, [">= 2.5.0"])
|
204
|
+
s.add_dependency(%q<daemons>, [">= 1.1.0"])
|
205
|
+
s.add_dependency(%q<bio-samtools>, [">= 0.0.0"])
|
206
|
+
s.add_dependency(%q<ruby-ensembl-api>, [">= 1.0.1"])
|
207
|
+
s.add_dependency(%q<bio-bwa>, [">= 0.2.2"])
|
208
|
+
s.add_dependency(%q<activerecord>, [">= 3.0.5"])
|
209
|
+
s.add_dependency(%q<sqlite3>, [">= 1.3.3"])
|
210
|
+
s.add_dependency(%q<bio-blastxmlparser>, [">= 0"])
|
211
|
+
s.add_dependency(%q<progressbar>, [">= 0.9.0"])
|
212
|
+
s.add_dependency(%q<json>, [">= 0"])
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
data/ext/mkrf_conf.rb
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
#(c) Copyright 2011 Raoul Bonnal. All Rights Reserved.
|
2
|
+
|
3
|
+
# create Rakefile for shared library compilation
|
4
|
+
|
5
|
+
|
6
|
+
path = File.expand_path(File.dirname(__FILE__))
|
7
|
+
|
8
|
+
path_external = File.join(path, "../lib/bio/ngs/ext")
|
9
|
+
path_lib = File.join(path,"../lib")
|
10
|
+
path_binary = File.join(path_external,"bin","common")
|
11
|
+
|
12
|
+
|
13
|
+
File.open(File.join(path,"Rakefile"),"w") do |rakefile|
|
14
|
+
if (ARGV.include?("--biolinux") | ARGV.include?("--no-third-party"))
|
15
|
+
rakefile.write <<-RAKE
|
16
|
+
task :default do
|
17
|
+
puts "Nothing to do, third party software must be, already, installed on the host system. Bye Bye!"
|
18
|
+
end #default
|
19
|
+
RAKE
|
20
|
+
else
|
21
|
+
rakefile.write <<-RAKE
|
22
|
+
|
23
|
+
require 'rbconfig'
|
24
|
+
require 'open-uri'
|
25
|
+
require 'fileutils'
|
26
|
+
include FileUtils::Verbose
|
27
|
+
require 'rake/clean'
|
28
|
+
require 'yaml'
|
29
|
+
require File.join("#{path_lib}","/bio/ngs/utils") #ToDo: I dnk if it is better to require everything or just the utils Bio::Ngs::Utils
|
30
|
+
|
31
|
+
module Gem
|
32
|
+
module Install
|
33
|
+
class << self
|
34
|
+
def foreign_files(path=".")
|
35
|
+
install_files = %w(Rakefile gem_make.out mkrf_conf.rb).map{|fn| File.join(path,fn)}
|
36
|
+
Dir.glob(path+"/*") - install_files
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
versions = YAML.load_file(File.join("#{path_external}","versions.yaml"))
|
43
|
+
|
44
|
+
|
45
|
+
task :download do
|
46
|
+
|
47
|
+
["common", Bio::Ngs::Utils.os_type].each do |kind_software|
|
48
|
+
#download common libraries or tools
|
49
|
+
#download specific OS binaries or libraries
|
50
|
+
versions[kind_software].each do |tool, info|
|
51
|
+
filename = "\#{info["basename"]}.\#{info["suffix"]}"
|
52
|
+
Bio::Ngs::Utils.download_with_progress(:url => info["url"], :filename => filename)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
task :compile do
|
58
|
+
["common", Bio::Ngs::Utils.os_type].each do |kind_software|
|
59
|
+
path_binary = File.join("#{path_external}", 'bin', kind_software)
|
60
|
+
#download common libraries or tools
|
61
|
+
#download specific OS binaries or libraries
|
62
|
+
versions[kind_software].each do |tool, info|
|
63
|
+
Bio::Ngs::Utils.compile_source(tool, info, "#{path_external}", path_binary) if info["type"]=="source"
|
64
|
+
end #versions
|
65
|
+
end
|
66
|
+
end #compile
|
67
|
+
|
68
|
+
task :binary do
|
69
|
+
["common", Bio::Ngs::Utils.os_type].each do |kind_software|
|
70
|
+
path_binary = File.join("#{path_external}", 'bin', kind_software)
|
71
|
+
versions[kind_software].each do |tool, info|
|
72
|
+
Bio::Ngs::Utils.install_binary(tool, info, "#{path_external}", path_binary) if info["type"]=="binary"
|
73
|
+
end #versions
|
74
|
+
end
|
75
|
+
end #binary
|
76
|
+
|
77
|
+
task :clean do
|
78
|
+
Gem::Install.foreign_files("#{path}").each do |file_to_remove|
|
79
|
+
Dir.exists?(file_to_remove) ? FileUtils.remove_dir(file_to_remove) : FileUtils.rm(file_to_remove)
|
80
|
+
end
|
81
|
+
end #clean
|
82
|
+
|
83
|
+
task :default => [:download,:compile,:binary,:clean]
|
84
|
+
|
85
|
+
RAKE
|
86
|
+
end #unless
|
87
|
+
end #file
|
data/lib/bio-ngs.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
#
|
2
|
+
# bio-ngs.rb - Main bio-ngs class
|
3
|
+
#
|
4
|
+
# Copyright:: Copyright (C) 2011
|
5
|
+
# Raoul Bonnal <r@bioruby.org>,
|
6
|
+
# Francesco Strozzi <francesco.strozzi@gmail.com>
|
7
|
+
# License:: The Ruby License
|
8
|
+
#
|
9
|
+
#
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
# External gems
|
14
|
+
require 'yaml'
|
15
|
+
require 'json'
|
16
|
+
require 'daemons'
|
17
|
+
require 'bio-samtools'
|
18
|
+
require 'thor'
|
19
|
+
require 'thor/group'
|
20
|
+
require 'thor/runner'
|
21
|
+
require 'bio-blastxmlparser'
|
22
|
+
require 'bio'
|
23
|
+
require 'bio-bwa'
|
24
|
+
require 'active_record'
|
25
|
+
require 'sqlite3'
|
26
|
+
|
27
|
+
# NGS classes
|
28
|
+
require 'enumerable'
|
29
|
+
require 'wrapper'
|
30
|
+
require 'bio/ngs/utils'
|
31
|
+
require 'bio/ngs/record'
|
32
|
+
require 'bio/ngs/quality'
|
33
|
+
require 'bio/ngs/graphics'
|
34
|
+
require 'bio/ngs/task'
|
35
|
+
require 'bio/ngs/core_ext'
|
36
|
+
require 'bio/ngs/converter'
|
37
|
+
require 'bio/ngs/db'
|
38
|
+
require 'bio/ngs/homology'
|
39
|
+
require 'bio/ngs/ontology'
|
40
|
+
|
41
|
+
#tools
|
42
|
+
require 'bio/appl/ngs/tophat'
|
43
|
+
require 'bio/appl/ngs/bowtie-inspect'
|
44
|
+
require 'bio/appl/ngs/sff_extract'
|
45
|
+
require 'bio/appl/ngs/bcl2qseq' #TODO: FIX THIS BUGGY CODE in THOR TASK
|
46
|
+
|
47
|
+
require 'bio/appl/ngs/cufflinks'
|
48
|
+
require 'bio/appl/ngs/samtools'
|
49
|
+
require 'bio/appl/ngs/fastx'
|
50
|
+
require 'bio/appl/ngs/blast'
|
51
|
+
|
52
|
+
# history
|
53
|
+
Bio::Ngs::HISTORY_FILE = Dir.pwd+"/.task-history.yml"
|
54
|
+
Bio::Ngs::Utils.extend_system_path
|
@@ -0,0 +1,93 @@
|
|
1
|
+
#
|
2
|
+
# bcl2qseq.rb - description
|
3
|
+
#
|
4
|
+
# Copyright:: Copyright (C) 2011
|
5
|
+
# Raoul Bonnal <@bioruby.org>
|
6
|
+
# License:: The Ruby License
|
7
|
+
#
|
8
|
+
#
|
9
|
+
|
10
|
+
|
11
|
+
#require 'bio/command'
|
12
|
+
#require 'shellwords'
|
13
|
+
#require 'thor'
|
14
|
+
#require 'bio/ngs/utils'
|
15
|
+
|
16
|
+
# usage:
|
17
|
+
# setupBclToQseq.py -b /path/to/BaseCalls [--in-place|-o /path/to/Output] [options]
|
18
|
+
#
|
19
|
+
# Script to setup the output directory for the conversion of BCLfiles produced by
|
20
|
+
# RTA into a standard QSEQ-based base calls folder.
|
21
|
+
#
|
22
|
+
# options:
|
23
|
+
# -h, --help show this help message and exit
|
24
|
+
# -b BASE_CALLS_DIRECTORY, --base-calls-directory=BASE_CALLS_DIRECTORY
|
25
|
+
# Full path to the Base Calls directory generated by the
|
26
|
+
# instrument
|
27
|
+
# --in-place Allow in-place conversion (in the Base Calls
|
28
|
+
# directory)
|
29
|
+
# -o OUTPUT_DIRECTORY, --output-directory=OUTPUT_DIRECTORY
|
30
|
+
# Full path to the output directory, if not in --in-
|
31
|
+
# place mode
|
32
|
+
# -i INTENSITIES_DIRECTORY, --intensities-directory=INTENSITIES_DIRECTORY
|
33
|
+
# Full path to the directory containing the intensities,
|
34
|
+
# if different from the parent of the Base Calls
|
35
|
+
# directory
|
36
|
+
# -f FILTER_DIRECTORY, --filter-directory=FILTER_DIRECTORY
|
37
|
+
# Full path to the filter directory, if different from
|
38
|
+
# the Base Calls directory
|
39
|
+
# -p POSITIONS_DIRECTORY, --positions-directory=POSITIONS_DIRECTORY
|
40
|
+
# Full path to the positions directory, if different
|
41
|
+
# from the Intensities directory
|
42
|
+
# -P POSITIONS_FORMAT, --positions-format=POSITIONS_FORMAT
|
43
|
+
# Positions file format (supported formats are:
|
44
|
+
# {'_pos.txt','.locs','.clocs'})
|
45
|
+
# --no-eamss Do not apply the EAMSS quality masking
|
46
|
+
# --overwrite Overwrite the content of the output directory if it
|
47
|
+
# already exists
|
48
|
+
# --GERALD=GERALD Path to the GERALD config file
|
49
|
+
# -S, --silent Do not produce any information or warnings
|
50
|
+
# -Q, --quiet Produce only warnings. Skips general information
|
51
|
+
# -V, --verbose Produce additional debug information
|
52
|
+
# -v, --version Print the version information and exits
|
53
|
+
# -L LOG_FILE, --log-file=LOG_FILE
|
54
|
+
# Full path to the log file
|
55
|
+
# -c, --include-controls
|
56
|
+
# Include controls information in Passing Filter column
|
57
|
+
# --ignore-missing-bcl Assume missing *.bcl files correspond to a missed base
|
58
|
+
# call (i.e., '.')
|
59
|
+
# --ignore-missing-stats
|
60
|
+
# Fill in with zeros when *.stats files are missing
|
61
|
+
|
62
|
+
|
63
|
+
module Bio
|
64
|
+
module Ngs
|
65
|
+
class Bclqseq
|
66
|
+
|
67
|
+
include Bio::Command::Wrapper
|
68
|
+
|
69
|
+
set_program Bio::Ngs::Utils.binary("setupBclToQseq.py")
|
70
|
+
|
71
|
+
add_option "base-calls-directory", :type => :string, :aliases =>'-b', :desc => 'Full path to the Base Calls directory generated by the instrument'
|
72
|
+
add_option "in-place",:type => :boolean, :desc => 'Allow in-place conversion (in the Base Calls directory)'
|
73
|
+
add_option "output-directory", :type => :string, :aliases => '-o', :desc => 'Full path to the output directory, if not in --in-place mode'
|
74
|
+
add_option "intensities-directory", :type => :string, :aliases => '-i', :desc => 'Full path to the directory containing the intensities, if different from the parent of the Base Calls directory'
|
75
|
+
add_option "filter-directory", :type => :string , :aliases => '-f', :desc => 'Full path to the filter directory, if different from the Base Calls directory'
|
76
|
+
add_option "positions-directory", :type => :string, :aliases => '-p', :desc => 'Full path to the positions directory, if different from the Intensities directory'
|
77
|
+
add_option "positions-format", :type => :string, :aliases => '-P', :desc => 'Positions file format (supported formats are: {\'_pos.txt\',\'.locs\',\'.clocs\'})'
|
78
|
+
add_option "no-eamss", :type => :boolean, :desc => 'Do not apply the EAMSS quality masking'
|
79
|
+
add_option "overwrite", :type => :boolean, :desc => 'Overwrite the content of the output directory if it already exists'
|
80
|
+
add_option "GERALD", :type => :string, :desc => 'Path to the GERALD config file'
|
81
|
+
add_option "silent", :type => :boolean, :aliases => '-S', :desc => 'Do not produce any information or warnings'
|
82
|
+
add_option "quiet", :type => :boolean, :aliases => '-Q', :desc => 'Produce only warnings. Skips general information'
|
83
|
+
add_option "verbose", :type => :boolean, :aliases => '-V', :desc => 'Produce additional debug information'
|
84
|
+
add_option "log-file", :type => :string, :aliases => '-L', :desc => 'Full path to the log file'
|
85
|
+
add_option "include-controls", :type => :boolean, :aliases => '-c', :desc => 'Include controls information in Passing Filter column'
|
86
|
+
add_option "ignore-missing-bcl", :type => :boolean, :desc => 'Assume missing *.bcl files correspond to a missed base call (i.e., \'.\')'
|
87
|
+
add_option "ignore-missin-stats", :type => :boolean, :desc => 'Fill in with zeros when *.stats files are missing'
|
88
|
+
|
89
|
+
end #Bcl2seq
|
90
|
+
end #Ngs
|
91
|
+
end #Bio
|
92
|
+
|
93
|
+
|