bio-ngs 0.4.7.alpha.02 → 0.4.7.alpha.03

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.
Files changed (64) hide show
  1. data/VERSION +1 -1
  2. data/bio-ngs.gemspec +58 -2
  3. data/features/cufflinks_gtf_parser_indexing.feature +6 -1
  4. data/features/illumina_project_rebuild.feature +17 -0
  5. data/features/step_definitions/cufflinks_gtf_parser_indexing.rb +19 -2
  6. data/lib/bio/appl/ngs/cufflinks/gtf/gtf_parser.rb +43 -17
  7. data/lib/bio/ngs/illumina/illumina.rb +2 -2
  8. data/lib/tasks/filter.thor +2 -2
  9. data/test/conf/projects.yaml +58 -0
  10. data/test/data/Project_Cow/Sample_SQ_0007/SQ_0007_CGATGT_L003_R1_001.fastq.gz +0 -0
  11. data/test/data/Project_Cow/Sample_SQ_0007/SQ_0007_CGATGT_L003_R1_002.fastq.gz +0 -0
  12. data/test/data/Project_Cow/Sample_SQ_0007/SQ_0007_CGATGT_L003_R2_001.fastq.gz +0 -0
  13. data/test/data/Project_Cow/Sample_SQ_0007/SQ_0007_CGATGT_L003_R2_002.fastq.gz +0 -0
  14. data/test/data/Project_Cow/Sample_SQ_0007/filtered/SQ_0007_CGATGT_L003_R1_001.fastq.gz +0 -0
  15. data/test/data/Project_Cow/Sample_SQ_0007/filtered/SQ_0007_CGATGT_L003_R1_002.fastq.gz +0 -0
  16. data/test/data/Project_Cow/Sample_SQ_0007/filtered/SQ_0007_CGATGT_L003_R2_001.fastq.gz +0 -0
  17. data/test/data/Project_Cow/Sample_SQ_0007/filtered/SQ_0007_CGATGT_L003_R2_002.fastq.gz +0 -0
  18. data/test/data/Project_Cow/Sample_SQ_0007/trimmed/SQ_0007_CGATGT_L003_R1_TRIMMED.fastq.gz +0 -0
  19. data/test/data/Project_Cow/Sample_SQ_0007/trimmed/SQ_0007_CGATGT_L003_R2_TRIMMED.fastq.gz +0 -0
  20. data/test/data/Project_Cow/Sample_SQ_0008/SQ_0008_CGATGT_L003_R1_001.fastq.gz +0 -0
  21. data/test/data/Project_Cow/Sample_SQ_0008/SQ_0008_CGATGT_L003_R1_002.fastq.gz +0 -0
  22. data/test/data/Project_Cow/Sample_SQ_0008/SQ_0008_CGATGT_L003_R2_001.fastq.gz +0 -0
  23. data/test/data/Project_Cow/Sample_SQ_0008/SQ_0008_CGATGT_L003_R2_002.fastq.gz +0 -0
  24. data/test/data/Project_Cow/Sample_SQ_0009/SQ_0009_CGATGT_L003_R1_001.fastq.gz +0 -0
  25. data/test/data/Project_Cow/Sample_SQ_0009/SQ_0009_CGATGT_L003_R1_002.fastq.gz +0 -0
  26. data/test/data/Project_Cow/Sample_SQ_0009/SQ_0009_CGATGT_L003_R2_001.fastq.gz +0 -0
  27. data/test/data/Project_Cow/Sample_SQ_0009/SQ_0009_CGATGT_L003_R2_002.fastq.gz +0 -0
  28. data/test/data/Project_Dog/Sample_SQ_0004/SQ_0004_CGATGT_L003_R1_001.fastq.gz +0 -0
  29. data/test/data/Project_Dog/Sample_SQ_0004/SQ_0004_CGATGT_L003_R1_002.fastq.gz +0 -0
  30. data/test/data/Project_Dog/Sample_SQ_0004/SQ_0004_CGATGT_L003_R2_001.fastq.gz +0 -0
  31. data/test/data/Project_Dog/Sample_SQ_0004/SQ_0004_CGATGT_L003_R2_002.fastq.gz +0 -0
  32. data/test/data/Project_Dog/Sample_SQ_0005/SQ_0005_CGATGT_L003_R1_001.fastq.gz +0 -0
  33. data/test/data/Project_Dog/Sample_SQ_0005/SQ_0005_CGATGT_L003_R1_002.fastq.gz +0 -0
  34. data/test/data/Project_Dog/Sample_SQ_0005/SQ_0005_CGATGT_L003_R2_001.fastq.gz +0 -0
  35. data/test/data/Project_Dog/Sample_SQ_0005/SQ_0005_CGATGT_L003_R2_002.fastq.gz +0 -0
  36. data/test/data/Project_Dog/Sample_SQ_0006/SQ_0006_CGATGT_L003_R1_001.fastq.gz +0 -0
  37. data/test/data/Project_Dog/Sample_SQ_0006/SQ_0006_CGATGT_L003_R1_002.fastq.gz +0 -0
  38. data/test/data/Project_Dog/Sample_SQ_0006/SQ_0006_CGATGT_L003_R2_001.fastq.gz +0 -0
  39. data/test/data/Project_Dog/Sample_SQ_0006/SQ_0006_CGATGT_L003_R2_002.fastq.gz +0 -0
  40. data/test/data/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L003_R1_001.fastq.gz +0 -0
  41. data/test/data/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L003_R1_002.fastq.gz +0 -0
  42. data/test/data/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L003_R2_001.fastq.gz +0 -0
  43. data/test/data/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L003_R2_002.fastq.gz +0 -0
  44. data/test/data/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R1_001.fastq.gz +0 -0
  45. data/test/data/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R1_002.fastq.gz +0 -0
  46. data/test/data/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R2_001.fastq.gz +0 -0
  47. data/test/data/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R2_002.fastq.gz +0 -0
  48. data/test/data/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R1_001.fastq.gz +0 -0
  49. data/test/data/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R1_002.fastq.gz +0 -0
  50. data/test/data/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R2_001.fastq.gz +0 -0
  51. data/test/data/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R2_002.fastq.gz +0 -0
  52. data/test/data/RemoteDir/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L010_R1_001.fastq.gz +0 -0
  53. data/test/data/RemoteDir/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L010_R1_002.fastq.gz +0 -0
  54. data/test/data/RemoteDir/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L010_R2_001.fastq.gz +0 -0
  55. data/test/data/RemoteDir/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L010_R2_002.fastq.gz +0 -0
  56. data/test/data/RemoteDir/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R1_001.fastq.gz +0 -0
  57. data/test/data/RemoteDir/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R1_002.fastq.gz +0 -0
  58. data/test/data/RemoteDir/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R2_001.fastq.gz +0 -0
  59. data/test/data/RemoteDir/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R2_002.fastq.gz +0 -0
  60. data/test/data/RemoteDir/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R1_001.fastq.gz +0 -0
  61. data/test/data/RemoteDir/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R1_002.fastq.gz +0 -0
  62. data/test/data/RemoteDir/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R2_001.fastq.gz +0 -0
  63. data/test/data/RemoteDir/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R2_002.fastq.gz +0 -0
  64. metadata +123 -67
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.7.alpha.02
1
+ 0.4.7.alpha.03
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "bio-ngs"
8
- s.version = "0.4.7.alpha.02"
8
+ s.version = "0.4.7.alpha.03"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Francesco Strozzi", "Raoul J.P. Bonnal"]
12
- s.date = "2012-05-25"
12
+ s.date = "2012-05-29"
13
13
  s.description = "bio-ngs provides a framework for handling NGS data with BioRuby"
14
14
  s.email = "francesco.strozzi@gmail.com"
15
15
  s.executables = ["biongs"]
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
31
31
  "ext/mkrf_conf.rb",
32
32
  "features/cufflinks_gtf_parser.feature",
33
33
  "features/cufflinks_gtf_parser_indexing.feature",
34
+ "features/illumina_project_rebuild.feature",
34
35
  "features/step_definitions/cufflinks_gtf.rb",
35
36
  "features/step_definitions/cufflinks_gtf_parser_indexing.rb",
36
37
  "features/support/env.rb",
@@ -115,7 +116,62 @@ Gem::Specification.new do |s|
115
116
  "spec/spec_helper.rb",
116
117
  "spec/tophat_spec.rb",
117
118
  "spec/utils_spec.rb",
119
+ "test/conf/projects.yaml",
118
120
  "test/conf/test_db.yml",
121
+ "test/data/Project_Cow/Sample_SQ_0007/SQ_0007_CGATGT_L003_R1_001.fastq.gz",
122
+ "test/data/Project_Cow/Sample_SQ_0007/SQ_0007_CGATGT_L003_R1_002.fastq.gz",
123
+ "test/data/Project_Cow/Sample_SQ_0007/SQ_0007_CGATGT_L003_R2_001.fastq.gz",
124
+ "test/data/Project_Cow/Sample_SQ_0007/SQ_0007_CGATGT_L003_R2_002.fastq.gz",
125
+ "test/data/Project_Cow/Sample_SQ_0007/filtered/SQ_0007_CGATGT_L003_R1_001.fastq.gz",
126
+ "test/data/Project_Cow/Sample_SQ_0007/filtered/SQ_0007_CGATGT_L003_R1_002.fastq.gz",
127
+ "test/data/Project_Cow/Sample_SQ_0007/filtered/SQ_0007_CGATGT_L003_R2_001.fastq.gz",
128
+ "test/data/Project_Cow/Sample_SQ_0007/filtered/SQ_0007_CGATGT_L003_R2_002.fastq.gz",
129
+ "test/data/Project_Cow/Sample_SQ_0007/trimmed/SQ_0007_CGATGT_L003_R1_TRIMMED.fastq.gz",
130
+ "test/data/Project_Cow/Sample_SQ_0007/trimmed/SQ_0007_CGATGT_L003_R2_TRIMMED.fastq.gz",
131
+ "test/data/Project_Cow/Sample_SQ_0008/SQ_0008_CGATGT_L003_R1_001.fastq.gz",
132
+ "test/data/Project_Cow/Sample_SQ_0008/SQ_0008_CGATGT_L003_R1_002.fastq.gz",
133
+ "test/data/Project_Cow/Sample_SQ_0008/SQ_0008_CGATGT_L003_R2_001.fastq.gz",
134
+ "test/data/Project_Cow/Sample_SQ_0008/SQ_0008_CGATGT_L003_R2_002.fastq.gz",
135
+ "test/data/Project_Cow/Sample_SQ_0009/SQ_0009_CGATGT_L003_R1_001.fastq.gz",
136
+ "test/data/Project_Cow/Sample_SQ_0009/SQ_0009_CGATGT_L003_R1_002.fastq.gz",
137
+ "test/data/Project_Cow/Sample_SQ_0009/SQ_0009_CGATGT_L003_R2_001.fastq.gz",
138
+ "test/data/Project_Cow/Sample_SQ_0009/SQ_0009_CGATGT_L003_R2_002.fastq.gz",
139
+ "test/data/Project_Dog/Sample_SQ_0004/SQ_0004_CGATGT_L003_R1_001.fastq.gz",
140
+ "test/data/Project_Dog/Sample_SQ_0004/SQ_0004_CGATGT_L003_R1_002.fastq.gz",
141
+ "test/data/Project_Dog/Sample_SQ_0004/SQ_0004_CGATGT_L003_R2_001.fastq.gz",
142
+ "test/data/Project_Dog/Sample_SQ_0004/SQ_0004_CGATGT_L003_R2_002.fastq.gz",
143
+ "test/data/Project_Dog/Sample_SQ_0005/SQ_0005_CGATGT_L003_R1_001.fastq.gz",
144
+ "test/data/Project_Dog/Sample_SQ_0005/SQ_0005_CGATGT_L003_R1_002.fastq.gz",
145
+ "test/data/Project_Dog/Sample_SQ_0005/SQ_0005_CGATGT_L003_R2_001.fastq.gz",
146
+ "test/data/Project_Dog/Sample_SQ_0005/SQ_0005_CGATGT_L003_R2_002.fastq.gz",
147
+ "test/data/Project_Dog/Sample_SQ_0006/SQ_0006_CGATGT_L003_R1_001.fastq.gz",
148
+ "test/data/Project_Dog/Sample_SQ_0006/SQ_0006_CGATGT_L003_R1_002.fastq.gz",
149
+ "test/data/Project_Dog/Sample_SQ_0006/SQ_0006_CGATGT_L003_R2_001.fastq.gz",
150
+ "test/data/Project_Dog/Sample_SQ_0006/SQ_0006_CGATGT_L003_R2_002.fastq.gz",
151
+ "test/data/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L003_R1_001.fastq.gz",
152
+ "test/data/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L003_R1_002.fastq.gz",
153
+ "test/data/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L003_R2_001.fastq.gz",
154
+ "test/data/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L003_R2_002.fastq.gz",
155
+ "test/data/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R1_001.fastq.gz",
156
+ "test/data/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R1_002.fastq.gz",
157
+ "test/data/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R2_001.fastq.gz",
158
+ "test/data/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R2_002.fastq.gz",
159
+ "test/data/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R1_001.fastq.gz",
160
+ "test/data/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R1_002.fastq.gz",
161
+ "test/data/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R2_001.fastq.gz",
162
+ "test/data/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R2_002.fastq.gz",
163
+ "test/data/RemoteDir/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L010_R1_001.fastq.gz",
164
+ "test/data/RemoteDir/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L010_R1_002.fastq.gz",
165
+ "test/data/RemoteDir/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L010_R2_001.fastq.gz",
166
+ "test/data/RemoteDir/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L010_R2_002.fastq.gz",
167
+ "test/data/RemoteDir/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R1_001.fastq.gz",
168
+ "test/data/RemoteDir/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R1_002.fastq.gz",
169
+ "test/data/RemoteDir/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R2_001.fastq.gz",
170
+ "test/data/RemoteDir/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R2_002.fastq.gz",
171
+ "test/data/RemoteDir/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R1_001.fastq.gz",
172
+ "test/data/RemoteDir/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R1_002.fastq.gz",
173
+ "test/data/RemoteDir/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R2_001.fastq.gz",
174
+ "test/data/RemoteDir/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R2_002.fastq.gz",
119
175
  "test/data/blastoutput.xml",
120
176
  "test/data/gene-GO.json",
121
177
  "test/data/goa_uniprot",
@@ -17,4 +17,9 @@ Feature: Indexing Cufflinks GTF features
17
17
  Scenario: extract multiple features from a GTF
18
18
  Given the file "transcripts.gtf" from quantification analysis
19
19
  And a range from "2" to "11"
20
- Then I want to obtain a bed file for each position in the range
20
+ Then I want to obtain a bed file for each position in the range
21
+
22
+
23
+ Scenario: extract a feature from a GTF using transcript name
24
+ Given the file "transcripts.gtf" from quantification analysis
25
+ Then I want to extract feature named "ENST00000408219"
@@ -0,0 +1,17 @@
1
+ Feature: build a project hierarchy from an hand made analysis
2
+ In order to organize and automate many processes for an NGS dataset
3
+ analyzed by hand from other bioinformaticians
4
+ As a bioinformatician
5
+ I want to have a querable data structure which represents most of the pre cumputed data
6
+
7
+ Scenario: Explore and Build data structure
8
+ Given A path with many projects at the first level
9
+ And others at second level (inside others directories)
10
+ When I build the projects structure
11
+ Then I sould get all the projects organized in the same structure.
12
+
13
+
14
+ # Scenario: Merge multiple data structure to find common datasets
15
+ # Given
16
+ # When
17
+ # Then
@@ -4,7 +4,14 @@ Given /^a range from "(.*?)" to "(.*?)"$/ do |start, stop|
4
4
  end
5
5
 
6
6
  Then /^I want to build its index$/ do
7
- @gtf.build_idx.should == {:transcripts=>[801, 604, 425, 425, 857, 610, 610, 607, 607, 616, 622, 809, 1003, 821, 429, 412, 1023, 610, 607, 1003, 616, 607, 404, 404, 2973, 3219, 3420, 3219, 813, 1213, 1213, 1231, 613, 408, 408, 814, 1014, 626, 814, 408, 436, 610, 662, 1016, 816, 613, 2227, 616, 616, 616, 420, 643, 7588, 813, 814, 1014, 814, 614, 614, 3018, 2013, 814, 613, 865, 433, 433, 433, 643, 619, 3454, 3454, 2043, 1237, 628, 1225, 1023, 1243, 1023, 1225, 410, 410, 1662, 1238, 1004, 1023, 2642, 2237, 2439, 2033, 2439, 2236, 834, 2280, 2642, 821, 1832, 2236, 2439, 2236, 2439, 2033, 1629, 1225, 1427, 1225, 1225, 821, 1427, 412, 412, 611, 412, 412, 412, 414, 1678, 1629, 1630, 822, 620, 1225, 1267, 821, 426, 821, 626, 1831, 821, 629, 412, 418, 1831, 1629, 1670, 1427, 1694, 1427, 1831, 1630, 1831, 620, 1629, 1629, 1225, 1023, 1427, 1427, 1427, 822, 1225, 1225, 822, 620, 818, 817, 617, 4063, 3860, 3657, 3300, 1023], :exons=>[]}
7
+ @gtf.build_idx.should == {:transcripts=>[801, 604, 425, 425, 857, 610, 610, 607, 607, 616, 622, 809, 1003, 821, 429, 412, 1023, 610, 607, 1003, 616, 607, 404,
8
+ 404, 2973, 3219, 3420, 3219, 813, 1213, 1213, 1231, 613, 408, 408, 814, 1014, 626, 814, 408, 436, 610, 662, 1016, 816, 613, 2227, 616, 616, 616, 420, 643, 7588,
9
+ 813, 814, 1014, 814, 614, 614, 3018, 2013, 814, 613, 865, 433, 433, 433, 643, 619, 3454, 3454, 2043, 1237, 628, 1225, 1023, 1243, 1023, 1225, 410, 410, 1662,
10
+ 1238, 1004, 1023, 2642, 2237, 2439, 2033, 2439, 2236, 834, 2280, 2642, 821, 1832, 2236, 2439, 2236, 2439, 2033, 1629, 1225, 1427, 1225, 1225, 821, 1427, 412,
11
+ 412, 611, 412, 412, 412, 414, 1678, 1629, 1630, 822, 620, 1225, 1267, 821, 426, 821, 626, 1831, 821, 629, 412, 418, 1831, 1629, 1670, 1427, 1694, 1427, 1831,
12
+ 1630, 1831, 620, 1629, 1629, 1225, 1023, 1427, 1427, 1427, 822, 1225, 1225, 822, 620, 818, 817, 617, 4063, 3860, 3657, 3300, 1023],
13
+ :names=>{"ENST00000417324"=>1, "ENST00000461467"=>2, "ENST00000492842"=>3, "ENST00000335137"=>4, "ENST00000417636"=>5, "ENST00000423796"=>6, "ENST00000450696"=>7, "TCONS_00000124"=>8, "TCONS_00000125"=>9, "TCONS_00000796"=>10, "TCONS_00001368"=>11, "ENST00000446136"=>12, "TCONS_00000444"=>13, "ENST00000427857"=>14, "ENST00000408219"=>15, "ENST00000415481"=>16, "ENST00000417705"=>17, "ENST00000432961"=>18, "TCONS_00002277"=>19, "TCONS_00000073"=>20, "TCONS_00000032"=>21, "TCONS_00000134"=>22, "CUFF.8.1"=>23, "CUFF.9.1"=>24, "CUFF.10.1"=>25, "ENST00000379407"=>26, "ENST00000379410"=>27, "ENST00000379409"=>28, "ENST00000480267"=>29, "ENST00000491024"=>30, "ENST00000433179"=>31, "ENST00000341290"=>32, "ENST00000479361"=>33, "CUFF.12.1"=>34, "CUFF.13.1"=>35, "ENST00000428771"=>36, "ENST00000304952"=>37, "ENST00000481869"=>38, "ENST00000484667"=>39, "CUFF.14.5"=>40, "ENST00000423619"=>41, "TCONS_00000447"=>42, "ENST00000379389"=>43, "ENST00000427998"=>44, "ENST00000394517"=>45, "ENST00000442292"=>46, "ENST00000412397"=>47, "ENST00000456409"=>48, "ENST00000433695"=>49, "ENST00000451054"=>50, "CUFF.16.8"=>51, "ENST00000453464"=>52, "ENST00000379370"=>53, "ENST00000477585"=>54, "ENST00000469403"=>55, "ENST00000479707"=>56, "ENST00000466223"=>57, "ENST00000478677"=>58, "ENST00000492947"=>59, "ENST00000379364"=>60, "ENST00000419249"=>61, "ENST00000461111"=>62, "ENST00000418300"=>63, "ENST00000416774"=>64, "ENST00000384997"=>65, "ENST00000384875"=>66, "ENST00000362106"=>67, "ENST00000379317"=>68, "ENST00000506177"=>69, "ENST00000379290"=>70, "ENST00000379289"=>71, "ENST00000379288"=>72, "ENST00000460998"=>73, "ENST00000514695"=>74, "ENST00000486379"=>75, "ENST00000328596"=>76, "ENST00000379268"=>77, "ENST00000486728"=>78, "ENST00000379265"=>79, "CUFF.19.5"=>80, "CUFF.19.6"=>81, "ENST00000379236"=>82, "ENST00000497869"=>83, "CUFF.20.3"=>84, "ENST00000453580"=>85, "ENST00000379339"=>86, "ENST00000294576"=>87, "ENST00000448924"=>88, "ENST00000465822"=>89, "ENST00000379325"=>90, "ENST00000421241"=>91, "ENST00000487177"=>92, "ENST00000477196"=>93, "ENST00000467751"=>94, "ENST00000464905"=>95, "ENST00000379320"=>96, "ENST00000379319"=>97, "ENST00000434641"=>98, "ENST00000482816"=>99, "ENST00000457999"=>100, "ENST00000437760"=>101, "ENST00000462097"=>102, "ENST00000473600"=>103, "ENST00000475119"=>104, "ENST00000442117"=>105, "ENST00000427787"=>106, "ENST00000472741"=>107, "ENST00000480643"=>108, "CUFF.27.1"=>109, "CUFF.28.1"=>110, "CUFF.30.1"=>111, "CUFF.31.1"=>112, "CUFF.32.1"=>113, "CUFF.33.1"=>114, "CUFF.21.1"=>115, "ENST00000360001"=>116, "ENST00000465727"=>117, "ENST00000263741"=>118, "ENST00000494748"=>119, "ENST00000478938"=>120, "ENST00000403997"=>121, "ENST00000545427"=>122, "ENST00000459994"=>123, "ENST00000379198"=>124, "ENST00000462849"=>125, "ENST00000478606"=>126, "ENST00000330388"=>127, "ENST00000468365"=>128, "ENST00000486627"=>129, "CUFF.25.1"=>130, "ENST00000565563"=>131, "ENST00000450390"=>132, "ENST00000347370"=>133, "ENST00000349431"=>134, "ENST00000339385"=>135, "ENST00000348298"=>136, "ENST00000400929"=>137, "ENST00000464036"=>138, "ENST00000360466"=>139, "ENST00000400930"=>140, "ENST00000467339"=>141, "ENST00000473215"=>142, "ENST00000435198"=>143, "ENST00000509720"=>144, "ENST00000491779"=>145, "ENST00000466752"=>146, "ENST00000503294"=>147, "ENST00000477894"=>148, "ENST00000471154"=>149, "ENST00000422076"=>150, "ENST00000502382"=>151, "ENST00000461142"=>152, "ENST00000488418"=>153, "TCONS_00000799"=>154, "TCONS_00000135"=>155, "TCONS_00000136"=>156, "ENST00000379110"=>157, "ENST00000379116"=>158, "ENST00000379101"=>159, "ENST00000338555"=>160, "ENST00000470022"=>161},
14
+ :exons=>[]}
8
15
  end
9
16
 
10
17
  Then /^save it as "(.*?)"$/ do |gtf_index_filename|
@@ -50,4 +57,14 @@ Then /^I want to obtain a bed file for each position in the range$/ do
50
57
  "CUFF.2-ENST00000423796.bed\n", "CUFF.2-ENST00000450696.bed\n",
51
58
  "CUFF.2-TCONS_00000124.bed\n", "CUFF.2-TCONS_00000125.bed\n",
52
59
  "CUFF.3-TCONS_00000796.bed\n", "XLOC_000669-TCONS_00001368.bed\n"]
53
- end
60
+ end
61
+
62
+
63
+ Then /^I want to extract feature named "(.*?)"$/ do |transcript_name|
64
+ enst00000408219 = <<DATA
65
+ 1 Cufflinks transcript 808847 808957 1 - . gene_id "ENSG00000221146"; transcript_id "ENST00000408219"; FPKM "0.0000000000"; frac "0.000000"; conf_lo "0.000000"; conf_hi "0.000000"; cov "0.000000"; full_read_support "no";
66
+ 1 Cufflinks exon 808847 808957 1 - . gene_id "ENSG00000221146"; transcript_id "ENST00000408219"; exon_number "1"; FPKM "0.0000000000"; frac "0.000000"; conf_lo "0.000000"; conf_hi "0.000000"; cov "0.000000";
67
+ DATA
68
+
69
+ @gtf[transcript_name].to_s.should == enst00000408219
70
+ end
@@ -1,4 +1,4 @@
1
- # TODO:
1
+ # TODO:
2
2
  # * when select or first each trasncript create and index. Be aware to return/crete the right index for the requested filtering.
3
3
  # issue: filtering is applied but the index is created and saved for the original source file.
4
4
 
@@ -139,10 +139,10 @@ module Bio
139
139
  fn = filename || "#{@fh.path}.gtf"
140
140
  File.open(fn, 'w') do |f|
141
141
  each_transcript do |transcript|
142
- f.write transcript
142
+ f.write transcript
143
143
  end
144
144
  end
145
- # dump_idx("#{fn}.idx") #BUGGY this saves the old index in case the user called a select
145
+ # dump_idx("#{fn}.idx") #BUGGY this saves the old index in case the user called a select
146
146
  end #save
147
147
 
148
148
  def count
@@ -156,10 +156,16 @@ module Bio
156
156
  def build_idx
157
157
  idx = Hash.new {|h,k| h[k]=[]}
158
158
  idx[:transcripts]
159
+ idx[:names]={}
159
160
  idx[:exons]
160
161
  each_transcript do |t, f_lno|
161
162
  # t_idx=(f_lno-t.exons.size-2)
162
163
  idx[:transcripts] << t.byte_length
164
+ idx[:names][t.attributes[:transcript_id]] = idx[:transcripts].length
165
+ if t.attributes[:transcript_id]=="ENST00000408219"
166
+ puts t.attributes[:transcript_id]
167
+ puts idx[:transcripts].length
168
+ end
163
169
  # eidx_b = t_idx +1
164
170
  # t.exons.each_index do |ei|
165
171
  # idx[t_idx] << eidx_b + ei
@@ -197,27 +203,35 @@ module Bio
197
203
  end
198
204
 
199
205
  # start from 1
206
+ # n can be a number or a name for a transcript
200
207
  def read_transcript(n=1)
201
208
  load_idx unless defined?(@idx)
202
- if n==1
203
- source.seek(0)
204
- source.read(@idx[:transcripts][0])
205
- elsif n==2
206
- source.seek(@idx[:transcripts][0])
207
- source.read(@idx[:transcripts][n-1])
209
+ if n.to_s.is_numeric?
210
+ n = n.to_i
211
+ if n==1
212
+ source.seek(0)
213
+ source.read(@idx[:transcripts][0])
214
+ elsif n==2
215
+ source.seek(@idx[:transcripts][0])
216
+ source.read(@idx[:transcripts][n-1])
217
+ else
218
+ source.seek(@idx[:transcripts][0..n-2].sum)
219
+ source.read(@idx[:transcripts][n-1])
220
+ end
208
221
  else
209
- source.seek(@idx[:transcripts][0..n-2].sum)
210
- source.read(@idx[:transcripts][n-1])
222
+ read_transcript(@idx[:names][n])
211
223
  end
212
224
  end
213
225
 
214
226
  def get_transcript(n=1)
215
- r=read_transcript(n)
216
- s=r.split("\n").first
217
- e=r.split("\n")[1..-1]
218
- x=Bio::Ngs::Cufflinks::Transcript.new
219
- x.tra= s+"\n"
220
- x.exons=e.map{|ei| ei+"\n"}
227
+ x=nil
228
+ if r=read_transcript(n)
229
+ s=r.split("\n").first
230
+ e=r.split("\n")[1..-1]
231
+ x=Bio::Ngs::Cufflinks::Transcript.new
232
+ x.tra= s+"\n"
233
+ x.exons=e.map{|ei| ei+"\n"}
234
+ end
221
235
  x
222
236
  end
223
237
 
@@ -229,6 +243,18 @@ module Bio
229
243
  end #Ngs
230
244
  end #Bio
231
245
 
246
+
247
+ class String
248
+ # from http://railsforum.com/viewtopic.php?id=19081
249
+ def is_numeric?
250
+ Float(self)
251
+ true
252
+ rescue
253
+ false
254
+ end
255
+ end
256
+
257
+
232
258
  # class Array
233
259
  # def to_ranges
234
260
  # sorted=self.sort
@@ -40,8 +40,8 @@ module Bio
40
40
  projects = Projects.new("Illumina", path)
41
41
 
42
42
  Dir.chdir(path) do
43
- Dir.glob(["Project_*","Undetermined_indices"]).each do |project_dir|
44
- project = Project.new(project_dir.sub(/Project_/,""),project_dir)
43
+ Dir.glob(["**/Project_*","**/Undetermined_indices"]).each do |project_dir|
44
+ project = Project.new(project_dir.basename.sub(/Project_/,""),project_dir)
45
45
  projects.add(project)
46
46
  Dir.chdir(project_dir) do
47
47
  Dir.glob("Sample*").each do |sample_dir|
@@ -64,14 +64,14 @@ class Cufflinks < Thor
64
64
  end
65
65
  end
66
66
 
67
- desc "tra_at_idx GTF IDX", "Extract transcripts from Cufflinks' GTF at specific location, print filename in output"
67
+ desc "tra_at_idx GTF IDX", "Extract transcript(s) from Cufflinks' GTF at a specific location or givin the transcript name, print filename in output"
68
68
  method_option :split, :type => :boolean, :aliases => '-j', :desc => "split each transcript in a file"
69
69
  method_option :extract, :type => :numeric, :aliases => '-e', :desc => "extract the n-th transcript"
70
70
  method_option :ucsc, :type => :boolean, :aliases => '-u', :desc => "use chr as UCSC a prefix for chromosomes, otherwise uses ENSEMBL notation without chr"
71
71
  method_option :exons, :type => :boolean, :aliases => '-x', :desc => "proved in output only exons without transcripts", :default => true
72
72
  def tra_at_idx(gtf, idx)
73
73
  data = Bio::Ngs::Cufflinks::Gtf.new gtf
74
- t=data[idx.to_i]
74
+ t=data[idx]
75
75
  if options[:ucsc]
76
76
  t.set_ucsc_notation
77
77
  end
@@ -0,0 +1,58 @@
1
+ base_dir: /mnt/iscsi/ngs
2
+ projects:
3
+ Naive:
4
+ Samples:
5
+ SQ_0080:
6
+ location: &id001
7
+ type: file
8
+ path: 110908_H125_0119_AB01W2ABXX_Data/Project_Naive_T0/Sample_SQ_0080/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
9
+ format: bam
10
+
11
+
12
+ Th1: 2
13
+ Th17: 3
14
+ Th2: 4
15
+ Treg: 5
16
+ Tfh: 6
17
+
18
+
19
+
20
+ - 110908_H125_0119_AB01W2ABXX_Data/Project_Naive_T0/Sample_SQ_0080/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
21
+ - 110908_H125_0119_AB01W2ABXX_Data/Project_Naive_T0/Sample_SQ_0081/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
22
+ - 110908_H125_0119_AB01W2ABXX_Data/Project_Naive_T0/Sample_SQ_0082/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
23
+ - 110714_H125_0102_Ab048uabxx_Data/Project_Naive/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
24
+ Th1:
25
+ BAMS:
26
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th1/Sample_SQ_0007/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
27
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th1/Sample_SQ_0046/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
28
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th1/Sample_SQ_0047/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
29
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th1/Sample_SQ_0048/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
30
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th1/Sample_SQ_0050/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
31
+ Th17:
32
+ BAMS:
33
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th17/Sample_SQ_0011/filtered/TopHat_Alignment_PE_genomeV66_insert200/accepted_hits.bam
34
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th17/Sample_SQ_0051/filtered/TopHat_Alignment_PE_genomeV66_insert200/accepted_hits.bam
35
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th17/Sample_SQ_0052/filtered/TopHat_Alignment_PE_genomeV66_insert200/accepted_hits.bam
36
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th17/Sample_SQ_0053/filtered/TopHat_Alignment_PE_genomeV66_insert200/accepted_hits.bam
37
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th17/Sample_SQ_0055/filtered/TopHat_Alignment_PE_genomeV66_insert200/accepted_hits.bam
38
+ Th2:
39
+ BAMS:
40
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th2/Sample_SQ_0014/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
41
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th2/Sample_SQ_0015/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
42
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th2/Sample_SQ_0056/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
43
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th2/Sample_SQ_0058/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
44
+ - 111013_H125_0121_AC076LACXX_Data/Project_Th2/Sample_SQ_0059/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
45
+ Treg:
46
+ BAMS:
47
+ - 111013_H125_0121_AC076LACXX_Data/Project_Treg/Sample_SQ_0021/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
48
+ - 111013_H125_0121_AC076LACXX_Data/Project_Treg/Sample_SQ_0022/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
49
+ - 111013_H125_0121_AC076LACXX_Data/Project_Treg/Sample_SQ_0023/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
50
+ - 111013_H125_0121_AC076LACXX_Data/Project_Treg/Sample_SQ_0065/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
51
+ - 111013_H125_0121_AC076LACXX_Data/Project_Treg/Sample_SQ_0067/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
52
+ Tfh
53
+ BAMS:
54
+ - 111013_H125_0121_AC076LACXX_Data/Project_Tfh_Adenoide/Sample_SQ_0074/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
55
+ - 111013_H125_0121_AC076LACXX_Data/Project_Tfh_Adenoide/Sample_SQ_0075/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
56
+ - 111013_H125_0121_AC076LACXX_Data/Project_Tfh_Adenoide/Sample_SQ_0076/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
57
+ - 111013_H125_0121_AC076LACXX_Data/Project_Tfh_Adenoide/Sample_SQ_0078/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
58
+ - 111013_H125_0121_AC076LACXX_Data/Project_Tfh_Adenoide/Sample_SQ_0079/filtered/TopHat_Alignment_PE_genomeV66/accepted_hits.bam
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bio-ngs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.7.alpha.02
4
+ version: 0.4.7.alpha.03
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-05-25 00:00:00.000000000 Z
13
+ date: 2012-05-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bio
17
- requirement: &2152729020 !ruby/object:Gem::Requirement
17
+ requirement: &2162360040 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 1.4.2
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2152729020
25
+ version_requirements: *2162360040
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bio-samtools
28
- requirement: &2152728500 !ruby/object:Gem::Requirement
28
+ requirement: &2162358700 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 0.3.2
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2152728500
36
+ version_requirements: *2162358700
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: thor
39
- requirement: &2152727960 !ruby/object:Gem::Requirement
39
+ requirement: &2162357760 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - =
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 0.14.6
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2152727960
47
+ version_requirements: *2162357760
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rubyvis
50
- requirement: &2152727380 !ruby/object:Gem::Requirement
50
+ requirement: &2162372800 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 0.5.0
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *2152727380
58
+ version_requirements: *2162372800
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: daemons
61
- requirement: &2152726800 !ruby/object:Gem::Requirement
61
+ requirement: &2162369680 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 1.1.0
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *2152726800
69
+ version_requirements: *2162369680
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: ruby-ensembl-api
72
- requirement: &2152726260 !ruby/object:Gem::Requirement
72
+ requirement: &2162367460 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: 1.0.1
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *2152726260
80
+ version_requirements: *2162367460
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: activerecord
83
- requirement: &2152725720 !ruby/object:Gem::Requirement
83
+ requirement: &2162365420 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: 3.0.5
89
89
  type: :runtime
90
90
  prerelease: false
91
- version_requirements: *2152725720
91
+ version_requirements: *2162365420
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: sqlite3
94
- requirement: &2152725140 !ruby/object:Gem::Requirement
94
+ requirement: &2162380460 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: 1.3.3
100
100
  type: :runtime
101
101
  prerelease: false
102
- version_requirements: *2152725140
102
+ version_requirements: *2162380460
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: bio-blastxmlparser
105
- requirement: &2152740860 !ruby/object:Gem::Requirement
105
+ requirement: &2162378780 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ! '>='
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: '0'
111
111
  type: :runtime
112
112
  prerelease: false
113
- version_requirements: *2152740860
113
+ version_requirements: *2162378780
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: progressbar
116
- requirement: &2152740240 !ruby/object:Gem::Requirement
116
+ requirement: &2162377060 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ! '>='
@@ -121,10 +121,10 @@ dependencies:
121
121
  version: 0.9.0
122
122
  type: :runtime
123
123
  prerelease: false
124
- version_requirements: *2152740240
124
+ version_requirements: *2162377060
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rake
127
- requirement: &2152739680 !ruby/object:Gem::Requirement
127
+ requirement: &2162375820 !ruby/object:Gem::Requirement
128
128
  none: false
129
129
  requirements:
130
130
  - - =
@@ -132,10 +132,10 @@ dependencies:
132
132
  version: 0.9.2.2
133
133
  type: :runtime
134
134
  prerelease: false
135
- version_requirements: *2152739680
135
+ version_requirements: *2162375820
136
136
  - !ruby/object:Gem::Dependency
137
137
  name: json
138
- requirement: &2152739120 !ruby/object:Gem::Requirement
138
+ requirement: &2162374160 !ruby/object:Gem::Requirement
139
139
  none: false
140
140
  requirements:
141
141
  - - ! '>='
@@ -143,10 +143,10 @@ dependencies:
143
143
  version: '0'
144
144
  type: :runtime
145
145
  prerelease: false
146
- version_requirements: *2152739120
146
+ version_requirements: *2162374160
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: parallel
149
- requirement: &2152738540 !ruby/object:Gem::Requirement
149
+ requirement: &2162389180 !ruby/object:Gem::Requirement
150
150
  none: false
151
151
  requirements:
152
152
  - - ! '>='
@@ -154,10 +154,10 @@ dependencies:
154
154
  version: '0'
155
155
  type: :runtime
156
156
  prerelease: false
157
- version_requirements: *2152738540
157
+ version_requirements: *2162389180
158
158
  - !ruby/object:Gem::Dependency
159
159
  name: shoulda
160
- requirement: &2152738020 !ruby/object:Gem::Requirement
160
+ requirement: &2162387820 !ruby/object:Gem::Requirement
161
161
  none: false
162
162
  requirements:
163
163
  - - ! '>='
@@ -165,10 +165,10 @@ dependencies:
165
165
  version: '0'
166
166
  type: :development
167
167
  prerelease: false
168
- version_requirements: *2152738020
168
+ version_requirements: *2162387820
169
169
  - !ruby/object:Gem::Dependency
170
170
  name: bundler
171
- requirement: &2152737500 !ruby/object:Gem::Requirement
171
+ requirement: &2162385760 !ruby/object:Gem::Requirement
172
172
  none: false
173
173
  requirements:
174
174
  - - ~>
@@ -176,10 +176,10 @@ dependencies:
176
176
  version: 1.1.0
177
177
  type: :development
178
178
  prerelease: false
179
- version_requirements: *2152737500
179
+ version_requirements: *2162385760
180
180
  - !ruby/object:Gem::Dependency
181
181
  name: jeweler
182
- requirement: &2152736960 !ruby/object:Gem::Requirement
182
+ requirement: &2162384960 !ruby/object:Gem::Requirement
183
183
  none: false
184
184
  requirements:
185
185
  - - ~>
@@ -187,10 +187,10 @@ dependencies:
187
187
  version: 1.8.3
188
188
  type: :development
189
189
  prerelease: false
190
- version_requirements: *2152736960
190
+ version_requirements: *2162384960
191
191
  - !ruby/object:Gem::Dependency
192
192
  name: rcov
193
- requirement: &2152736400 !ruby/object:Gem::Requirement
193
+ requirement: &2162383380 !ruby/object:Gem::Requirement
194
194
  none: false
195
195
  requirements:
196
196
  - - ~>
@@ -198,10 +198,10 @@ dependencies:
198
198
  version: 0.9.11
199
199
  type: :development
200
200
  prerelease: false
201
- version_requirements: *2152736400
201
+ version_requirements: *2162383380
202
202
  - !ruby/object:Gem::Dependency
203
203
  name: bio
204
- requirement: &2152735800 !ruby/object:Gem::Requirement
204
+ requirement: &2162381840 !ruby/object:Gem::Requirement
205
205
  none: false
206
206
  requirements:
207
207
  - - ! '>='
@@ -209,10 +209,10 @@ dependencies:
209
209
  version: 1.4.2
210
210
  type: :development
211
211
  prerelease: false
212
- version_requirements: *2152735800
212
+ version_requirements: *2162381840
213
213
  - !ruby/object:Gem::Dependency
214
214
  name: thor
215
- requirement: &2152735180 !ruby/object:Gem::Requirement
215
+ requirement: &2162397200 !ruby/object:Gem::Requirement
216
216
  none: false
217
217
  requirements:
218
218
  - - =
@@ -220,10 +220,10 @@ dependencies:
220
220
  version: 0.14.6
221
221
  type: :development
222
222
  prerelease: false
223
- version_requirements: *2152735180
223
+ version_requirements: *2162397200
224
224
  - !ruby/object:Gem::Dependency
225
225
  name: ffi
226
- requirement: &2152734620 !ruby/object:Gem::Requirement
226
+ requirement: &2162394020 !ruby/object:Gem::Requirement
227
227
  none: false
228
228
  requirements:
229
229
  - - ! '>='
@@ -231,10 +231,10 @@ dependencies:
231
231
  version: 1.0.6
232
232
  type: :development
233
233
  prerelease: false
234
- version_requirements: *2152734620
234
+ version_requirements: *2162394020
235
235
  - !ruby/object:Gem::Dependency
236
236
  name: rubyvis
237
- requirement: &2152734120 !ruby/object:Gem::Requirement
237
+ requirement: &2162392380 !ruby/object:Gem::Requirement
238
238
  none: false
239
239
  requirements:
240
240
  - - ! '>='
@@ -242,10 +242,10 @@ dependencies:
242
242
  version: 0.5.0
243
243
  type: :development
244
244
  prerelease: false
245
- version_requirements: *2152734120
245
+ version_requirements: *2162392380
246
246
  - !ruby/object:Gem::Dependency
247
247
  name: rspec
248
- requirement: &2152733600 !ruby/object:Gem::Requirement
248
+ requirement: &2162391700 !ruby/object:Gem::Requirement
249
249
  none: false
250
250
  requirements:
251
251
  - - ! '>='
@@ -253,10 +253,10 @@ dependencies:
253
253
  version: 2.5.0
254
254
  type: :development
255
255
  prerelease: false
256
- version_requirements: *2152733600
256
+ version_requirements: *2162391700
257
257
  - !ruby/object:Gem::Dependency
258
258
  name: daemons
259
- requirement: &2152775800 !ruby/object:Gem::Requirement
259
+ requirement: &2162390160 !ruby/object:Gem::Requirement
260
260
  none: false
261
261
  requirements:
262
262
  - - ! '>='
@@ -264,10 +264,10 @@ dependencies:
264
264
  version: 1.1.0
265
265
  type: :development
266
266
  prerelease: false
267
- version_requirements: *2152775800
267
+ version_requirements: *2162390160
268
268
  - !ruby/object:Gem::Dependency
269
269
  name: bio-samtools
270
- requirement: &2152775280 !ruby/object:Gem::Requirement
270
+ requirement: &2162405360 !ruby/object:Gem::Requirement
271
271
  none: false
272
272
  requirements:
273
273
  - - ! '>='
@@ -275,10 +275,10 @@ dependencies:
275
275
  version: 0.3.2
276
276
  type: :development
277
277
  prerelease: false
278
- version_requirements: *2152775280
278
+ version_requirements: *2162405360
279
279
  - !ruby/object:Gem::Dependency
280
280
  name: ruby-ensembl-api
281
- requirement: &2152774760 !ruby/object:Gem::Requirement
281
+ requirement: &2162404740 !ruby/object:Gem::Requirement
282
282
  none: false
283
283
  requirements:
284
284
  - - ! '>='
@@ -286,10 +286,10 @@ dependencies:
286
286
  version: 1.0.1
287
287
  type: :development
288
288
  prerelease: false
289
- version_requirements: *2152774760
289
+ version_requirements: *2162404740
290
290
  - !ruby/object:Gem::Dependency
291
291
  name: activerecord
292
- requirement: &2152774240 !ruby/object:Gem::Requirement
292
+ requirement: &2162404160 !ruby/object:Gem::Requirement
293
293
  none: false
294
294
  requirements:
295
295
  - - ! '>='
@@ -297,10 +297,10 @@ dependencies:
297
297
  version: 3.0.5
298
298
  type: :development
299
299
  prerelease: false
300
- version_requirements: *2152774240
300
+ version_requirements: *2162404160
301
301
  - !ruby/object:Gem::Dependency
302
302
  name: sqlite3
303
- requirement: &2152773740 !ruby/object:Gem::Requirement
303
+ requirement: &2162403240 !ruby/object:Gem::Requirement
304
304
  none: false
305
305
  requirements:
306
306
  - - ! '>='
@@ -308,10 +308,10 @@ dependencies:
308
308
  version: 1.3.3
309
309
  type: :development
310
310
  prerelease: false
311
- version_requirements: *2152773740
311
+ version_requirements: *2162403240
312
312
  - !ruby/object:Gem::Dependency
313
313
  name: bio-blastxmlparser
314
- requirement: &2152773180 !ruby/object:Gem::Requirement
314
+ requirement: &2162401800 !ruby/object:Gem::Requirement
315
315
  none: false
316
316
  requirements:
317
317
  - - ! '>='
@@ -319,10 +319,10 @@ dependencies:
319
319
  version: '0'
320
320
  type: :development
321
321
  prerelease: false
322
- version_requirements: *2152773180
322
+ version_requirements: *2162401800
323
323
  - !ruby/object:Gem::Dependency
324
324
  name: progressbar
325
- requirement: &2152772640 !ruby/object:Gem::Requirement
325
+ requirement: &2162399920 !ruby/object:Gem::Requirement
326
326
  none: false
327
327
  requirements:
328
328
  - - ! '>='
@@ -330,10 +330,10 @@ dependencies:
330
330
  version: 0.9.0
331
331
  type: :development
332
332
  prerelease: false
333
- version_requirements: *2152772640
333
+ version_requirements: *2162399920
334
334
  - !ruby/object:Gem::Dependency
335
335
  name: json
336
- requirement: &2152772040 !ruby/object:Gem::Requirement
336
+ requirement: &2162413940 !ruby/object:Gem::Requirement
337
337
  none: false
338
338
  requirements:
339
339
  - - ! '>='
@@ -341,10 +341,10 @@ dependencies:
341
341
  version: '0'
342
342
  type: :development
343
343
  prerelease: false
344
- version_requirements: *2152772040
344
+ version_requirements: *2162413940
345
345
  - !ruby/object:Gem::Dependency
346
346
  name: rake
347
- requirement: &2152770800 !ruby/object:Gem::Requirement
347
+ requirement: &2162412560 !ruby/object:Gem::Requirement
348
348
  none: false
349
349
  requirements:
350
350
  - - =
@@ -352,10 +352,10 @@ dependencies:
352
352
  version: 0.9.2.2
353
353
  type: :development
354
354
  prerelease: false
355
- version_requirements: *2152770800
355
+ version_requirements: *2162412560
356
356
  - !ruby/object:Gem::Dependency
357
357
  name: parallel
358
- requirement: &2152769720 !ruby/object:Gem::Requirement
358
+ requirement: &2162411560 !ruby/object:Gem::Requirement
359
359
  none: false
360
360
  requirements:
361
361
  - - ! '>='
@@ -363,7 +363,7 @@ dependencies:
363
363
  version: '0'
364
364
  type: :development
365
365
  prerelease: false
366
- version_requirements: *2152769720
366
+ version_requirements: *2162411560
367
367
  description: bio-ngs provides a framework for handling NGS data with BioRuby
368
368
  email: francesco.strozzi@gmail.com
369
369
  executables:
@@ -386,6 +386,7 @@ files:
386
386
  - ext/mkrf_conf.rb
387
387
  - features/cufflinks_gtf_parser.feature
388
388
  - features/cufflinks_gtf_parser_indexing.feature
389
+ - features/illumina_project_rebuild.feature
389
390
  - features/step_definitions/cufflinks_gtf.rb
390
391
  - features/step_definitions/cufflinks_gtf_parser_indexing.rb
391
392
  - features/support/env.rb
@@ -470,7 +471,62 @@ files:
470
471
  - spec/spec_helper.rb
471
472
  - spec/tophat_spec.rb
472
473
  - spec/utils_spec.rb
474
+ - test/conf/projects.yaml
473
475
  - test/conf/test_db.yml
476
+ - test/data/Project_Cow/Sample_SQ_0007/SQ_0007_CGATGT_L003_R1_001.fastq.gz
477
+ - test/data/Project_Cow/Sample_SQ_0007/SQ_0007_CGATGT_L003_R1_002.fastq.gz
478
+ - test/data/Project_Cow/Sample_SQ_0007/SQ_0007_CGATGT_L003_R2_001.fastq.gz
479
+ - test/data/Project_Cow/Sample_SQ_0007/SQ_0007_CGATGT_L003_R2_002.fastq.gz
480
+ - test/data/Project_Cow/Sample_SQ_0007/filtered/SQ_0007_CGATGT_L003_R1_001.fastq.gz
481
+ - test/data/Project_Cow/Sample_SQ_0007/filtered/SQ_0007_CGATGT_L003_R1_002.fastq.gz
482
+ - test/data/Project_Cow/Sample_SQ_0007/filtered/SQ_0007_CGATGT_L003_R2_001.fastq.gz
483
+ - test/data/Project_Cow/Sample_SQ_0007/filtered/SQ_0007_CGATGT_L003_R2_002.fastq.gz
484
+ - test/data/Project_Cow/Sample_SQ_0007/trimmed/SQ_0007_CGATGT_L003_R1_TRIMMED.fastq.gz
485
+ - test/data/Project_Cow/Sample_SQ_0007/trimmed/SQ_0007_CGATGT_L003_R2_TRIMMED.fastq.gz
486
+ - test/data/Project_Cow/Sample_SQ_0008/SQ_0008_CGATGT_L003_R1_001.fastq.gz
487
+ - test/data/Project_Cow/Sample_SQ_0008/SQ_0008_CGATGT_L003_R1_002.fastq.gz
488
+ - test/data/Project_Cow/Sample_SQ_0008/SQ_0008_CGATGT_L003_R2_001.fastq.gz
489
+ - test/data/Project_Cow/Sample_SQ_0008/SQ_0008_CGATGT_L003_R2_002.fastq.gz
490
+ - test/data/Project_Cow/Sample_SQ_0009/SQ_0009_CGATGT_L003_R1_001.fastq.gz
491
+ - test/data/Project_Cow/Sample_SQ_0009/SQ_0009_CGATGT_L003_R1_002.fastq.gz
492
+ - test/data/Project_Cow/Sample_SQ_0009/SQ_0009_CGATGT_L003_R2_001.fastq.gz
493
+ - test/data/Project_Cow/Sample_SQ_0009/SQ_0009_CGATGT_L003_R2_002.fastq.gz
494
+ - test/data/Project_Dog/Sample_SQ_0004/SQ_0004_CGATGT_L003_R1_001.fastq.gz
495
+ - test/data/Project_Dog/Sample_SQ_0004/SQ_0004_CGATGT_L003_R1_002.fastq.gz
496
+ - test/data/Project_Dog/Sample_SQ_0004/SQ_0004_CGATGT_L003_R2_001.fastq.gz
497
+ - test/data/Project_Dog/Sample_SQ_0004/SQ_0004_CGATGT_L003_R2_002.fastq.gz
498
+ - test/data/Project_Dog/Sample_SQ_0005/SQ_0005_CGATGT_L003_R1_001.fastq.gz
499
+ - test/data/Project_Dog/Sample_SQ_0005/SQ_0005_CGATGT_L003_R1_002.fastq.gz
500
+ - test/data/Project_Dog/Sample_SQ_0005/SQ_0005_CGATGT_L003_R2_001.fastq.gz
501
+ - test/data/Project_Dog/Sample_SQ_0005/SQ_0005_CGATGT_L003_R2_002.fastq.gz
502
+ - test/data/Project_Dog/Sample_SQ_0006/SQ_0006_CGATGT_L003_R1_001.fastq.gz
503
+ - test/data/Project_Dog/Sample_SQ_0006/SQ_0006_CGATGT_L003_R1_002.fastq.gz
504
+ - test/data/Project_Dog/Sample_SQ_0006/SQ_0006_CGATGT_L003_R2_001.fastq.gz
505
+ - test/data/Project_Dog/Sample_SQ_0006/SQ_0006_CGATGT_L003_R2_002.fastq.gz
506
+ - test/data/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L003_R1_001.fastq.gz
507
+ - test/data/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L003_R1_002.fastq.gz
508
+ - test/data/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L003_R2_001.fastq.gz
509
+ - test/data/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L003_R2_002.fastq.gz
510
+ - test/data/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R1_001.fastq.gz
511
+ - test/data/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R1_002.fastq.gz
512
+ - test/data/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R2_001.fastq.gz
513
+ - test/data/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R2_002.fastq.gz
514
+ - test/data/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R1_001.fastq.gz
515
+ - test/data/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R1_002.fastq.gz
516
+ - test/data/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R2_001.fastq.gz
517
+ - test/data/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R2_002.fastq.gz
518
+ - test/data/RemoteDir/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L010_R1_001.fastq.gz
519
+ - test/data/RemoteDir/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L010_R1_002.fastq.gz
520
+ - test/data/RemoteDir/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L010_R2_001.fastq.gz
521
+ - test/data/RemoteDir/Project_Human/Sample_SQ_0001/SQ_0001_CGATGT_L010_R2_002.fastq.gz
522
+ - test/data/RemoteDir/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R1_001.fastq.gz
523
+ - test/data/RemoteDir/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R1_002.fastq.gz
524
+ - test/data/RemoteDir/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R2_001.fastq.gz
525
+ - test/data/RemoteDir/Project_Human/Sample_SQ_0002/SQ_0002_CGATGT_L003_R2_002.fastq.gz
526
+ - test/data/RemoteDir/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R1_001.fastq.gz
527
+ - test/data/RemoteDir/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R1_002.fastq.gz
528
+ - test/data/RemoteDir/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R2_001.fastq.gz
529
+ - test/data/RemoteDir/Project_Human/Sample_SQ_0003/SQ_0003_CGATGT_L003_R2_002.fastq.gz
474
530
  - test/data/blastoutput.xml
475
531
  - test/data/gene-GO.json
476
532
  - test/data/goa_uniprot
@@ -497,7 +553,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
497
553
  version: '0'
498
554
  segments:
499
555
  - 0
500
- hash: -2512494530563499590
556
+ hash: -803718584135061941
501
557
  required_rubygems_version: !ruby/object:Gem::Requirement
502
558
  none: false
503
559
  requirements: