bio-ngs 0.3.2.alpha.01 → 0.4.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/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