bio-polymarker_db_batch 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b0045dd6d2561e13086c61d5588de894b0ee7bc0
4
- data.tar.gz: ad77bb197ea0500655f754ef2d8bd53539699fc5
3
+ metadata.gz: 34300c3ab7db4b1aa97f72a1eb129b132cb2f151
4
+ data.tar.gz: 1c2793e119d6fb7db7a8e1fcd8f2038d1e769d5f
5
5
  SHA512:
6
- metadata.gz: 3591329b9ad5c94abfcfd639975abcfdebad02e2a12e3fdf668b0e62245bad648028580fda2b519a3f46a39f96082609c622095f8fa7a72409c712da2ade20f0
7
- data.tar.gz: 3cecabfb32c8298b2ee38bdaeed4330588f241a9ea6bdde859fcf3b7f51b4d4931d4906ff49324968cca999a5a84eae5f7c5f1adeb1947c2fd2804551dfd6388
6
+ metadata.gz: 2c969309580aefa5b53d02760719ecb8356732698095ec8f0937a1a0aa0a5af900f7586eece85c4f7cc5fdfcaf6671e8c138cf3f0854af342e1203fc12174e09
7
+ data.tar.gz: d3a7b2b7a6372fe5e982923eea9a0a8d1693e157dc9788ea0d2c79c05aaddd8dd98611b95cc946e0132658d671bd5abeea64719d057daf53e199b68f39ff6b53
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source "http://rubygems.org"
2
2
  # Add dependencies required to use your gem here.
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
- gem "bio-polyploid-tools"
5
+ gem "bio-polyploid-tools", "=0.5.1"
6
6
  gem "mysql"
7
7
 
8
8
  # Add dependencies to develop your gem here.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
1
+ 0.4.0
@@ -23,19 +23,16 @@ end.parse!
23
23
  pol=Bio::DB::Polymarker.new(options[:preferences])
24
24
 
25
25
 
26
- pol.mysql_version
26
+ #pol.mysql_version
27
27
  pol.each_running do |row|
28
- puts row.join(",")
29
- puts row.inspect
30
- pol.review_running_status(row[0], row[1])
31
- # pol.write_output_file_and_execute(row[0], row[1]);
32
- # pol.each_snp_in_file(row[0]) do |snp|
33
- # puts snp.inspect
34
-
35
- # pol.
36
- #end
37
-
28
+ #puts row.join(",")
29
+ #puts row.inspect
30
+ pol.review_running_status(row[0], row[1])
38
31
  end
39
32
 
33
+ pol.each_timeout do |row|
34
+ #puts "Timeouts: #{row[0]}"
35
+ pol.update_error_status(row[0], "Timeout")
36
+ end
40
37
 
41
38
 
@@ -28,6 +28,8 @@ pol.mysql_version
28
28
  pol.each_to_run do |row|
29
29
  puts row.join(",")
30
30
  puts row.inspect
31
+ puts row[0]
32
+ puts row[1]
31
33
  pol.write_output_file_and_execute(row[0], row[1]);
32
34
  # pol.each_snp_in_file(row[0]) do |snp|
33
35
  # puts snp.inspect
@@ -1,4 +1,4 @@
1
-
1
+ require 'pp'
2
2
  class Bio::DB::Polymarker
3
3
 
4
4
 
@@ -38,6 +38,19 @@ class Bio::DB::Polymarker
38
38
  ret
39
39
  end
40
40
 
41
+ def each_timeout
42
+ #TODO: validate the timeouts.
43
+ #SELECT * FROM snp_file WHERE datediff(NOW(), lastChange) > 3 and status != 'DONE';
44
+ query="SELECT snp_file_id, filename FROM snp_file WHERE datediff(NOW(), submitted) > 3 AND status IN ('NEW', 'SUBMITTED', 'RUNNING');"
45
+ ret = 0
46
+ if block_given?
47
+ ret = execute_query(query){|row| yield row }
48
+ else
49
+ ret = execute_query(query)
50
+ end
51
+ ret
52
+ end
53
+
41
54
  def each_snp_in_file(file_id)
42
55
  query="SELECT name, chromosome, sequence FROM snp, snp_file_snp WHERE snp_file_snp.snpList_snpId = snp.snpId AND snp_file_snp.snp_file_snp_file_id = '#{file_id}' AND snp.process = 1;"
43
56
  ret = 0
@@ -51,6 +64,7 @@ class Bio::DB::Polymarker
51
64
  end
52
65
 
53
66
  def write_output_file_and_execute(file_id, filename)
67
+ puts "Writting: #{file_id}_#{filename}"
54
68
  path =@properties["execution_path"]+"/#{file_id}_#{filename}"
55
69
  puts "Writting: #{path}"
56
70
  f=File.open(path, "w")
@@ -80,7 +94,31 @@ class Bio::DB::Polymarker
80
94
  hashed_id = "#{snp_file_id}:#{snp_file['hash']}"
81
95
  send_email(snp_file['email'],hashed_id, new_status)
82
96
  rescue
83
- puts "Error sending email."
97
+ puts "Error sending email. "
98
+ end
99
+ end
100
+
101
+ def update_error_status(snp_file_id, error_message)
102
+ snp_file = get_snp_file(snp_file_id)
103
+ return if snp_file['status'] == "ERROR"
104
+
105
+
106
+ pst = con.prepare "UPDATE snp_file SET status = 'ERROR', error=? WHERE snp_file_id = ?"
107
+ puts "update_error_status: #{pst}"
108
+ pst.execute error_message, snp_file_id
109
+ con.commit
110
+ new_status = "ERROR: #{error_message}"
111
+ hashed_id = "#{snp_file_id}:#{snp_file['hash']}"
112
+ begin
113
+ send_email(snp_file['email'], hashed_id, new_status)
114
+ rescue Exception => e
115
+ puts "Error sending email to #{snp_file['email']}: #{e.message}"
116
+ end
117
+
118
+ begin
119
+ send_email(@properties['email_from'], hashed_id, new_status)
120
+ rescue Exception => e
121
+ puts "Error sending email to #{@properties['email_from']}: #{e.message}"
84
122
  end
85
123
  end
86
124
 
@@ -109,17 +147,33 @@ END_OF_MESSAGE
109
147
  started=File.exist?(out_folder)
110
148
  done=false
111
149
 
150
+
151
+ error_message = ""
152
+ error = false
153
+
112
154
  if started
113
155
  lines = IO.readlines("#{out_folder}/status.txt")
114
- # puts lines.inspect
115
- done = lines.last.split(",").include?("DONE\n") if lines.size > 1
156
+ puts lines.inspect
157
+
158
+ lines.each do |l|
159
+ done = l.split(",").include?("DONE\n")
160
+ end
161
+
162
+ lines.each do |l|
163
+ error = l.include?("ERROR") unless error
164
+ error_message << l if error
165
+ end
116
166
  end
167
+
168
+
117
169
  if done
118
170
  exons_filename="#{out_folder}/exons_genes_and_contigs.fa"
119
171
  output_primers="#{out_folder}/primers.csv"
120
172
  read_file_to_snp_file("mask_fasta", file_id, exons_filename )
121
173
  read_file_to_snp_file("polymarker_output", file_id, output_primers )
122
174
  update_status(file_id, "DONE")
175
+ elsif error
176
+ update_error_status(file_id, error_message)
123
177
  elsif started
124
178
  update_status(file_id, "RUNNING")
125
179
  end
@@ -151,13 +205,13 @@ END_OF_MESSAGE
151
205
  end
152
206
 
153
207
  def execute_query(query)
154
- $stderr.puts query if $VERBOSE
155
-
156
-
157
-
208
+ $stderr.puts query if $VERBOSE
209
+ #puts "to execute: #{query}"
158
210
  if query.start_with?( 'SELECT')
159
211
  rs = con.query(query)
212
+ pp rs.inspect
160
213
  n_rows = rs.num_rows
214
+ puts "Returned #{n_rows} rows"
161
215
  ret = Array.new unless block_given?
162
216
  n_rows.times do
163
217
  row = rs.fetch_row
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bio-polymarker_db_batch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricardo H. Ramirez-Gonzalez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-25 00:00:00.000000000 Z
11
+ date: 2014-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bio-polyploid-tools
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 0.5.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.5.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mysql
29
29
  requirement: !ruby/object:Gem::Requirement