pets 0.2.3 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/README.md +79 -5
  4. data/bin/coPatReporter.rb +68 -156
  5. data/bin/comPatMondo.rb +1 -4
  6. data/bin/evidence_profiler.rb +102 -150
  7. data/bin/get_gen_features.rb +146 -0
  8. data/bin/get_network_nodes.rb +79 -132
  9. data/bin/get_sorted_profs.rb +25 -36
  10. data/bin/install_deps.rb +8 -0
  11. data/bin/paco_translator.rb +29 -72
  12. data/bin/phen2reg.rb +1 -4
  13. data/bin/profiles2phenopacket.rb +86 -0
  14. data/bin/reg2phen.rb +1 -3
  15. data/example_datasets/associations_file.txt +757 -0
  16. data/example_datasets/example_patient.txt +6 -0
  17. data/example_datasets/example_patient_hpos.txt +15 -0
  18. data/example_datasets/genes.txt +8 -0
  19. data/example_datasets/hpo2ci.txt +2798 -0
  20. data/example_datasets/hummu_congenital_full_dataset.txt +4183 -0
  21. data/example_datasets/launch.sh +20 -0
  22. data/external_code/generate_boxpot.R +51 -21
  23. data/external_code/get_clusters.R +2 -2
  24. data/external_code/install_R_dependencies.R +16 -0
  25. data/external_code/plot_heatmap.R +34 -30
  26. data/lib/pets/coPatReporterMethods.rb +172 -424
  27. data/lib/pets/cohort.rb +309 -0
  28. data/lib/pets/common_optparse.rb +30 -0
  29. data/lib/pets/constants.rb +8 -0
  30. data/lib/pets/generalMethods.rb +29 -319
  31. data/lib/pets/genomic_features.rb +240 -0
  32. data/lib/pets/io.rb +481 -0
  33. data/lib/pets/parsers/cohort_parser.rb +111 -0
  34. data/lib/pets/parsers/reference_parser.rb +39 -0
  35. data/lib/pets/version.rb +1 -1
  36. data/lib/pets.rb +9 -0
  37. data/pets.gemspec +7 -3
  38. data/templates/cluster_report.erb +25 -5
  39. data/templates/cohort_report.erb +5 -7
  40. data/templates/evidence_profile.erb +20 -4
  41. data/templates/patient_report.erb +1 -1
  42. metadata +96 -5
@@ -25,14 +25,34 @@
25
25
  <div style="width: 90%; background-color:#ecf0f1; margin: 0 auto;">
26
26
  <h1 style="text-align: center; background-color:#d6eaf8">Patient HPO profiles by cluster.</h1>
27
27
  <%= table(id: :clusters, header: true, border: 2, row_names: false, text: true,
28
- cell_align: %w( center )) do |data|
29
- data.each do |element|
28
+ cell_align: %w( center ), styled: 'dt', attrib: {'class' => 'table'}) do |data|
29
+ patient_list = []
30
+ data.each do |element| # Cluster
31
+ clID, patient_number, patient_ids, hpo_codes, hpo_names = element
32
+ # TODO: mostrar registro por paciente
30
33
  #STDERR.puts element.inspect
31
- element[2] = element[2].map{|patID| "<p>#{patID}</p>" }.join("\n")
32
- element[3] = element[3].map{|profile| "<p>#{profile.map{|hpo_code| get_hpo_link(hpo_code)}.join(', ')}</p>" }.join("\n")
33
- element[4] = element[4].map{|transl_profile| "<p>#{transl_profile.join(', ')}</p>"}.join("\n")
34
+ patient_ids.each_with_index do |patID, i|
35
+ patient_record = [clID, patient_number]
36
+ patient_record << patID
37
+ patient_record << hpo_codes[i].map{|hpo_code| get_hpo_link(hpo_code)}.join(', ')
38
+ patient_record << hpo_names[i].join(', ')
39
+ patient_list << patient_record
40
+ end
34
41
  end
42
+ data.clear
43
+ data.concat(patient_list)
35
44
  data.unshift(["Cluster ID","Patients in Cluster","Patient IDs", "HPO codes", "Phenotypes"])
36
45
  end
37
46
  %>
38
47
  </div>
48
+
49
+ <div style="width: 90%; background-color:#ecf0f1; margin: 0 auto;">
50
+ <h1 style="text-align: center; background-color:#d6eaf8"> Cluster detailed view.</h1>
51
+ <%
52
+ @hash_vars[:sim_mat4cluster].each do |clID, sim_matrix|
53
+ @hash_vars[:sim_matrix] = sim_matrix %>
54
+ <%= heatmap(id: :sim_matrix, header: true, row_names: true, title: "Cluster #{clID}" )%>
55
+ <% end
56
+ %>
57
+
58
+ </div>
@@ -161,17 +161,15 @@
161
161
  <%
162
162
  @hash_vars[:clustering_methods].each do |clust_method|
163
163
  plot = File.join(@hash_vars[:temp_folder], "#{clust_method}_heatmap.png")
164
- if File.exists?(plot) %>
164
+ if File.exist?(plot) %>
165
165
  <%= embed_img(plot, 'width="800" height="800"') %>
166
166
  <% else
167
167
  puts 'File not found or method not specified.'
168
168
  end
169
- end
170
- %>
171
- <%=
172
- plot = File.join(@hash_vars[:temp_folder],'sim_boxplot.png')
173
- if File.exists?(plot)
174
- embed_img(plot, 'width="800" height="800"')
169
+ plot = File.join(@hash_vars[:temp_folder], clust_method + '_sim_boxplot.png')
170
+ if File.exist?(plot) %>
171
+ <%= embed_img(plot, 'width="800" height="800"') %>
172
+ <% end
175
173
  end
176
174
  %>
177
175
  </div>
@@ -4,7 +4,7 @@
4
4
  <% @hash_vars[:similarity_matrixs].each do |pair, similarity_matrix| %>
5
5
  <%
6
6
  matrix_name = pair + '_sim_matrix'
7
- if pair == 'gene_HP'
7
+ if pair.include?('gene_HP')
8
8
  dict = @hash_vars[:evidences][pair][:id2lab]
9
9
  header = similarity_matrix.first
10
10
  header.map! do |item|
@@ -27,8 +27,24 @@
27
27
  <% end %>
28
28
  <%=circular_genome(id: :candidates, header: false, row_names: true, transpose: false,
29
29
  genomic_coordinates: @hash_vars[:genomic_coordinates] )%>
30
- <% if !@hash_vars[:var_ids].nil? %>
31
- <%=circular_genome(id: :var_ids, header: false, row_names: true, transpose: false,
32
- genomic_coordinates: @hash_vars[:var_coordinates] )%>
30
+ <% if !@hash_vars[:var_ids].nil?
31
+ if @hash_vars[:var_ids].length > 200 %>
32
+ <p> Too much variant records</p>
33
+ <% else %>
34
+ <%=circular_genome(id: :var_ids, header: false,
35
+ row_names: true, transpose: false,
36
+ genomic_coordinates: @hash_vars[:var_coordinates] )%>
37
+ <% end %>
33
38
  <% end %>
39
+
40
+ <h1 style="text-align: center; background-color:#d6eaf8">Candidate regions</h1>
41
+
42
+ <%= table(id: :hotspot_table) do |data|
43
+ data.each do |row|
44
+ row[1] = row[1].join(" ")
45
+ row[2] = row[2].join(",")
46
+ row[3] = row[3].join(",")
47
+ end
48
+ end
49
+ %>
34
50
  </div>
@@ -141,7 +141,7 @@
141
141
  row.each_with_index do |cell, i|
142
142
  if i == 3
143
143
  row[i] = cell.map{|h|
144
- hpo_names, rejected = hpo.translate_codes2names([h])
144
+ hpo_names, rejected = hpo.translate_names([h])
145
145
  "#{get_hpo_link(h)}: #{hpo_names.first}"
146
146
  }.join("\n<br>")
147
147
  elsif i == 4
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elena Rojano, Pedro Seoane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-09 00:00:00.000000000 Z
11
+ date: 2023-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.10.0
47
+ version: 3.11.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.10.0
54
+ version: 3.11.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: statistics2
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.1.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: NetAnalyzer
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: report_html
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +150,34 @@ dependencies:
136
150
  - - ">="
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: expcalc
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: bio-vcf
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
139
181
  - !ruby/object:Gem::Dependency
140
182
  name: parallel
141
183
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +192,34 @@ dependencies:
150
192
  - - "~>"
151
193
  - !ruby/object:Gem::Version
152
194
  version: 1.20.1
195
+ - !ruby/object:Gem::Dependency
196
+ name: net-ftp
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: net-http
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
153
223
  description: PETS suite includes three different tools. CohortAnalyzer performs the
154
224
  calculation of several statistics that gives an overview of a cohort of patients
155
225
  to analyse. Reg2Phen uses associations between pathological phenotypes and regions
@@ -171,14 +241,17 @@ executables:
171
241
  - fmeasure_index.rb
172
242
  - generate_HPO_IC_table.rb
173
243
  - get_PR_values.rb
244
+ - get_gen_features.rb
174
245
  - get_network_nodes.rb
175
246
  - get_sorted_profs.rb
247
+ - install_deps.rb
176
248
  - merge_by_cluster.rb
177
249
  - merge_pairs.rb
178
250
  - paco_translator.rb
179
251
  - phen2reg.rb
180
252
  - phen2reg_predictor_check.rb
181
253
  - profile_cleaner.rb
254
+ - profiles2phenopacket.rb
182
255
  - reg2phen.rb
183
256
  - region_to_patients_generator.rb
184
257
  - relate_CI_to_association_value.rb
@@ -202,20 +275,31 @@ files:
202
275
  - bin/fmeasure_index.rb
203
276
  - bin/generate_HPO_IC_table.rb
204
277
  - bin/get_PR_values.rb
278
+ - bin/get_gen_features.rb
205
279
  - bin/get_network_nodes.rb
206
280
  - bin/get_sorted_profs.rb
281
+ - bin/install_deps.rb
207
282
  - bin/merge_by_cluster.rb
208
283
  - bin/merge_pairs.rb
209
284
  - bin/paco_translator.rb
210
285
  - bin/phen2reg.rb
211
286
  - bin/phen2reg_predictor_check.rb
212
287
  - bin/profile_cleaner.rb
288
+ - bin/profiles2phenopacket.rb
213
289
  - bin/reg2phen.rb
214
290
  - bin/region_to_patients_generator.rb
215
291
  - bin/relate_CI_to_association_value.rb
216
292
  - bin/setup
293
+ - example_datasets/associations_file.txt
294
+ - example_datasets/example_patient.txt
295
+ - example_datasets/example_patient_hpos.txt
296
+ - example_datasets/genes.txt
297
+ - example_datasets/hpo2ci.txt
298
+ - example_datasets/hummu_congenital_full_dataset.txt
299
+ - example_datasets/launch.sh
217
300
  - external_code/generate_boxpot.R
218
301
  - external_code/get_clusters.R
302
+ - external_code/install_R_dependencies.R
219
303
  - external_code/lines.R
220
304
  - external_code/plot_area.R
221
305
  - external_code/plot_boxplot.R
@@ -242,7 +326,14 @@ files:
242
326
  - external_data/uniq_hpo_with_CI.txt
243
327
  - lib/pets.rb
244
328
  - lib/pets/coPatReporterMethods.rb
329
+ - lib/pets/cohort.rb
330
+ - lib/pets/common_optparse.rb
331
+ - lib/pets/constants.rb
245
332
  - lib/pets/generalMethods.rb
333
+ - lib/pets/genomic_features.rb
334
+ - lib/pets/io.rb
335
+ - lib/pets/parsers/cohort_parser.rb
336
+ - lib/pets/parsers/reference_parser.rb
246
337
  - lib/pets/phen2reg_methods.rb
247
338
  - lib/pets/reg2phen_methods.rb
248
339
  - lib/pets/version.rb
@@ -272,7 +363,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
272
363
  - !ruby/object:Gem::Version
273
364
  version: '0'
274
365
  requirements: []
275
- rubygems_version: 3.2.3
366
+ rubygems_version: 3.3.7
276
367
  signing_key:
277
368
  specification_version: 4
278
369
  summary: Suite with predictive tools.