bio-ngs 0.3.2.alpha.01
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.
- 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
|
+
|