t2-web 0.1.9 → 0.2.0

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 (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