bio-ngs 0.3.2.alpha.01 → 0.4.2.alpha.01

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -5,7 +5,7 @@ source "http://rubygems.org"
5
5
 
6
6
  gem "bio", ">= 1.4.2"
7
7
  gem "bio-bwa", ">= 0.2.2"
8
- gem "bio-samtools", ">= 0.0.0"
8
+ gem "bio-samtools", ">= 0.3.2"
9
9
  gem "thor", ">= 0.14.6"
10
10
  gem "rubyvis", ">= 0.5.0"
11
11
  gem "daemons", ">= 1.1.0"
@@ -14,6 +14,7 @@ gem "activerecord",">= 3.0.5"
14
14
  gem "sqlite3", ">= 1.3.3"
15
15
  gem "bio-blastxmlparser"
16
16
  gem "progressbar",">= 0.9.0"
17
+ gem "rake", "0.9.2.2"
17
18
 
18
19
  # Add dependencies to develop your gem here.
19
20
  # Include everything needed to run rake, tests, features, etc.
@@ -21,14 +22,14 @@ group :development do
21
22
  gem "shoulda", ">= 0"
22
23
  gem "bundler", "~> 1.0.0"
23
24
  gem "jeweler", "~> 1.5.2"
24
- gem "rcov", ">= 0"
25
+ gem "rcov", "~> 0.9.11"
25
26
  gem "bio", ">= 1.4.2"
26
27
  gem "thor", ">= 0.14.6"
27
28
  gem "ffi", ">= 1.0.6"
28
29
  gem "rubyvis", ">= 0.5.0"
29
30
  gem "rspec", ">= 2.5.0"
30
31
  gem "daemons", ">= 1.1.0"
31
- gem "bio-samtools", ">= 0.0.0"
32
+ gem "bio-samtools", ">= 0.3.2"
32
33
  gem "ruby-ensembl-api", ">= 1.0.1"
33
34
  gem 'bio-bwa', ">= 0.2.2"
34
35
  gem "activerecord",">= 3.0.5"
@@ -36,4 +37,5 @@ group :development do
36
37
  gem "bio-blastxmlparser"
37
38
  gem "progressbar",">= 0.9.0"
38
39
  gem "json"
40
+ gem "rake", "0.9.2.2"
39
41
  end
data/Gemfile.lock CHANGED
@@ -1,18 +1,18 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activemodel (3.1.1)
5
- activesupport (= 3.1.1)
4
+ activemodel (3.2.1)
5
+ activesupport (= 3.2.1)
6
6
  builder (~> 3.0.0)
7
- i18n (~> 0.6)
8
- activerecord (3.1.1)
9
- activemodel (= 3.1.1)
10
- activesupport (= 3.1.1)
11
- arel (~> 2.2.1)
7
+ activerecord (3.2.1)
8
+ activemodel (= 3.2.1)
9
+ activesupport (= 3.2.1)
10
+ arel (~> 3.0.0)
12
11
  tzinfo (~> 0.3.29)
13
- activesupport (3.1.1)
12
+ activesupport (3.2.1)
13
+ i18n (~> 0.6)
14
14
  multi_json (~> 1.0)
15
- arel (2.2.1)
15
+ arel (3.0.0)
16
16
  bio (1.4.2)
17
17
  bio-blastxmlparser (1.0.1)
18
18
  bio-logger (>= 1.0.0)
@@ -20,44 +20,49 @@ GEM
20
20
  bio-bwa (0.2.2)
21
21
  bio-logger (1.0.0)
22
22
  log4r (>= 1.1.9)
23
- bio-samtools (0.2.4)
24
- bio (>= 1.4.1)
23
+ bio-samtools (0.5.0)
24
+ bio (>= 1.4.2)
25
25
  ffi
26
26
  builder (3.0.0)
27
- daemons (1.1.4)
27
+ daemons (1.1.8)
28
28
  diff-lcs (1.1.3)
29
- ffi (1.0.9)
29
+ ffi (1.0.11)
30
+ ffi (1.0.11-java)
30
31
  git (1.2.5)
31
32
  i18n (0.6.0)
32
33
  jeweler (1.5.2)
33
34
  bundler (~> 1.0.0)
34
35
  git (>= 1.2.5)
35
36
  rake
36
- json (1.6.1)
37
- log4r (1.1.9)
38
- multi_json (1.0.3)
37
+ json (1.6.5)
38
+ json (1.6.5-java)
39
+ log4r (1.1.10)
40
+ multi_json (1.0.4)
39
41
  nokogiri (1.5.0)
40
- progressbar (0.9.1)
41
- rake (0.9.2)
42
+ nokogiri (1.5.0-java)
43
+ progressbar (0.10.0)
44
+ rake (0.9.2.2)
42
45
  rcov (0.9.11)
43
- rspec (2.6.0)
44
- rspec-core (~> 2.6.0)
45
- rspec-expectations (~> 2.6.0)
46
- rspec-mocks (~> 2.6.0)
47
- rspec-core (2.6.4)
48
- rspec-expectations (2.6.0)
46
+ rcov (0.9.11-java)
47
+ rspec (2.8.0)
48
+ rspec-core (~> 2.8.0)
49
+ rspec-expectations (~> 2.8.0)
50
+ rspec-mocks (~> 2.8.0)
51
+ rspec-core (2.8.0)
52
+ rspec-expectations (2.8.0)
49
53
  diff-lcs (~> 1.1.2)
50
- rspec-mocks (2.6.0)
54
+ rspec-mocks (2.8.0)
51
55
  ruby-ensembl-api (1.0.1)
52
56
  activerecord
53
57
  bio (>= 1)
54
- rubyvis (0.5.0)
58
+ rubyvis (0.5.1)
55
59
  shoulda (2.11.3)
56
- sqlite3 (1.3.4)
60
+ sqlite3 (1.3.5)
57
61
  thor (0.14.6)
58
- tzinfo (0.3.30)
62
+ tzinfo (0.3.31)
59
63
 
60
64
  PLATFORMS
65
+ java
61
66
  ruby
62
67
 
63
68
  DEPENDENCIES
@@ -65,14 +70,15 @@ DEPENDENCIES
65
70
  bio (>= 1.4.2)
66
71
  bio-blastxmlparser
67
72
  bio-bwa (>= 0.2.2)
68
- bio-samtools (>= 0.0.0)
73
+ bio-samtools (>= 0.3.2)
69
74
  bundler (~> 1.0.0)
70
75
  daemons (>= 1.1.0)
71
76
  ffi (>= 1.0.6)
72
77
  jeweler (~> 1.5.2)
73
78
  json
74
79
  progressbar (>= 0.9.0)
75
- rcov
80
+ rake (= 0.9.2.2)
81
+ rcov (~> 0.9.11)
76
82
  rspec (>= 2.5.0)
77
83
  ruby-ensembl-api (>= 1.0.1)
78
84
  rubyvis (>= 0.5.0)
data/README.rdoc CHANGED
@@ -67,6 +67,13 @@ Most of this tasks create sub-processes to speed up conversions
67
67
 
68
68
  = ForDevelopers
69
69
 
70
+ == Contribute
71
+ === Clone Main Repository
72
+ This command will crate a local copy of the main repository
73
+ git clone https://github.com/helios/bioruby-ngs
74
+ === Install Bioinformatics Tools into the repository directory
75
+ rake devenv:bio_tools
76
+
70
77
  == Wrapper
71
78
  Bio-Ngs comes with a build-in wrapper to map binary software directly in BioRuby as objects. From this wrapper object is possible to create Thor task as well, with a lot of sugar.
72
79
  === Wrapping a binary
@@ -187,6 +194,32 @@ You can create a new wrapper and configure it and run it from inside a Thor's ta
187
194
  end #Ngs
188
195
  end #Bio
189
196
 
197
+ == Features
198
+ === Iterators for output files
199
+
200
+ Example CuffDiff. In this class is possible to define an iterator for a specific set of output files: genes, isoforms, tss_groups, cds.
201
+ To activate the iterator is just a matter of call a class method in the class definition
202
+ class Bio::Ngs::Cufflinks::Diff
203
+ #... all the previous definitions
204
+ #define iterators
205
+ add_iterator_for :genes
206
+ add_iterator_for :isoforms
207
+ add_iterator_for :cds
208
+ add_iterator_for :tss_groups
209
+ end
210
+
211
+ This is an example of CuffDiff, parsing genes.fpkm_tracking file:
212
+
213
+ Bio::Ngs::Cufflinks::Diff.foreach_gene_tracked("path_to_cuffdiff_output_directory") do |gene_fpkm_track|
214
+ expression_profile = (1..7).map do |sample_idx|
215
+ gene_fpkm_track["q#{sample_idx}_FPKM"].to_f
216
+ end
217
+
218
+ #do your stuff accessing this tabular file with gene_fpkm_track["name of the field"]
219
+ end
220
+
221
+ In this case internally CSV library has been used to parse in an easy way the file, there is a lack of performances with huge files, gaining in flexibility.
222
+
190
223
  === Notes
191
224
  * It's possible to add more sugar and we are working hard on it
192
225
  * aliases are not well supported at this time. ToDo
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2.alpha.01
1
+ 0.4.2.alpha.01
data/bio-ngs.gemspec CHANGED
@@ -4,16 +4,16 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{bio-ngs}
8
- s.version = "0.3.2.alpha.01"
7
+ s.name = "bio-ngs"
8
+ s.version = "0.4.2.alpha.01"
9
9
 
10
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}]
11
+ s.authors = ["Francesco Strozzi", "Raoul J.P. Bonnal"]
12
+ s.date = "2012-02-13"
13
+ s.description = "bio-ngs provides a framework for handling NGS data with BioRuby"
14
+ s.email = "francesco.strozzi@gmail.com"
15
+ s.executables = ["biongs"]
16
+ s.extensions = ["ext/mkrf_conf.rb"]
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE.txt",
19
19
  "README.rdoc"
@@ -34,6 +34,7 @@ Gem::Specification.new do |s|
34
34
  "lib/bio/appl/ngs/blast.rb",
35
35
  "lib/bio/appl/ngs/bowtie-inspect.rb",
36
36
  "lib/bio/appl/ngs/cufflinks.rb",
37
+ "lib/bio/appl/ngs/cufflinks/iterators.rb",
37
38
  "lib/bio/appl/ngs/fastx.rb",
38
39
  "lib/bio/appl/ngs/samtools.rb",
39
40
  "lib/bio/appl/ngs/sff_extract.rb",
@@ -68,6 +69,7 @@ Gem::Specification.new do |s|
68
69
  "lib/tasks/history.thor",
69
70
  "lib/tasks/homology.thor",
70
71
  "lib/tasks/ontology.thor",
72
+ "lib/tasks/pre.thor",
71
73
  "lib/tasks/project.thor",
72
74
  "lib/tasks/quality.thor",
73
75
  "lib/tasks/rna.thor",
@@ -95,11 +97,11 @@ Gem::Specification.new do |s|
95
97
  "test/test_ontology.rb",
96
98
  "test/test_utils.rb"
97
99
  ]
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}
100
+ s.homepage = "http://github.com/helios/bioruby-ngs"
101
+ s.licenses = ["MIT"]
102
+ s.require_paths = ["lib"]
103
+ s.rubygems_version = "1.8.10"
104
+ s.summary = "bio-ngs provides a framework for handling NGS data with BioRuby"
103
105
  s.test_files = [
104
106
  "spec/converter_qseq_spec.rb",
105
107
  "spec/quality_spec.rb",
@@ -122,7 +124,7 @@ Gem::Specification.new do |s|
122
124
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
123
125
  s.add_runtime_dependency(%q<bio>, [">= 1.4.2"])
124
126
  s.add_runtime_dependency(%q<bio-bwa>, [">= 0.2.2"])
125
- s.add_runtime_dependency(%q<bio-samtools>, [">= 0.0.0"])
127
+ s.add_runtime_dependency(%q<bio-samtools>, [">= 0.3.2"])
126
128
  s.add_runtime_dependency(%q<thor>, [">= 0.14.6"])
127
129
  s.add_runtime_dependency(%q<rubyvis>, [">= 0.5.0"])
128
130
  s.add_runtime_dependency(%q<daemons>, [">= 1.1.0"])
@@ -131,17 +133,18 @@ Gem::Specification.new do |s|
131
133
  s.add_runtime_dependency(%q<sqlite3>, [">= 1.3.3"])
132
134
  s.add_runtime_dependency(%q<bio-blastxmlparser>, [">= 0"])
133
135
  s.add_runtime_dependency(%q<progressbar>, [">= 0.9.0"])
136
+ s.add_runtime_dependency(%q<rake>, ["= 0.9.2.2"])
134
137
  s.add_development_dependency(%q<shoulda>, [">= 0"])
135
138
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
136
139
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
137
- s.add_development_dependency(%q<rcov>, [">= 0"])
140
+ s.add_development_dependency(%q<rcov>, ["~> 0.9.11"])
138
141
  s.add_development_dependency(%q<bio>, [">= 1.4.2"])
139
142
  s.add_development_dependency(%q<thor>, [">= 0.14.6"])
140
143
  s.add_development_dependency(%q<ffi>, [">= 1.0.6"])
141
144
  s.add_development_dependency(%q<rubyvis>, [">= 0.5.0"])
142
145
  s.add_development_dependency(%q<rspec>, [">= 2.5.0"])
143
146
  s.add_development_dependency(%q<daemons>, [">= 1.1.0"])
144
- s.add_development_dependency(%q<bio-samtools>, [">= 0.0.0"])
147
+ s.add_development_dependency(%q<bio-samtools>, [">= 0.3.2"])
145
148
  s.add_development_dependency(%q<ruby-ensembl-api>, [">= 1.0.1"])
146
149
  s.add_development_dependency(%q<bio-bwa>, [">= 0.2.2"])
147
150
  s.add_development_dependency(%q<activerecord>, [">= 3.0.5"])
@@ -149,10 +152,11 @@ Gem::Specification.new do |s|
149
152
  s.add_development_dependency(%q<bio-blastxmlparser>, [">= 0"])
150
153
  s.add_development_dependency(%q<progressbar>, [">= 0.9.0"])
151
154
  s.add_development_dependency(%q<json>, [">= 0"])
155
+ s.add_development_dependency(%q<rake>, ["= 0.9.2.2"])
152
156
  else
153
157
  s.add_dependency(%q<bio>, [">= 1.4.2"])
154
158
  s.add_dependency(%q<bio-bwa>, [">= 0.2.2"])
155
- s.add_dependency(%q<bio-samtools>, [">= 0.0.0"])
159
+ s.add_dependency(%q<bio-samtools>, [">= 0.3.2"])
156
160
  s.add_dependency(%q<thor>, [">= 0.14.6"])
157
161
  s.add_dependency(%q<rubyvis>, [">= 0.5.0"])
158
162
  s.add_dependency(%q<daemons>, [">= 1.1.0"])
@@ -161,17 +165,18 @@ Gem::Specification.new do |s|
161
165
  s.add_dependency(%q<sqlite3>, [">= 1.3.3"])
162
166
  s.add_dependency(%q<bio-blastxmlparser>, [">= 0"])
163
167
  s.add_dependency(%q<progressbar>, [">= 0.9.0"])
168
+ s.add_dependency(%q<rake>, ["= 0.9.2.2"])
164
169
  s.add_dependency(%q<shoulda>, [">= 0"])
165
170
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
166
171
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
167
- s.add_dependency(%q<rcov>, [">= 0"])
172
+ s.add_dependency(%q<rcov>, ["~> 0.9.11"])
168
173
  s.add_dependency(%q<bio>, [">= 1.4.2"])
169
174
  s.add_dependency(%q<thor>, [">= 0.14.6"])
170
175
  s.add_dependency(%q<ffi>, [">= 1.0.6"])
171
176
  s.add_dependency(%q<rubyvis>, [">= 0.5.0"])
172
177
  s.add_dependency(%q<rspec>, [">= 2.5.0"])
173
178
  s.add_dependency(%q<daemons>, [">= 1.1.0"])
174
- s.add_dependency(%q<bio-samtools>, [">= 0.0.0"])
179
+ s.add_dependency(%q<bio-samtools>, [">= 0.3.2"])
175
180
  s.add_dependency(%q<ruby-ensembl-api>, [">= 1.0.1"])
176
181
  s.add_dependency(%q<bio-bwa>, [">= 0.2.2"])
177
182
  s.add_dependency(%q<activerecord>, [">= 3.0.5"])
@@ -179,11 +184,12 @@ Gem::Specification.new do |s|
179
184
  s.add_dependency(%q<bio-blastxmlparser>, [">= 0"])
180
185
  s.add_dependency(%q<progressbar>, [">= 0.9.0"])
181
186
  s.add_dependency(%q<json>, [">= 0"])
187
+ s.add_dependency(%q<rake>, ["= 0.9.2.2"])
182
188
  end
183
189
  else
184
190
  s.add_dependency(%q<bio>, [">= 1.4.2"])
185
191
  s.add_dependency(%q<bio-bwa>, [">= 0.2.2"])
186
- s.add_dependency(%q<bio-samtools>, [">= 0.0.0"])
192
+ s.add_dependency(%q<bio-samtools>, [">= 0.3.2"])
187
193
  s.add_dependency(%q<thor>, [">= 0.14.6"])
188
194
  s.add_dependency(%q<rubyvis>, [">= 0.5.0"])
189
195
  s.add_dependency(%q<daemons>, [">= 1.1.0"])
@@ -192,17 +198,18 @@ Gem::Specification.new do |s|
192
198
  s.add_dependency(%q<sqlite3>, [">= 1.3.3"])
193
199
  s.add_dependency(%q<bio-blastxmlparser>, [">= 0"])
194
200
  s.add_dependency(%q<progressbar>, [">= 0.9.0"])
201
+ s.add_dependency(%q<rake>, ["= 0.9.2.2"])
195
202
  s.add_dependency(%q<shoulda>, [">= 0"])
196
203
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
197
204
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
198
- s.add_dependency(%q<rcov>, [">= 0"])
205
+ s.add_dependency(%q<rcov>, ["~> 0.9.11"])
199
206
  s.add_dependency(%q<bio>, [">= 1.4.2"])
200
207
  s.add_dependency(%q<thor>, [">= 0.14.6"])
201
208
  s.add_dependency(%q<ffi>, [">= 1.0.6"])
202
209
  s.add_dependency(%q<rubyvis>, [">= 0.5.0"])
203
210
  s.add_dependency(%q<rspec>, [">= 2.5.0"])
204
211
  s.add_dependency(%q<daemons>, [">= 1.1.0"])
205
- s.add_dependency(%q<bio-samtools>, [">= 0.0.0"])
212
+ s.add_dependency(%q<bio-samtools>, [">= 0.3.2"])
206
213
  s.add_dependency(%q<ruby-ensembl-api>, [">= 1.0.1"])
207
214
  s.add_dependency(%q<bio-bwa>, [">= 0.2.2"])
208
215
  s.add_dependency(%q<activerecord>, [">= 3.0.5"])
@@ -210,6 +217,7 @@ Gem::Specification.new do |s|
210
217
  s.add_dependency(%q<bio-blastxmlparser>, [">= 0"])
211
218
  s.add_dependency(%q<progressbar>, [">= 0.9.0"])
212
219
  s.add_dependency(%q<json>, [">= 0"])
220
+ s.add_dependency(%q<rake>, ["= 0.9.2.2"])
213
221
  end
214
222
  end
215
223
 
data/ext/mkrf_conf.rb CHANGED
@@ -57,8 +57,6 @@ path_binary = File.join(path_external,"bin","common")
57
57
  task :compile do
58
58
  ["common", Bio::Ngs::Utils.os_type].each do |kind_software|
59
59
  path_binary = File.join("#{path_external}", 'bin', kind_software)
60
- #download common libraries or tools
61
- #download specific OS binaries or libraries
62
60
  versions[kind_software].each do |tool, info|
63
61
  Bio::Ngs::Utils.compile_source(tool, info, "#{path_external}", path_binary) if info["type"]=="source"
64
62
  end #versions
@@ -0,0 +1,35 @@
1
+
2
+ #use CSV to iterate over all the genes expressed during the differential expression.
3
+
4
+ module Bio
5
+ module Ngs
6
+ module Cufflinks
7
+ module Utils
8
+
9
+ def self.included(base)
10
+ base.extend(ClassMethods)
11
+ end
12
+
13
+ module ClassMethods
14
+ require 'csv'
15
+ # Create an iterator using the specified type_name file.
16
+ # in case of Cufflinks type_file_name can be gene,isoform, cds, tss_group
17
+ def add_iterator_for( type_file_name, opts={})
18
+ plural_name = type_file_name = type_file_name.to_s
19
+ if %w(genes isoforms cds tss_groups).include?(type_file_name)
20
+ type_file_name=type_file_name[0..-2] if type_file_name!="cds"
21
+ self.class.send :define_method, "foreach_#{type_file_name}_tracked" do |path = '.', &block|
22
+ file_name = File.join(path,"#{plural_name}.fpkm_tracking")
23
+ CSV.foreach(file_name, headers: true, converters: :numeric, col_sep:"\t") do |data|
24
+ block.call(data)
25
+ end #cvs_foreach
26
+ end #define_method
27
+ else
28
+ raise "#{type_file_name} is not a valid base name for cuffdiff's output, must be plural and in this set: genes, cds, isoforms, tss_groups"
29
+ end #if
30
+ end #iterator
31
+ end #ClassMethod
32
+ end #Utils
33
+ end #Cufflinks
34
+ end #Ngs
35
+ end #Bio