t2-web 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. data/Gemfile +3 -0
  2. data/Rakefile +4 -3
  3. data/bin/t2-web +0 -0
  4. data/bin/t2_webapp.rb +45 -10
  5. data/public/t2web/scripts/results.js +6 -2
  6. data/public/t2web/tmp/outputs/049c41c6-77ed-457b-a342-1a779055156a/UniProtID +166 -0
  7. data/public/t2web/tmp/outputs/049c41c6-77ed-457b-a342-1a779055156a/ValidatedProtein +8 -0
  8. data/public/t2web/tmp/outputs/146d17ee-9418-4b59-89db-d9d0b9b8986d/Document_ID +1 -0
  9. data/public/t2web/tmp/outputs/146d17ee-9418-4b59-89db-d9d0b9b8986d/Document_title +1 -0
  10. data/public/t2web/tmp/outputs/2dbcdad5-5344-42c6-b75d-0786bb64ab21/UniProtID +185 -0
  11. data/public/t2web/tmp/outputs/2dbcdad5-5344-42c6-b75d-0786bb64ab21/ValidatedProtein +10 -0
  12. data/public/t2web/tmp/outputs/32cc09db-2097-4f3d-af66-4c259e1b6ca4/c.error +5 -0
  13. data/public/t2web/tmp/outputs/37ddef2f-dc86-455b-83dd-77db719a0f43/UniProtID +185 -0
  14. data/public/t2web/tmp/outputs/37ddef2f-dc86-455b-83dd-77db719a0f43/ValidatedProtein +10 -0
  15. data/public/t2web/tmp/outputs/38e16f78-651d-4460-ac17-21fa286316f7/UniProtID +185 -0
  16. data/public/t2web/tmp/outputs/38e16f78-651d-4460-ac17-21fa286316f7/ValidatedProtein +10 -0
  17. data/public/t2web/tmp/outputs/39b05ef7-9d44-4985-b91f-8bb364318f08/DocumentID +1 -0
  18. data/public/t2web/tmp/outputs/39b05ef7-9d44-4985-b91f-8bb364318f08/DocumentTitle +1 -0
  19. data/public/t2web/tmp/outputs/3d98e130-2397-4685-a42a-7695ec31e167/UniProtID +185 -0
  20. data/public/t2web/tmp/outputs/3d98e130-2397-4685-a42a-7695ec31e167/ValidatedProtein +10 -0
  21. data/public/t2web/tmp/outputs/42d7d982-dee2-4d10-9f99-0739e5f69128/UniProtID +185 -0
  22. data/public/t2web/tmp/outputs/42d7d982-dee2-4d10-9f99-0739e5f69128/ValidatedProtein +10 -0
  23. data/public/t2web/tmp/outputs/5f548064-62e9-4929-8c19-bc3becd0085a/DocumentID +1 -0
  24. data/public/t2web/tmp/outputs/5f548064-62e9-4929-8c19-bc3becd0085a/DocumentTitle +1 -0
  25. data/public/t2web/tmp/outputs/64180866-65fb-4c18-8117-8433809858e9/UniProtID +153 -0
  26. data/public/t2web/tmp/outputs/64180866-65fb-4c18-8117-8433809858e9/ValidatedProtein +10 -0
  27. data/public/t2web/tmp/outputs/69214823-0f5f-4a0c-8a96-ae209b383689/c.error +5 -0
  28. data/public/t2web/tmp/outputs/6cc7b825-5acb-487f-b0cc-effd291d7ca8/UniProtID +185 -0
  29. data/public/t2web/tmp/outputs/6cc7b825-5acb-487f-b0cc-effd291d7ca8/ValidatedProtein +10 -0
  30. data/public/t2web/tmp/outputs/6f1e0b58-6ab6-4ab8-91bd-8b765c1b0114/UniProtID +185 -0
  31. data/public/t2web/tmp/outputs/6f1e0b58-6ab6-4ab8-91bd-8b765c1b0114/ValidatedProtein +10 -0
  32. data/public/t2web/tmp/outputs/758c71b6-41fb-4463-8cc9-21aa556385d1/c +1 -0
  33. data/public/t2web/tmp/outputs/78e61965-6f39-483d-8af7-7be640a3f33b/c +1 -0
  34. data/public/t2web/tmp/outputs/7963e714-68cd-44f7-8c52-e2352bef809d/DocumentID +1 -0
  35. data/public/t2web/tmp/outputs/7963e714-68cd-44f7-8c52-e2352bef809d/DocumentTitle +1 -0
  36. data/public/t2web/tmp/outputs/7e42db30-3bac-4fe9-b253-66cd35e6c7f9/c.error +5 -0
  37. data/public/t2web/tmp/outputs/7e731896-5b22-45eb-8ce0-cdae3d66ffe4/UniProtID +185 -0
  38. data/public/t2web/tmp/outputs/7e731896-5b22-45eb-8ce0-cdae3d66ffe4/ValidatedProtein +10 -0
  39. data/public/t2web/tmp/outputs/81835a40-d9e5-4ab2-a3c9-c39bee1cd391/UniProtID +185 -0
  40. data/public/t2web/tmp/outputs/81835a40-d9e5-4ab2-a3c9-c39bee1cd391/ValidatedProtein +10 -0
  41. data/public/t2web/tmp/outputs/8353d6f6-8e5f-4e5d-9d65-d303330b31ef/c +1 -0
  42. data/public/t2web/tmp/outputs/84ab8b42-a473-4bb8-94df-6a53f00b32db/Explained_concept_ID +50 -0
  43. data/public/t2web/tmp/outputs/84ab8b42-a473-4bb8-94df-6a53f00b32db/Explained_concept_name +50 -0
  44. data/public/t2web/tmp/outputs/84ab8b42-a473-4bb8-94df-6a53f00b32db/Match_concept_ID +5 -0
  45. data/public/t2web/tmp/outputs/84ab8b42-a473-4bb8-94df-6a53f00b32db/Matched_disease_names +5 -0
  46. data/public/t2web/tmp/outputs/84ab8b42-a473-4bb8-94df-6a53f00b32db/Query_concept_ID +5 -0
  47. data/public/t2web/tmp/outputs/84ab8b42-a473-4bb8-94df-6a53f00b32db/Summed_Similarity_score +5 -0
  48. data/public/t2web/tmp/outputs/881e2b9f-02b7-43ca-8e1f-db3f019e1b50/c +1 -0
  49. data/public/t2web/tmp/outputs/88f3b8a9-f544-4a5d-9d2d-bbb98b802a46/DocumentID +1 -0
  50. data/public/t2web/tmp/outputs/88f3b8a9-f544-4a5d-9d2d-bbb98b802a46/DocumentTitle +1 -0
  51. data/public/t2web/tmp/outputs/8d346bd2-a96d-4f33-8f23-2b0e53389dbe/UniProtID +185 -0
  52. data/public/t2web/tmp/outputs/8d346bd2-a96d-4f33-8f23-2b0e53389dbe/ValidatedProtein +10 -0
  53. data/public/t2web/tmp/outputs/8f6e128f-4f06-47d9-a507-7af81da097e7/UniProtID +185 -0
  54. data/public/t2web/tmp/outputs/8f6e128f-4f06-47d9-a507-7af81da097e7/ValidatedProtein +10 -0
  55. data/public/t2web/tmp/outputs/99581b3a-a73a-469f-8377-43d7bf804bfa/Document_ID +1 -0
  56. data/public/t2web/tmp/outputs/99581b3a-a73a-469f-8377-43d7bf804bfa/Document_title +1 -0
  57. data/public/t2web/tmp/outputs/9b72ed6c-ab8d-443e-a2d7-28aa5ac901e7/UniProtID +185 -0
  58. data/public/t2web/tmp/outputs/9b72ed6c-ab8d-443e-a2d7-28aa5ac901e7/ValidatedProtein +10 -0
  59. data/public/t2web/tmp/outputs/9e76bfc2-4ecb-4c9c-9446-eb4e462a9002/Pathway +1 -0
  60. data/public/t2web/tmp/outputs/9e76bfc2-4ecb-4c9c-9446-eb4e462a9002/geneList +184 -0
  61. data/public/t2web/tmp/outputs/9e76bfc2-4ecb-4c9c-9446-eb4e462a9002/gene_description +184 -0
  62. data/public/t2web/tmp/outputs/a7c012b1-4316-4780-8cb2-82f270e0e8fb/c.error +5 -0
  63. data/public/t2web/tmp/outputs/af874bf7-fdf2-4aaa-a2bb-95e1d2217942/UniProtID +185 -0
  64. data/public/t2web/tmp/outputs/af874bf7-fdf2-4aaa-a2bb-95e1d2217942/ValidatedProtein +10 -0
  65. data/public/t2web/tmp/outputs/bda0e4c4-1703-4d96-b47d-a900e40d6545/UniProtID +185 -0
  66. data/public/t2web/tmp/outputs/bda0e4c4-1703-4d96-b47d-a900e40d6545/ValidatedProtein +10 -0
  67. data/public/t2web/tmp/outputs/c48f4ca9-b683-4108-b89e-dffa508dd288/UniProtID +185 -0
  68. data/public/t2web/tmp/outputs/c48f4ca9-b683-4108-b89e-dffa508dd288/ValidatedProtein +10 -0
  69. data/public/t2web/tmp/outputs/c524df09-3e29-4cdc-8c23-9f7db851ac3c/DocumentID +1 -0
  70. data/public/t2web/tmp/outputs/c524df09-3e29-4cdc-8c23-9f7db851ac3c/DocumentTitle +1 -0
  71. data/public/t2web/tmp/outputs/c6244429-b042-45c9-98f3-ea54fc38f2d6/UniProtID +185 -0
  72. data/public/t2web/tmp/outputs/c6244429-b042-45c9-98f3-ea54fc38f2d6/ValidatedProtein +10 -0
  73. data/public/t2web/tmp/outputs/cbbe70ea-0fa9-422e-9d9a-568f490b9176/UniProtID +185 -0
  74. data/public/t2web/tmp/outputs/cbbe70ea-0fa9-422e-9d9a-568f490b9176/ValidatedProtein +10 -0
  75. data/public/t2web/tmp/outputs/ccf5fb69-9d43-47df-9eb8-88127952a4dd/UniProtID +185 -0
  76. data/public/t2web/tmp/outputs/ccf5fb69-9d43-47df-9eb8-88127952a4dd/ValidatedProtein +10 -0
  77. data/public/t2web/tmp/outputs/d510bb4c-1e20-4fd6-9183-b7428d9fc487/UniProtID +185 -0
  78. data/public/t2web/tmp/outputs/d510bb4c-1e20-4fd6-9183-b7428d9fc487/ValidatedProtein +10 -0
  79. data/public/t2web/tmp/outputs/db765c29-3800-45f8-9c4c-243668820ecc/c +1 -0
  80. data/public/t2web/tmp/outputs/e612877e-f9a4-46db-a790-0a97c91fc939/c +1 -0
  81. data/public/t2web/tmp/outputs/f4e529bb-7553-485f-9efd-37ab3f9efd76/UniProtID +185 -0
  82. data/public/t2web/tmp/outputs/f4e529bb-7553-485f-9efd-37ab3f9efd76/ValidatedProtein +10 -0
  83. data/public/t2web/tmp/outputs/f7ce53cc-1200-4552-8d92-d8c6d3247efd/c +1 -0
  84. data/public/t2web/tmp/outputs/f7fdb125-44bb-444f-957c-3e12246d6e57/DocumentID +1 -0
  85. data/public/t2web/tmp/outputs/f7fdb125-44bb-444f-957c-3e12246d6e57/DocumentTitle +1 -0
  86. data/views/form.haml +9 -9
  87. data/views/results.haml +6 -4
  88. metadata +348 -245
data/Gemfile CHANGED
@@ -1,5 +1,7 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
+ config.serve_static_assets = true
4
+
3
5
  gem 'sinatra', '~> 1.3.2'
4
6
  gem 'thin', '~> 1.2.11'
5
7
  gem 'haml', '~> 3.1.2'
@@ -14,3 +16,4 @@ end
14
16
  group :test do
15
17
  gem 'webrat'
16
18
  end
19
+
data/Rakefile CHANGED
@@ -12,12 +12,12 @@ require 'rdoc/task'
12
12
 
13
13
  spec = Gem::Specification.new do |s|
14
14
  s.name = 't2-web'
15
- s.version = '0.1.9'
15
+ s.version = '0.2.0'
16
16
  s.extra_rdoc_files = ['README', 'LICENSE', 'CHANGES']
17
17
  s.summary = 'Web application that generates a Web UI form for a Taverna2 workflow, given its myExperiment id, for ease of execution. The only requirement for the user is a web browser.'
18
18
  s.description = s.summary
19
- s.author = 'Kostas Karasavvas'
20
- s.email = 'kostas.karasavvas@nbic.nl'
19
+ s.authors = ['Kostas Karasavvas','Mark Thompson', 'Reinout van Schouwen']
20
+ s.email = 'mark9630@gmail.com'
21
21
  s.executables = ['t2-web']
22
22
  s.files = %w(LICENSE README CHANGES Rakefile Gemfile Gemfile.lock) + Dir.glob("{bin,lib,doc,spec,public,views}/**/*")
23
23
  s.require_path = "lib"
@@ -28,6 +28,7 @@ spec = Gem::Specification.new do |s|
28
28
  s.add_dependency 'rest-client', '~> 1.6.3'
29
29
  s.add_dependency 't2-server', '~> 0.6.1'
30
30
  s.add_dependency 'myexperiment-rest', '~> 0.3.3'
31
+ s.add_dependency 'nokogiri', '~> 1.5.9'
31
32
  end
32
33
 
33
34
  Gem::PackageTask.new(spec) do |p|
data/bin/t2-web CHANGED
File without changes
@@ -9,6 +9,7 @@ require 't2-server'
9
9
  require 'myexperiment-rest'
10
10
  require 'cgi'
11
11
  require 'stringio'
12
+ require 'nokogiri'
12
13
  #require "t2-web"
13
14
 
14
15
  # TODO: move whole of T2WebApp in lib
@@ -20,7 +21,12 @@ class T2WebApp < Sinatra::Base
20
21
  WEB_APP_NAME = "t2web"
21
22
 
22
23
  set :views, File.dirname(__FILE__) + '/../views'
23
- set :public_folder, File.dirname(__FILE__) + '/../public'
24
+ #set :public_folder, '/var/lib/gems/1.9.1/gems/t2-web-0.1.9'
25
+ #set :public_folder, File.dirname(__FILE__) + '/../public'
26
+ set :public_folder, File.expand_path(File.join('/', 'var', 'www', 't2web'))
27
+ #puts File.dirname(__FILE__) + '/../public'
28
+ #puts public_folder
29
+ #ENV.each { |e| puts "#{e[0]} => #{e[1]}" }
24
30
 
25
31
  # Can be used from routes and views (haml) -- not public methods
26
32
  helpers do
@@ -60,7 +66,7 @@ class T2WebApp < Sinatra::Base
60
66
  def generate_header_frame(my_exp_wkf, my_exp_usr)
61
67
  <<END
62
68
  <html>
63
- <head><link href='/t2web/css/form.css' rel='stylesheet'/></head>
69
+ <head><link href='/css/form.css' rel='stylesheet'/></head>
64
70
  <body>
65
71
  #{generate_header_table(my_exp_wkf, my_exp_usr)}
66
72
  </body>
@@ -76,7 +82,7 @@ END
76
82
  <table class='header'>
77
83
  <tr>
78
84
  <td class='left'>
79
- <img alt='NBIC logo' src='/t2web/images/nbic_logo.gif' />
85
+ <img alt='NBIC logo' src='/images/nbic_logo.gif' />
80
86
  </td>
81
87
  <td>
82
88
  <table class='header-title'>
@@ -89,7 +95,7 @@ END
89
95
  </table>
90
96
  </td>
91
97
  <td>
92
- <img alt='LUMC logo' class='right' src='/t2web/images/lumc_logo2.png' />
98
+ <img alt='LUMC logo' class='right' src='/images/lumc_logo2.png' />
93
99
  </td>
94
100
  </tr>
95
101
  </table>
@@ -110,8 +116,9 @@ END
110
116
 
111
117
  # Generates the contents of the data-navigation frame
112
118
  def generate_data_navigation_frame(my_exp_wkf, uuid, wid, wkf_version, t2_server, finished_execution)
119
+ puts "generate data navigation frame function called"
113
120
 
114
- data_navigation_frame = "<html><head><link href='/t2web/css/results_navigation.css' rel='stylesheet'/></head><body><table>"
121
+ data_navigation_frame = "<html><head><link href='/css/results_navigation.css' rel='stylesheet'/></head><body><table>"
115
122
  if my_exp_wkf.outputs.size >=1
116
123
  my_exp_wkf.outputs.each do |output|
117
124
  data_navigation_frame << "<tr>"
@@ -120,7 +127,7 @@ END
120
127
  data_navigation_frame << "<td><a href='javascript:void(0);' onclick='parent.readTmpOutput(\\\"#{t2_server}\\\", \\\"#{uuid}\\\", " <<
121
128
  "\\\"#{output.name}\\\", \\\"#{wid}\\\", \\\"#{wkf_version}\\\");'>#{output.name}</a></td><td></td>"
122
129
  else
123
- data_navigation_frame << "<td>#{output.name}</td><td><img src='/t2web/images/snake_transparent.gif' alt='Loading Content...'></td>"
130
+ data_navigation_frame << "<td>#{output.name}</td><td><img src='/images/snake_transparent.gif' alt='Loading Content...'></td>"
124
131
  end
125
132
  data_navigation_frame << "</tr>"
126
133
  end
@@ -144,7 +151,12 @@ END
144
151
  # TODO: when 'typing' issues are resolved think of using system_flatten_list_results method
145
152
  # TODO: <b></b> is added to single images -- remember to clean after 'typing' work
146
153
  def flatten_list_results(data_lists)
154
+ #puts data_lists.to_yaml # mark
147
155
  data = ""
156
+ if data_lists.instance_of? String
157
+ #puts ">>>>>>>>>>> changing type of data_lists"
158
+ data_lists = [ data_lists ]
159
+ end
148
160
  data_lists.each do |list|
149
161
  if list.instance_of? Array
150
162
  tmp_data = list.flatten.compact.map {|e| e.chomp}
@@ -200,11 +212,13 @@ END
200
212
  # TODO: consider adding the following to a session
201
213
  @wid = params[:wid]
202
214
  @wkf_version = params[:wkf_version] || nil
203
- @t2_server = params[:server] || "http://test.mybiobank.org/taverna-server"
215
+ #@t2_server = params[:server] || "http://test.mybiobank.org/taverna-server"
216
+ @t2_server = params[:server] || "http://localhost:8080/taverna-server"
204
217
 
205
218
  # Get myExperiment workflow object
206
219
  # TODO: catch exception
207
220
  @my_exp_wkf = MyExperimentREST::Workflow.from_id_and_version(@wid, @wkf_version)
221
+ #puts @my_exp_wkf.to_yaml
208
222
 
209
223
  # Get myExperiment user object
210
224
  # TODO: catch exception
@@ -224,7 +238,8 @@ END
224
238
  # TODO: consider adding the following to a session
225
239
  @wid = params[:wid]
226
240
  @wkf_version = params[:wkf_version]
227
- @t2_server = params[:server]
241
+ #@t2_server = params[:server]
242
+ @t2_server = "http://workflow.biosemantics.org/taverna-server" # hacked by mark
228
243
 
229
244
  @my_exp_wkf = MyExperimentREST::Workflow.from_id_and_version(@wid, @wkf_version)
230
245
 
@@ -235,10 +250,23 @@ END
235
250
  #wkf_file = URI.parse(@my_exp_wkf.content_uri)
236
251
  wkf = open(@my_exp_wkf.content_uri).read
237
252
 
253
+ # Parse wkf XML to add username/password for RSHELL if applicable
254
+ wkf_xml = Nokogiri::XML(wkf)
255
+ rshellConfig = wkf_xml.xpath("//net.sf.taverna.t2.activities.rshell.RshellActivityConfigurationBean").first
256
+ if (!(rshellConfig.nil?) and rshellConfig.xpath("//connectionSettings/username").first.nil?)
257
+ newNode = Nokogiri::XML::Node.new("username", wkf_xml)
258
+ wkf_xml.xpath("//net.sf.taverna.t2.activities.rshell.RshellActivityConfigurationBean/connectionSettings").first.add_child(newNode)
259
+ end
260
+ #puts wkf_xml.xpath("//connectionSettings")
261
+ wkf = wkf_xml.to_s
262
+
238
263
  # create run
239
264
  begin
240
- run = T2Server::Run.create(@t2_server, wkf)
265
+ run = T2Server::Run.create(@t2_server, wkf.sub(/<\?xml(.*)?>/,""))
266
+ #puts ">>> wkf from t2-web #{@my_exp_wkf.content_uri}:\n"
241
267
  rescue T2Server::T2ServerError => e
268
+ #mark: puts e.to_s
269
+ #mark: puts e.to_yaml
242
270
  return "404 Not Found: run could not be instantiated!"
243
271
  end
244
272
 
@@ -250,6 +278,7 @@ END
250
278
  if params[:"upload-checkbox-#{input.name}"] == "yes"
251
279
  filename = params[:"#{input.name}-file"]
252
280
  tmp_filename = "#{settings.public_folder}/#{WEB_APP_NAME}/tmp/#{filename}"
281
+ puts "tmp_filename: #{tmp_filename}"
253
282
 
254
283
  # make sure that the file is uploaded completely, i.e. all it's
255
284
  # connections are closed
@@ -265,8 +294,10 @@ END
265
294
  end
266
295
 
267
296
  # start run and wait until it is finished
297
+ puts "run started"
268
298
  run.start
269
299
 
300
+ puts "webapp name: #{WEB_APP_NAME}"
270
301
  haml :results
271
302
  end
272
303
 
@@ -277,8 +308,12 @@ END
277
308
  uuid = params[:uuid]
278
309
  t2_server = params[:server]
279
310
 
280
- response = RestClient.get t2_server + "/rest/runs/" + uuid + "/status", :content_type => "text/plain"
311
+ forceNoCache = (0...8).map{65.+(rand(25)).chr}.join
312
+ statusUrl = t2_server + "/rest/runs/" + uuid + "/status" + "?random=" + forceNoCache
313
+ #puts "Getting status from: " + statusUrl
314
+ response = RestClient.get statusUrl, :content_type => "text/plain"
281
315
 
316
+ #puts response.to_str
282
317
  response.to_str
283
318
  end
284
319
 
@@ -26,7 +26,8 @@ function readTmpOutput(t2_server, uuid, output, wid, wkf_version) {
26
26
 
27
27
  function checkRunStatus(t2_server, uuid, wid, wkf_version) {
28
28
  // t2 server REST call to uuid's status
29
- var httpcall = "http://" + document.location.host + "/t2web/runs/" + uuid + "/status?server=" + t2_server;
29
+ var httpcall = "http://" + document.location.host + "/t2web/runs/" + uuid + "/status?server=" + t2_server + "&random=" + Math.random();
30
+ console.log("httpcall: " + httpcall);
30
31
 
31
32
  // ajax request to confirm finished execution
32
33
  //$.get(httpcall, function (result) {
@@ -44,19 +45,22 @@ function checkRunStatus(t2_server, uuid, wid, wkf_version) {
44
45
  type: "GET",
45
46
  url: httpcall,
46
47
  success: function (result) {
48
+ console.log("Result: " + result);
47
49
  if (result == 'Finished') {
50
+ console.log("Finished!");
48
51
  clearInterval(runStatusIntervalId);
49
52
  getOutputs(t2_server, uuid);
50
53
  }
51
54
  }
52
55
  });
56
+ console.log("after ajax call");
53
57
  }
54
58
 
55
59
  function getOutputs(t2_server, uuid) {
56
60
  // prepare get outputs call (to local ruby, cross-domain ajax call)
57
61
  var httpoutputs = "http://" + document.location.host + "/t2web/run/" + uuid + "/outputs" +
58
62
  "?server=" + t2_server;
59
- console.log("in new function!!!!");
63
+ console.log("in new function!!!!" + httpoutputs);
60
64
 
61
65
  // ajax request to get outputs
62
66
  //$.get(httpoutputs, function (reply) {
@@ -0,0 +1,166 @@
1
+ <b>P70386</b>
2
+ Q02527
3
+ Q09327
4
+ Q10470
5
+ Q14CK5
6
+ Q6IC49
7
+ Q9UH32
8
+ P70386
9
+ Q02527
10
+ Q09327
11
+ Q10470
12
+ Q14CK5
13
+ Q6IC49
14
+ Q9UH32
15
+ P70386
16
+ Q02527
17
+ Q09327
18
+ Q10470
19
+ Q14CK5
20
+ Q6IC49
21
+ Q9UH32
22
+ P70386
23
+ Q02527
24
+ Q09327
25
+ Q10470
26
+ Q14CK5
27
+ Q6IC49
28
+ Q9UH32
29
+ <b>A8K7C2</b>
30
+ O73815
31
+ P02571
32
+ P02579
33
+ P12714
34
+ P14104
35
+ P53478
36
+ P60010
37
+ P63259
38
+ P63260
39
+ P63261
40
+ P99022
41
+ Q5U032
42
+ Q6P3K9
43
+ Q7ZVI7
44
+ Q96E67
45
+ Q9P3X6
46
+ Q9P3X7
47
+ <b>P15943</b>
48
+ Q06335
49
+ Q06481
50
+ Q13861
51
+ Q14594
52
+ Q14662
53
+ Q71U10
54
+ Q7M4L3
55
+ Q9BT36
56
+ Q9TVV0
57
+ Q9U4H3
58
+ Q9W5F1
59
+ P05067
60
+ P08592
61
+ P09000
62
+ P12023
63
+ P78438
64
+ P97487
65
+ P97942
66
+ Q10651
67
+ Q13764
68
+ Q13778
69
+ Q13793
70
+ Q16011
71
+ Q16014
72
+ Q16019
73
+ Q16020
74
+ Q18583
75
+ Q547B7
76
+ Q6GSC0
77
+ Q8WZ99
78
+ Q95ZX1
79
+ Q99K32
80
+ Q9BT38
81
+ Q9UC33
82
+ Q9UCA9
83
+ Q9UCB6
84
+ Q9UCC8
85
+ Q9UCD1
86
+ Q9UQ58
87
+ P15943
88
+ Q06335
89
+ Q06481
90
+ Q13861
91
+ Q14594
92
+ Q14662
93
+ Q71U10
94
+ Q7M4L3
95
+ Q9BT36
96
+ Q9TVV0
97
+ Q9U4H3
98
+ Q9W5F1
99
+ P05067
100
+ P08592
101
+ P09000
102
+ P12023
103
+ P78438
104
+ P97487
105
+ P97942
106
+ Q10651
107
+ Q13764
108
+ Q13778
109
+ Q13793
110
+ Q16011
111
+ Q16014
112
+ Q16019
113
+ Q16020
114
+ Q18583
115
+ Q547B7
116
+ Q6GSC0
117
+ Q8WZ99
118
+ Q95ZX1
119
+ Q99K32
120
+ Q9BT38
121
+ Q9UC33
122
+ Q9UCA9
123
+ Q9UCB6
124
+ Q9UCC8
125
+ Q9UCD1
126
+ Q9UQ58
127
+ P15943
128
+ Q06335
129
+ Q06481
130
+ Q13861
131
+ Q14594
132
+ Q14662
133
+ Q71U10
134
+ Q7M4L3
135
+ Q9BT36
136
+ Q9TVV0
137
+ Q9U4H3
138
+ Q9W5F1
139
+ P05067
140
+ P08592
141
+ P09000
142
+ P12023
143
+ P78438
144
+ P97487
145
+ P97942
146
+ Q10651
147
+ Q13764
148
+ Q13778
149
+ Q13793
150
+ Q16011
151
+ Q16014
152
+ Q16019
153
+ Q16020
154
+ Q18583
155
+ Q547B7
156
+ Q6GSC0
157
+ Q8WZ99
158
+ Q95ZX1
159
+ Q99K32
160
+ Q9BT38
161
+ Q9UC33
162
+ Q9UCA9
163
+ Q9UCB6
164
+ Q9UCC8
165
+ Q9UCD1
166
+ Q9UQ58
@@ -0,0 +1,8 @@
1
+ <b>GnT-III</b>
2
+ GnT-III
3
+ GnT-III
4
+ GnT-III
5
+ <b>gamma-actin</b>
6
+ <b>APP</b>
7
+ APP
8
+ APP
@@ -0,0 +1 @@
1
+ <b>L-Glutamine-induced apoptosis in microglia is mediated by mitochondrial dysfunction.</b>
@@ -0,0 +1,185 @@
1
+ <b>P70386</b>
2
+ Q02527
3
+ Q09327
4
+ Q10470
5
+ Q14CK5
6
+ Q6IC49
7
+ Q9UH32
8
+ P70386
9
+ Q02527
10
+ Q09327
11
+ Q10470
12
+ Q14CK5
13
+ Q6IC49
14
+ Q9UH32
15
+ P70386
16
+ Q02527
17
+ Q09327
18
+ Q10470
19
+ Q14CK5
20
+ Q6IC49
21
+ Q9UH32
22
+ P70386
23
+ Q02527
24
+ Q09327
25
+ Q10470
26
+ Q14CK5
27
+ Q6IC49
28
+ Q9UH32
29
+ <b>A8K7C2</b>
30
+ O73815
31
+ P02571
32
+ P02579
33
+ P12714
34
+ P14104
35
+ P53478
36
+ P60010
37
+ P63259
38
+ P63260
39
+ P63261
40
+ P99022
41
+ Q5U032
42
+ Q6P3K9
43
+ Q7ZVI7
44
+ Q96E67
45
+ Q9P3X6
46
+ Q9P3X7
47
+ <b>P15943</b>
48
+ Q06335
49
+ Q06481
50
+ Q13861
51
+ Q14594
52
+ Q14662
53
+ Q71U10
54
+ Q7M4L3
55
+ Q9BT36
56
+ Q9TVV0
57
+ Q9U4H3
58
+ Q9W5F1
59
+ P05067
60
+ P08592
61
+ P09000
62
+ P12023
63
+ P78438
64
+ P97487
65
+ P97942
66
+ Q10651
67
+ Q13764
68
+ Q13778
69
+ Q13793
70
+ Q16011
71
+ Q16014
72
+ Q16019
73
+ Q16020
74
+ Q18583
75
+ Q547B7
76
+ Q6GSC0
77
+ Q8WZ99
78
+ Q95ZX1
79
+ Q99K32
80
+ Q9BT38
81
+ Q9UC33
82
+ Q9UCA9
83
+ Q9UCB6
84
+ Q9UCC8
85
+ Q9UCD1
86
+ Q9UQ58
87
+ P15943
88
+ Q06335
89
+ Q06481
90
+ Q13861
91
+ Q14594
92
+ Q14662
93
+ Q71U10
94
+ Q7M4L3
95
+ Q9BT36
96
+ Q9TVV0
97
+ Q9U4H3
98
+ Q9W5F1
99
+ P05067
100
+ P08592
101
+ P09000
102
+ P12023
103
+ P78438
104
+ P97487
105
+ P97942
106
+ Q10651
107
+ Q13764
108
+ Q13778
109
+ Q13793
110
+ Q16011
111
+ Q16014
112
+ Q16019
113
+ Q16020
114
+ Q18583
115
+ Q547B7
116
+ Q6GSC0
117
+ Q8WZ99
118
+ Q95ZX1
119
+ Q99K32
120
+ Q9BT38
121
+ Q9UC33
122
+ Q9UCA9
123
+ Q9UCB6
124
+ Q9UCC8
125
+ Q9UCD1
126
+ Q9UQ58
127
+ P15943
128
+ Q06335
129
+ Q06481
130
+ Q13861
131
+ Q14594
132
+ Q14662
133
+ Q71U10
134
+ Q7M4L3
135
+ Q9BT36
136
+ Q9TVV0
137
+ Q9U4H3
138
+ Q9W5F1
139
+ P05067
140
+ P08592
141
+ P09000
142
+ P12023
143
+ P78438
144
+ P97487
145
+ P97942
146
+ Q10651
147
+ Q13764
148
+ Q13778
149
+ Q13793
150
+ Q16011
151
+ Q16014
152
+ Q16019
153
+ Q16020
154
+ Q18583
155
+ Q547B7
156
+ Q6GSC0
157
+ Q8WZ99
158
+ Q95ZX1
159
+ Q99K32
160
+ Q9BT38
161
+ Q9UC33
162
+ Q9UCA9
163
+ Q9UCB6
164
+ Q9UCC8
165
+ Q9UCD1
166
+ Q9UQ58
167
+ <b>P08396</b>
168
+ P08397
169
+ P19356
170
+ P22907
171
+ P28789
172
+ Q16012
173
+ Q2VQW9
174
+ <b>Q08AP2</b>
175
+ Q08AP3
176
+ Q15439
177
+ Q15440
178
+ Q15441
179
+ Q60721
180
+ Q60722
181
+ Q62211
182
+ Q62655
183
+ Q64072
184
+ Q80UE8
185
+ Q99N33