pione 0.1.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 (366) hide show
  1. data/.gitignore +14 -0
  2. data/Gemfile +5 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +94 -0
  5. data/Rakefile +118 -0
  6. data/bin/pione-broker +5 -0
  7. data/bin/pione-clean +5 -0
  8. data/bin/pione-client +5 -0
  9. data/bin/pione-eval +111 -0
  10. data/bin/pione-relay +5 -0
  11. data/bin/pione-relay-account-db +5 -0
  12. data/bin/pione-relay-client-db +5 -0
  13. data/bin/pione-search-log +30 -0
  14. data/bin/pione-syntax-checker +5 -0
  15. data/bin/pione-task-worker +5 -0
  16. data/bin/pione-tuple-space-provider +5 -0
  17. data/bin/pione-tuple-space-receiver +5 -0
  18. data/bin/pione-tuple-space-viewer +5 -0
  19. data/demo/demo.rb +311 -0
  20. data/demo/public/base.css +94 -0
  21. data/demo/public/demo.js +107 -0
  22. data/demo/public/index.html +91 -0
  23. data/demo/public/jquery-1.8.3.min.js +2 -0
  24. data/example/CountChar/CountChar.pione +64 -0
  25. data/example/CountChar/misc/CountChar.rb +22 -0
  26. data/example/CountChar/text/aidokushono_insho.txt +32 -0
  27. data/example/CountChar/text/aikokuka_shokan.txt +108 -0
  28. data/example/CountChar/text/carlyle_hakubutsukan.txt +58 -0
  29. data/example/CountChar/text/dark_minister.txt +2440 -0
  30. data/example/CountChar/text/kaikano_otto.txt +61 -0
  31. data/example/CountChar/text/kaikon.txt +30 -0
  32. data/example/CountChar/text/nagashimano_shi.txt +45 -0
  33. data/example/CountChar/text/saikachibuchi.txt +80 -0
  34. data/example/CountChar/text/saikonihonno_josei.txt +91 -0
  35. data/example/CountChar/text/taishojugonenno_bundan.txt +21 -0
  36. data/example/FeatureExample/FeatureExample.pione +7 -0
  37. data/example/Fib/Fib.pione +56 -0
  38. data/example/Fib/FibBC.pione +56 -0
  39. data/example/HelloWorld/HelloWorld.pione +5 -0
  40. data/example/LucasNumber/LucasNumber.pione +64 -0
  41. data/example/MakePair/MakePair.pione +14 -0
  42. data/example/MakePair/data/1.i +0 -0
  43. data/example/MakePair/data/2.i +0 -0
  44. data/example/MakePair/data/3.i +0 -0
  45. data/example/MakePair/data/4.i +0 -0
  46. data/example/MakePair/data/5.i +0 -0
  47. data/example/SieveOfEratosthenes/SieveOfEratosthenes.pione +61 -0
  48. data/example/SingleParticlesWithRef/Makefile +289 -0
  49. data/example/SingleParticlesWithRef/SingleParticlesWithRef.Makefile +153 -0
  50. data/example/SingleParticlesWithRef/SingleParticlesWithRef.pione +116 -0
  51. data/example/SingleParticlesWithRef/SingleParticlesWithRefFull.pione +400 -0
  52. data/example/SingleParticlesWithRef/data/121p-shift-0-0-0.roi +0 -0
  53. data/example/SingleParticlesWithRef/data/121p-shift-0-120-0.roi +0 -0
  54. data/example/SingleParticlesWithRef/data/121p-shift-0-180-0.roi +0 -0
  55. data/example/SingleParticlesWithRef/data/121p-shift-0-240-0.roi +0 -0
  56. data/example/SingleParticlesWithRef/data/121p-shift-0-300-0.roi +0 -0
  57. data/example/SingleParticlesWithRef/data/121p-shift-0-60-0.roi +0 -0
  58. data/example/SingleParticlesWithRef/data/121p-shift-120-0-0.roi +0 -0
  59. data/example/SingleParticlesWithRef/data/121p-shift-120-120-0.roi +0 -0
  60. data/example/SingleParticlesWithRef/data/121p-shift-120-180-0.roi +0 -0
  61. data/example/SingleParticlesWithRef/data/121p-shift-120-240-0.roi +0 -0
  62. data/example/SingleParticlesWithRef/data/121p-shift-120-300-0.roi +0 -0
  63. data/example/SingleParticlesWithRef/data/121p-shift-120-60-0.roi +0 -0
  64. data/example/SingleParticlesWithRef/data/121p-shift-180-0-0.roi +0 -0
  65. data/example/SingleParticlesWithRef/data/121p-shift-180-120-0.roi +0 -0
  66. data/example/SingleParticlesWithRef/data/121p-shift-180-180-0.roi +0 -0
  67. data/example/SingleParticlesWithRef/data/121p-shift-180-240-0.roi +0 -0
  68. data/example/SingleParticlesWithRef/data/121p-shift-180-300-0.roi +0 -0
  69. data/example/SingleParticlesWithRef/data/121p-shift-180-60-0.roi +0 -0
  70. data/example/SingleParticlesWithRef/data/121p-shift-240-0-0.roi +0 -0
  71. data/example/SingleParticlesWithRef/data/121p-shift-240-120-0.roi +0 -0
  72. data/example/SingleParticlesWithRef/data/121p-shift-240-180-0.roi +0 -0
  73. data/example/SingleParticlesWithRef/data/121p-shift-240-240-0.roi +0 -0
  74. data/example/SingleParticlesWithRef/data/121p-shift-240-300-0.roi +0 -0
  75. data/example/SingleParticlesWithRef/data/121p-shift-240-60-0.roi +0 -0
  76. data/example/SingleParticlesWithRef/data/121p-shift-300-0-0.roi +0 -0
  77. data/example/SingleParticlesWithRef/data/121p-shift-300-120-0.roi +0 -0
  78. data/example/SingleParticlesWithRef/data/121p-shift-300-180-0.roi +0 -0
  79. data/example/SingleParticlesWithRef/data/121p-shift-300-240-0.roi +0 -0
  80. data/example/SingleParticlesWithRef/data/121p-shift-300-300-0.roi +0 -0
  81. data/example/SingleParticlesWithRef/data/121p-shift-300-60-0.roi +0 -0
  82. data/example/SingleParticlesWithRef/data/121p-shift-60-0-0.roi +0 -0
  83. data/example/SingleParticlesWithRef/data/121p-shift-60-120-0.roi +0 -0
  84. data/example/SingleParticlesWithRef/data/121p-shift-60-180-0.roi +0 -0
  85. data/example/SingleParticlesWithRef/data/121p-shift-60-240-0.roi +0 -0
  86. data/example/SingleParticlesWithRef/data/121p-shift-60-300-0.roi +0 -0
  87. data/example/SingleParticlesWithRef/data/121p-shift-60-60-0.roi +0 -0
  88. data/example/SingleParticlesWithRef/data/121p-shift-noise-0-0-0.roi +0 -0
  89. data/example/SingleParticlesWithRef/data/121p-shift-noise-0-120-0.roi +0 -0
  90. data/example/SingleParticlesWithRef/data/121p-shift-noise-0-180-0.roi +0 -0
  91. data/example/SingleParticlesWithRef/data/121p-shift-noise-0-240-0.roi +0 -0
  92. data/example/SingleParticlesWithRef/data/121p-shift-noise-0-300-0.roi +0 -0
  93. data/example/SingleParticlesWithRef/data/121p-shift-noise-0-60-0.roi +0 -0
  94. data/example/SingleParticlesWithRef/data/121p-shift-noise-120-0-0.roi +0 -0
  95. data/example/SingleParticlesWithRef/data/121p-shift-noise-120-120-0.roi +0 -0
  96. data/example/SingleParticlesWithRef/data/121p-shift-noise-120-180-0.roi +0 -0
  97. data/example/SingleParticlesWithRef/data/121p-shift-noise-120-240-0.roi +0 -0
  98. data/example/SingleParticlesWithRef/data/121p-shift-noise-120-300-0.roi +0 -0
  99. data/example/SingleParticlesWithRef/data/121p-shift-noise-120-60-0.roi +0 -0
  100. data/example/SingleParticlesWithRef/data/121p-shift-noise-180-0-0.roi +0 -0
  101. data/example/SingleParticlesWithRef/data/121p-shift-noise-180-120-0.roi +0 -0
  102. data/example/SingleParticlesWithRef/data/121p-shift-noise-180-180-0.roi +0 -0
  103. data/example/SingleParticlesWithRef/data/121p-shift-noise-180-240-0.roi +0 -0
  104. data/example/SingleParticlesWithRef/data/121p-shift-noise-180-300-0.roi +0 -0
  105. data/example/SingleParticlesWithRef/data/121p-shift-noise-180-60-0.roi +0 -0
  106. data/example/SingleParticlesWithRef/data/121p-shift-noise-240-0-0.roi +0 -0
  107. data/example/SingleParticlesWithRef/data/121p-shift-noise-240-120-0.roi +0 -0
  108. data/example/SingleParticlesWithRef/data/121p-shift-noise-240-180-0.roi +0 -0
  109. data/example/SingleParticlesWithRef/data/121p-shift-noise-240-240-0.roi +0 -0
  110. data/example/SingleParticlesWithRef/data/121p-shift-noise-240-300-0.roi +0 -0
  111. data/example/SingleParticlesWithRef/data/121p-shift-noise-240-60-0.roi +0 -0
  112. data/example/SingleParticlesWithRef/data/121p-shift-noise-300-0-0.roi +0 -0
  113. data/example/SingleParticlesWithRef/data/121p-shift-noise-300-120-0.roi +0 -0
  114. data/example/SingleParticlesWithRef/data/121p-shift-noise-300-180-0.roi +0 -0
  115. data/example/SingleParticlesWithRef/data/121p-shift-noise-300-240-0.roi +0 -0
  116. data/example/SingleParticlesWithRef/data/121p-shift-noise-300-300-0.roi +0 -0
  117. data/example/SingleParticlesWithRef/data/121p-shift-noise-300-60-0.roi +0 -0
  118. data/example/SingleParticlesWithRef/data/121p-shift-noise-60-0-0.roi +0 -0
  119. data/example/SingleParticlesWithRef/data/121p-shift-noise-60-120-0.roi +0 -0
  120. data/example/SingleParticlesWithRef/data/121p-shift-noise-60-180-0.roi +0 -0
  121. data/example/SingleParticlesWithRef/data/121p-shift-noise-60-240-0.roi +0 -0
  122. data/example/SingleParticlesWithRef/data/121p-shift-noise-60-300-0.roi +0 -0
  123. data/example/SingleParticlesWithRef/data/121p-shift-noise-60-60-0.roi +0 -0
  124. data/example/SingleParticlesWithRef/data/121p-shift.pdb +3381 -0
  125. data/example/SingleParticlesWithRef/data/all.ref2d +0 -0
  126. data/example/SingleParticlesWithRef/data/all.ref3d +0 -0
  127. data/example/Sum/Sum.pione +52 -0
  128. data/example/SyntaxError/call_rule_error.pione +6 -0
  129. data/example/SyntaxError/feature_line_error.pione +7 -0
  130. data/example/SyntaxError/flow_block_error.pione +5 -0
  131. data/example/SyntaxError/input_line_error.pione +6 -0
  132. data/example/SyntaxError/invalid_rule_name.pione +6 -0
  133. data/example/SyntaxError/param_line_error.pione +7 -0
  134. data/example/SyntaxError/variable-binding-error.pione +11 -0
  135. data/lib/pione.rb +241 -0
  136. data/lib/pione/agent/basic-agent.rb +333 -0
  137. data/lib/pione/agent/broker.rb +274 -0
  138. data/lib/pione/agent/command-listener.rb +47 -0
  139. data/lib/pione/agent/input-generator.rb +194 -0
  140. data/lib/pione/agent/logger.rb +65 -0
  141. data/lib/pione/agent/process-manager.rb +38 -0
  142. data/lib/pione/agent/rule-provider.rb +64 -0
  143. data/lib/pione/agent/task-worker.rb +274 -0
  144. data/lib/pione/agent/trivial-routine-worker.rb +28 -0
  145. data/lib/pione/agent/tuple-space-client.rb +146 -0
  146. data/lib/pione/agent/tuple-space-server-client-life-checker.rb +29 -0
  147. data/lib/pione/command-option/basic-option.rb +42 -0
  148. data/lib/pione/command-option/child-process-option.rb +17 -0
  149. data/lib/pione/command-option/common-option.rb +29 -0
  150. data/lib/pione/command-option/daemon-option.rb +12 -0
  151. data/lib/pione/command-option/presence-notifier-option.rb +15 -0
  152. data/lib/pione/command-option/task-worker-owner-option.rb +17 -0
  153. data/lib/pione/command-option/tuple-space-provider-option.rb +26 -0
  154. data/lib/pione/command-option/tuple-space-provider-owner-option.rb +16 -0
  155. data/lib/pione/command-option/tuple-space-receiver-option.rb +12 -0
  156. data/lib/pione/command/basic-command.rb +126 -0
  157. data/lib/pione/command/child-process.rb +43 -0
  158. data/lib/pione/command/daemon-process.rb +18 -0
  159. data/lib/pione/command/front-owner-command.rb +37 -0
  160. data/lib/pione/command/pione-broker.rb +53 -0
  161. data/lib/pione/command/pione-clean.rb +16 -0
  162. data/lib/pione/command/pione-client.rb +273 -0
  163. data/lib/pione/command/pione-relay-account-db.rb +85 -0
  164. data/lib/pione/command/pione-relay-client-db.rb +80 -0
  165. data/lib/pione/command/pione-relay.rb +47 -0
  166. data/lib/pione/command/pione-syntax-checker.rb +103 -0
  167. data/lib/pione/command/pione-task-worker.rb +123 -0
  168. data/lib/pione/command/pione-tuple-space-provider.rb +87 -0
  169. data/lib/pione/command/pione-tuple-space-receiver.rb +55 -0
  170. data/lib/pione/command/pione-tuple-space-viewer.rb +151 -0
  171. data/lib/pione/command/tuple-space-provider-owner.rb +6 -0
  172. data/lib/pione/front/basic-front.rb +64 -0
  173. data/lib/pione/front/broker-front.rb +30 -0
  174. data/lib/pione/front/client-front.rb +28 -0
  175. data/lib/pione/front/relay-front.rb +19 -0
  176. data/lib/pione/front/task-worker-front.rb +16 -0
  177. data/lib/pione/front/task-worker-owner.rb +42 -0
  178. data/lib/pione/front/tuple-space-provider-front.rb +22 -0
  179. data/lib/pione/front/tuple-space-provider-owner.rb +11 -0
  180. data/lib/pione/front/tuple-space-receiver-front.rb +18 -0
  181. data/lib/pione/model/assignment.rb +89 -0
  182. data/lib/pione/model/basic-model.rb +395 -0
  183. data/lib/pione/model/binary-operator.rb +80 -0
  184. data/lib/pione/model/block.rb +233 -0
  185. data/lib/pione/model/boolean.rb +138 -0
  186. data/lib/pione/model/call-rule.rb +69 -0
  187. data/lib/pione/model/data-expr.rb +360 -0
  188. data/lib/pione/model/feature-expr.rb +794 -0
  189. data/lib/pione/model/float.rb +107 -0
  190. data/lib/pione/model/integer.rb +140 -0
  191. data/lib/pione/model/list.rb +104 -0
  192. data/lib/pione/model/message.rb +80 -0
  193. data/lib/pione/model/package.rb +48 -0
  194. data/lib/pione/model/parameters.rb +282 -0
  195. data/lib/pione/model/rule-expr.rb +120 -0
  196. data/lib/pione/model/rule-io.rb +166 -0
  197. data/lib/pione/model/rule.rb +294 -0
  198. data/lib/pione/model/string.rb +111 -0
  199. data/lib/pione/model/undefined-value.rb +24 -0
  200. data/lib/pione/model/variable-table.rb +315 -0
  201. data/lib/pione/model/variable.rb +87 -0
  202. data/lib/pione/parser/block-parser.rb +83 -0
  203. data/lib/pione/parser/common-parser.rb +145 -0
  204. data/lib/pione/parser/document-parser.rb +58 -0
  205. data/lib/pione/parser/error-message.yml +4 -0
  206. data/lib/pione/parser/expr-parser.rb +266 -0
  207. data/lib/pione/parser/feature-expr-parser.rb +105 -0
  208. data/lib/pione/parser/flow-element-parser.rb +181 -0
  209. data/lib/pione/parser/literal-parser.rb +182 -0
  210. data/lib/pione/parser/rule-definition-parser.rb +163 -0
  211. data/lib/pione/parser/syntax-error.rb +61 -0
  212. data/lib/pione/patch/array-patch.rb +3 -0
  213. data/lib/pione/patch/drb-patch.rb +467 -0
  214. data/lib/pione/patch/monitor-patch.rb +16 -0
  215. data/lib/pione/patch/rinda-patch.rb +759 -0
  216. data/lib/pione/patch/uri-patch.rb +66 -0
  217. data/lib/pione/relay/receiver-socket.rb +69 -0
  218. data/lib/pione/relay/relay-account-db.rb +55 -0
  219. data/lib/pione/relay/relay-client-db.rb +53 -0
  220. data/lib/pione/relay/relay-socket.rb +215 -0
  221. data/lib/pione/relay/trampoline.rb +22 -0
  222. data/lib/pione/relay/transmitter-socket.rb +167 -0
  223. data/lib/pione/resource/basic-resource.rb +92 -0
  224. data/lib/pione/resource/dropbox-resource.rb +106 -0
  225. data/lib/pione/resource/ftp.rb +84 -0
  226. data/lib/pione/resource/local.rb +113 -0
  227. data/lib/pione/rule-handler/action-handler.rb +184 -0
  228. data/lib/pione/rule-handler/basic-handler.rb +217 -0
  229. data/lib/pione/rule-handler/flow-handler.rb +339 -0
  230. data/lib/pione/rule-handler/root-handler.rb +23 -0
  231. data/lib/pione/rule-handler/system-handler.rb +13 -0
  232. data/lib/pione/system/common.rb +22 -0
  233. data/lib/pione/system/config.rb +20 -0
  234. data/lib/pione/system/document.rb +81 -0
  235. data/lib/pione/system/file-cache.rb +150 -0
  236. data/lib/pione/system/global.rb +346 -0
  237. data/lib/pione/system/identifier.rb +61 -0
  238. data/lib/pione/system/init.rb +16 -0
  239. data/lib/pione/system/object.rb +35 -0
  240. data/lib/pione/transformer/block-transformer.rb +23 -0
  241. data/lib/pione/transformer/document-transformer.rb +36 -0
  242. data/lib/pione/transformer/expr-transformer.rb +89 -0
  243. data/lib/pione/transformer/feature-expr-transformer.rb +56 -0
  244. data/lib/pione/transformer/flow-element-transformer.rb +66 -0
  245. data/lib/pione/transformer/literal-transformer.rb +76 -0
  246. data/lib/pione/transformer/rule-definition-transformer.rb +62 -0
  247. data/lib/pione/transformer/transformer-module.rb +37 -0
  248. data/lib/pione/tuple-space/data-finder.rb +165 -0
  249. data/lib/pione/tuple-space/presence-notifier.rb +83 -0
  250. data/lib/pione/tuple-space/relay.rb +9 -0
  251. data/lib/pione/tuple-space/tuple-space-provider.rb +85 -0
  252. data/lib/pione/tuple-space/tuple-space-receiver.rb +140 -0
  253. data/lib/pione/tuple-space/tuple-space-server-interface.rb +60 -0
  254. data/lib/pione/tuple-space/tuple-space-server.rb +156 -0
  255. data/lib/pione/tuple-space/update-criteria.rb +96 -0
  256. data/lib/pione/tuple/agent-tuple.rb +10 -0
  257. data/lib/pione/tuple/attribute-tuple.rb +7 -0
  258. data/lib/pione/tuple/base-uri-tuple.rb +9 -0
  259. data/lib/pione/tuple/basic-tuple.rb +317 -0
  260. data/lib/pione/tuple/bye-tuple.rb +9 -0
  261. data/lib/pione/tuple/command-tuple.rb +9 -0
  262. data/lib/pione/tuple/data-tuple.rb +18 -0
  263. data/lib/pione/tuple/dry-run-tuple.rb +8 -0
  264. data/lib/pione/tuple/exception-tuple.rb +11 -0
  265. data/lib/pione/tuple/finished-tuple.rb +17 -0
  266. data/lib/pione/tuple/foreground-tuple.rb +7 -0
  267. data/lib/pione/tuple/log-tuple.rb +14 -0
  268. data/lib/pione/tuple/process-info-tuple.rb +9 -0
  269. data/lib/pione/tuple/request-rule-tuple.rb +9 -0
  270. data/lib/pione/tuple/rule-tuple.rb +10 -0
  271. data/lib/pione/tuple/shift-tuple.rb +13 -0
  272. data/lib/pione/tuple/task-tuple.rb +36 -0
  273. data/lib/pione/tuple/task-worker-resource-tuple.rb +9 -0
  274. data/lib/pione/tuple/working-tuple.rb +13 -0
  275. data/lib/pione/uri-scheme/basic-scheme.rb +40 -0
  276. data/lib/pione/uri-scheme/broadcast-scheme.rb +11 -0
  277. data/lib/pione/uri-scheme/dropbox-scheme.rb +9 -0
  278. data/lib/pione/uri-scheme/local-scheme.rb +28 -0
  279. data/lib/pione/util/error-report.rb +12 -0
  280. data/lib/pione/util/log.rb +79 -0
  281. data/lib/pione/util/message.rb +155 -0
  282. data/lib/pione/util/misc.rb +73 -0
  283. data/lib/pione/util/terminal.rb +78 -0
  284. data/lib/pione/util/waiter-table.rb +53 -0
  285. data/lib/pione/version.rb +3 -0
  286. data/misc/env.sh +2 -0
  287. data/misc/test-drb-stop-service.rb +34 -0
  288. data/misc/test-ensure-and-thread-kill.rb +40 -0
  289. data/misc/test-many-waiters-client.rb +56 -0
  290. data/misc/test-many-waiters-server.rb +14 -0
  291. data/misc/write_and_take_test.png +0 -0
  292. data/misc/write_and_take_test.rb +36 -0
  293. data/pione.gemspec +49 -0
  294. data/test/agent/spec_basic-agent.rb +170 -0
  295. data/test/agent/spec_broker.rb +36 -0
  296. data/test/agent/spec_command-listener.rb +30 -0
  297. data/test/agent/spec_input-generator.rb +123 -0
  298. data/test/agent/spec_logger.rb +71 -0
  299. data/test/agent/spec_rule-provider.rb +65 -0
  300. data/test/agent/spec_task-worker.rb +307 -0
  301. data/test/agent/spec_tuple-space-client.rb +30 -0
  302. data/test/model/spec_assignment.rb +51 -0
  303. data/test/model/spec_binary-operator.rb +39 -0
  304. data/test/model/spec_block.rb +154 -0
  305. data/test/model/spec_boolean.rb +115 -0
  306. data/test/model/spec_call-rule.rb +23 -0
  307. data/test/model/spec_data-expr.rb +312 -0
  308. data/test/model/spec_feature-expr.rb +359 -0
  309. data/test/model/spec_feature-expr.yml +16 -0
  310. data/test/model/spec_float.rb +141 -0
  311. data/test/model/spec_integer.rb +141 -0
  312. data/test/model/spec_list.rb +26 -0
  313. data/test/model/spec_message.rb +42 -0
  314. data/test/model/spec_package.rb +15 -0
  315. data/test/model/spec_parameters.rb +148 -0
  316. data/test/model/spec_rule-expr.rb +66 -0
  317. data/test/model/spec_rule-io.rb +32 -0
  318. data/test/model/spec_rule.rb +158 -0
  319. data/test/model/spec_string.rb +106 -0
  320. data/test/model/spec_variable-table.rb +117 -0
  321. data/test/model/spec_variable.rb +84 -0
  322. data/test/parser/spec_block-parser.rb +5 -0
  323. data/test/parser/spec_block-parser.yml +85 -0
  324. data/test/parser/spec_common-parser.rb +281 -0
  325. data/test/parser/spec_expr-parser.rb +6 -0
  326. data/test/parser/spec_expr-parser.yml +82 -0
  327. data/test/parser/spec_feature-expr-parser.rb +32 -0
  328. data/test/parser/spec_feature-expr-parser.yml +25 -0
  329. data/test/parser/spec_flow-element-parser.rb +5 -0
  330. data/test/parser/spec_flow-element-parser.yml +180 -0
  331. data/test/parser/spec_literal-parser.rb +5 -0
  332. data/test/parser/spec_literal-parser.yml +123 -0
  333. data/test/parser/spec_rule-definition-parser.rb +5 -0
  334. data/test/parser/spec_rule-definition-parser.yml +93 -0
  335. data/test/patch/spec_rinda-patch.rb +32 -0
  336. data/test/patch/spec_uri-patch.rb +23 -0
  337. data/test/rule-handler/spec_action-handler.rb +135 -0
  338. data/test/rule-handler/spec_flow-handler.rb +127 -0
  339. data/test/spec_common.rb +14 -0
  340. data/test/spec_data-finder.rb +88 -0
  341. data/test/spec_data-finder.yml +115 -0
  342. data/test/spec_document.rb +76 -0
  343. data/test/spec_identifier.rb +29 -0
  344. data/test/spec_log.rb +52 -0
  345. data/test/spec_object.rb +20 -0
  346. data/test/spec_resource.rb +73 -0
  347. data/test/spec_update-criteria.rb +83 -0
  348. data/test/test-util.rb +223 -0
  349. data/test/transformer/spec_block-transformer.rb +26 -0
  350. data/test/transformer/spec_expr-transformer.rb +106 -0
  351. data/test/transformer/spec_feature-expr-transformer.rb +21 -0
  352. data/test/transformer/spec_flow-element-transformer.rb +154 -0
  353. data/test/transformer/spec_literal-transformer.rb +58 -0
  354. data/test/transformer/spec_rule-definition-transformer.rb +168 -0
  355. data/test/tuple-space/spec_tuple-space-provider.rb +36 -0
  356. data/test/tuple-space/spec_tuple-space-receiver.rb +32 -0
  357. data/test/tuple-space/spec_tuple-space-server.rb +49 -0
  358. data/test/tuple/spec_basic-tuple.rb +87 -0
  359. data/test/tuple/spec_data-tuple.rb +85 -0
  360. data/test/tuple/spec_finished-tuple.rb +61 -0
  361. data/test/tuple/spec_task-tuple.rb +127 -0
  362. data/test/tuple/spec_working-tuple.rb +58 -0
  363. data/test/uri-scheme/spec_broadcast-scheme.rb +40 -0
  364. data/test/uri-scheme/spec_dropbox-scheme.rb +31 -0
  365. data/test/uri-scheme/spec_local-scheme.rb +69 -0
  366. metadata +660 -0
@@ -0,0 +1,116 @@
1
+ #
2
+ # Eos for 3D reconstrucion from 2D rois using 3D initail reference
3
+ #
4
+
5
+ #
6
+ # Variables
7
+ #
8
+
9
+ # Target structure name
10
+ $TARGET := "all"
11
+
12
+ #
13
+ # Search Area for 3D
14
+ #
15
+
16
+ # Rot1
17
+ $ROT1MIN := 0
18
+ $ROT1MAX := 359
19
+ $ROT1D := 30
20
+ $nRot1 := 12
21
+
22
+ # Rot2
23
+ $ROT2MIN := 0
24
+ $ROT2MAX := 359
25
+ $ROT2D := 30
26
+ $nRot2 := 12
27
+
28
+ # Rot3
29
+ $ROT3MIN := 0
30
+ $ROT3MAX := 0
31
+ $ROT3D := 30
32
+ $nRot3 := 1
33
+
34
+ # For 2D
35
+ $STEP := 12
36
+ $ROTMIN := 0
37
+ $ROTMAX := 359
38
+ $nROT := 360 / $STEP
39
+
40
+ # Pad size for 2D
41
+ $PAD_W := 64
42
+ $PAD_H := 64
43
+
44
+ #
45
+ # Rules
46
+ #
47
+
48
+ Rule Main
49
+ input '*.roi'.all
50
+ input '{$TARGET}.ref3d'
51
+ input '{$TARGET}.ref2d'
52
+ output '{$TARGET}.3d'
53
+ Flow
54
+ rule Create3dinfo
55
+ rule Create3dlst
56
+ rule Create3d
57
+ End
58
+
59
+ Rule Create3dinfo
60
+ input '*.roi'
61
+ input '{$TARGET}.ref2d'
62
+ output '{$*}.corinfo'
63
+ output '{$*}.fit'
64
+ output '{$*}.3dinfo'
65
+ Flow
66
+ rule ConvertRoiToPad
67
+ rule ConvertPadToCorinfo
68
+ rule ConvertCorinfoTo3dinfo
69
+ End
70
+
71
+ # .roi.pad
72
+ Rule ConvertRoiToPad
73
+ input '*.roi'
74
+ output '{$*}.pad'
75
+ Action
76
+ mrcImageWindowing -i {$*}.roi -o {$*}.mask -W 0.1 0.0 0.05 0.0 -m 18
77
+ mrcImagePad -i {$*}.mask -o {$*}.padtmp -W {$PAD_W} -H {$PAD_H} -m 3
78
+ mrcImageWindowing -i {$*}.padtmp -o {$*}.pad -W 0.1 0.0 0.1 0.0 -m 2
79
+ End
80
+
81
+ # .pad.corinfo
82
+ Rule ConvertPadToCorinfo
83
+ input '*.pad'
84
+ input '{$TARGET}.ref2d'
85
+ output '{$*}.corinfo'
86
+ output '{$*}.fit'
87
+ Action
88
+ mrcImageAutoRotationCorrelation -i {$*}.pad -r {$TARGET}.ref2d -O {$*}.corinfo -fit {$*}.fit -cor {$*}.cormap -n {$nROT} -m 18 -range {$ROTMIN} {$ROTMAX} -Iter 2 -nRot2 {$nRot2} -nRot1 {$nRot1} -nRot3 {$nRot3} 2> /dev/null
89
+ End
90
+
91
+ # .corinfo.3dinfo
92
+ Rule ConvertCorinfoTo3dinfo
93
+ input '*.corinfo'
94
+ output '{$*}.3dinfo'
95
+ Action
96
+ awk '/Cor/ { print $7,$16,$2,$3,$4,$5,$9,$11,$12}' {$*}.corinfo | sort -r | sed -e s/.pad/.fit/ > {$*}.3dinfolst
97
+ head -n 1 {$*}.3dinfolst | awk '{print $2,$3,$4,$5,$6,$1}' > {$*}.3dinfo
98
+ End
99
+
100
+ # .3dinfo.3dlst
101
+ Rule Create3dlst
102
+ input '*.3dinfo'.all
103
+ output '{$TARGET}.3dlst'
104
+ Action
105
+ cat {$I[1].join(" ")} | sort > {$TARGET}.3dlst
106
+ End
107
+
108
+ # .3dlst.3d
109
+ Rule Create3d
110
+ input '{$TARGET}.3dlst'
111
+ input '*.fit'.all
112
+ output '{$TARGET}.3d'
113
+ Action
114
+ mrc2Dto3D -I {$TARGET}.3dlst -o {$TARGET}.3d -InterpolationMode 2 -Double -DoubleCounter {$TARGET}.3dcounter -CounterThreshold 0.5 -m 1 -WeightMode 2
115
+ End
116
+
@@ -0,0 +1,400 @@
1
+ #
2
+ # Eos for 3D reconstrucion from 2D rois using 3D initail reference
3
+ #
4
+
5
+ #
6
+ # Variables
7
+ #
8
+
9
+ # Initial Reference Model
10
+ $INITIAL := "initial"
11
+
12
+ # Target structure name
13
+ $TARGET := "all"
14
+
15
+ #
16
+ # Search Area for 3D
17
+ #
18
+ $ROTMODE := "YOYS"
19
+
20
+ # Rot1
21
+ $ROT1MIN := 0
22
+ $ROT1MAX := 359
23
+ $ROT1D := 30
24
+ $nRot1 := 12
25
+
26
+ # Rot2
27
+ $ROT2MIN := 0
28
+ $ROT2MAX := 359
29
+ $ROT2D := 30
30
+ $nRot2 := 12
31
+
32
+ # Rot3
33
+ $ROT3MIN := 0
34
+ $ROT3MAX := 0
35
+ $ROT3D := 30
36
+ $nRot3 := 1
37
+
38
+ # For 2D
39
+ $STEP := 12
40
+ $ROTMIN := 0
41
+ $ROTMAX := 359
42
+ $nROT := 360 / $STEP
43
+
44
+ # Seletion Step
45
+ $COR_THRESHOLD := 0.4
46
+ $Y_SHIFT_THRESHOLD := 20
47
+
48
+ # Pad size for 2D
49
+ $PAD_W := 64
50
+ $PAD_H := 64
51
+
52
+ #
53
+ # Initial model from PDB
54
+ #
55
+ $REFSOURCE := "121p-shift"
56
+ $DELTA := 2.5
57
+ $SIZE_X := 64.0
58
+ $SIZE_Y := 64.0
59
+ $SIZE_Z := 64.0
60
+ $START_X := -1.0 * $DELTA * $SIZE_X / 2.0
61
+ $START_Y := -1.0 * $DELTA * $SIZE_Y / 2.0
62
+ $START_Z := -1.0 * $DELTA * $SIZE_Z / 2.0
63
+ $SNRATIO := 3
64
+
65
+ #
66
+ # Rules
67
+ #
68
+
69
+ Rule Main
70
+ input '{$REFSOURCE}.pdb'
71
+ output '{$TARGET}.3d'
72
+ output '{$TARGET}.ds6'
73
+ output '{$TARGET}.gnuplotcorinfolst'
74
+ output '{$TARGET}.gnuplotanglelst'
75
+ output '{$TARGET}.gnuplotshiftlst'
76
+ output '{$TARGET}.mon'
77
+ Flow
78
+ rule Init
79
+ rule First
80
+ rule All
81
+ End
82
+
83
+
84
+ #
85
+ # Init
86
+ #
87
+
88
+ Rule Init
89
+ input '{$REFSOURCE}.pdb'
90
+ output '{$INITIAL}.3d'
91
+ output '*.roi'.all
92
+ Flow
93
+ rule CreateInitialModel
94
+ rule CreateTestData.params({rot1: 0, rot2: 0, rot3: 0})
95
+ End
96
+
97
+ # InitialModel
98
+ Rule CreateInitialModel
99
+ input '{$REFSOURCE}.pdb'
100
+ output '{$INITIAL}.3d'
101
+ Action
102
+ pdb2mrc -i {$REFSOURCE}.pdb -o {$INITIAL}.3d -nx {$SIZE_X.as_int} -ny {$SIZE_Y.as_int} -nz {$SIZE_Z.as_int} -Sx {$START_X.as_int} -Sy {$START_Y.as_int} -Sz {$START_Z.as_int} -dx {$DELTA} -dy {$DELTA} -dz {$DELTA} -m 1
103
+ End
104
+
105
+ # TestData
106
+ Rule CreateTestData
107
+ input '{$INITIAL}.3d'
108
+ output '*.roi'.all
109
+ param $rot1
110
+ param $rot2
111
+ param $rot3
112
+ Flow
113
+ if $rot1 <= $ROT1MAX
114
+ if $rot2 <= $ROT2MAX
115
+ if $rot3 <= $ROT3MAX
116
+ if ((($rot1 + $ROT1D*2) > $ROT1MAX) and (($rot2 + $ROT2D*2) > $ROT2MAX)).not
117
+ rule CreateTestData.params({rot1: $rot1, rot2: $rot2 + $ROT2D*2, rot3: $ROT3MIN})
118
+ end
119
+ rule ActionTestData.params({rot1: $rot1, rot2: $rot2, rot3: $rot3})
120
+ rule ActionTestDataNoise.params({rot1: $rot1, rot2: $rot2, rot3: $rot3})
121
+ else
122
+ end
123
+ else
124
+ rule CreateTestData.params({rot1: $rot1 + $ROT1D*2, rot2: $ROT2MIN, rot3: $ROT3MIN})
125
+ end
126
+ end
127
+ End
128
+
129
+ Rule ActionTestData
130
+ input '{$INITIAL}.3d'
131
+ output '{$REFSOURCE}-{$rot1}-{$rot2}-{$rot3}.roi'
132
+ param $rot1
133
+ param $rot2
134
+ param $rot3
135
+ Action
136
+ mrc3Dto2D -i {$INITIAL}.3d -o {$REFSOURCE}-{$rot1}-{$rot2}-{$rot3}.roi \
137
+ -InterpolationMode 2 -EulerMode {$ROTMODE} \
138
+ -Rot1 {$rot1} {$rot1} 1 -Rot2 {$rot2} {$rot2} 1 -Rot3 {$rot3} {$rot3} 1
139
+ End
140
+
141
+ Rule ActionTestDataNoise
142
+ input '{$REFSOURCE}-{$rot1}-{$rot2}-{$rot3}.roi'
143
+ output '{$REFSOURCE}-noise-{$rot1}-{$rot2}-{$rot3}.roi'
144
+ param $rot1
145
+ param $rot2
146
+ param $rot3
147
+ Action
148
+ mrcImageNoiseAdd -i {$I[1]} -o {$O[1]} -SN {$SNRATIO};
149
+ End
150
+
151
+ #
152
+ # First
153
+ #
154
+
155
+ Rule First
156
+ input '{$INITIAL}.3d'
157
+ output '{$TARGET}.ref3d'.all
158
+ output '{$TARGET}.ref2d'.all
159
+ Flow
160
+ rule CreateRef3d
161
+ rule CreateRef2d
162
+ End
163
+
164
+ Rule CreateRef3d
165
+ input '{$INITIAL}.3d'
166
+ output '{$TARGET}.ref3d'
167
+ Action
168
+ cp {$INITIAL}.3d {$TARGET}.ref3d
169
+ End
170
+
171
+ Rule CreateRef2d
172
+ input '{$TARGET}.ref3d'
173
+ output '{$TARGET}.ref2d'
174
+ Action
175
+ mrc3Dto2D -i {$TARGET}.ref3d -o {$TARGET}.ref2d -EulerMode {$ROTMODE} -InterpolationMode 2 -Rot2 {$ROT2MIN} {$ROT2MAX} {$ROT2D} -Rot1 {$ROT1MIN} {$ROT1MAX} {$ROT1D} -Rot3 {$ROT3MIN} {$ROT3MAX} {$ROT3D} -m 0
176
+ End
177
+
178
+ #
179
+ # All
180
+ #
181
+
182
+ Rule All
183
+ input '*.roi'.all
184
+ input '{$TARGET}.ref3d'
185
+ input '{$TARGET}.ref2d'
186
+ output '{$TARGET}.3d'
187
+ output '{$TARGET}.ds6'
188
+ output '{$TARGET}.gnuplotcorinfolst'
189
+ output '{$TARGET}.gnuplotanglelst'
190
+ output '{$TARGET}.gnuplotshiftlst'
191
+ output '{$TARGET}.mon'
192
+ Flow
193
+ rule Create3dinfo
194
+ rule Create3dlst
195
+ rule Create3d
196
+ rule CreateDs6
197
+ rule CreateParcorinfoSort
198
+ rule CreatePlotData
199
+ rule CreateMontageList
200
+ End
201
+
202
+
203
+ #
204
+ # 3dinfo
205
+ #
206
+
207
+ Rule Create3dinfo
208
+ input '*.roi'
209
+ input '{$TARGET}.ref2d'
210
+ output '{$*}.corinfo'
211
+ output '{$*}.fit'
212
+ output '{$*}.3dinfo'
213
+ Flow
214
+ rule ConvertRoiToPad
215
+ rule ConvertPadToCorinfo
216
+ rule ConvertCorinfoTo3dinfo
217
+ End
218
+
219
+ # .roi.pad
220
+ Rule ConvertRoiToPad
221
+ input '*.roi'
222
+ output '{$*}.pad'
223
+ Action
224
+ mrcImageWindowing -i {$*}.roi -o {$*}.mask -W 0.1 0.0 0.05 0.0 -m 18
225
+ mrcImagePad -i {$*}.mask -o {$*}.padtmp -W {$PAD_W} -H {$PAD_H} -m 3
226
+ mrcImageWindowing -i {$*}.padtmp -o {$*}.pad -W 0.1 0.0 0.1 0.0 -m 2
227
+ End
228
+
229
+ # .pad.corinfo
230
+ Rule ConvertPadToCorinfo
231
+ input '*.pad'
232
+ input '{$TARGET}.ref2d'
233
+ output '{$*}.corinfo'
234
+ output '{$*}.fit'
235
+ Action
236
+ mrcImageAutoRotationCorrelation -i {$*}.pad -r {$TARGET}.ref2d -O {$*}.corinfo -fit {$*}.fit -cor {$*}.cormap -n {$nROT} -m 18 -range {$ROTMIN} {$ROTMAX} -Iter 2 -nRot2 {$nRot2} -nRot1 {$nRot1} -nRot3 {$nRot3} 2> /dev/null
237
+ End
238
+
239
+ # .corinfo.3dinfo
240
+ Rule ConvertCorinfoTo3dinfo
241
+ input '*.corinfo'
242
+ output '{$*}.3dinfo'
243
+ Action
244
+ awk '/Cor/ { print $7,$16,$2,$3,$4,$5,$9,$11,$12}' {$*}.corinfo | sort -r | sed -e s/.pad/.fit/ > {$*}.3dinfolst
245
+ head -n 1 {$*}.3dinfolst | awk '{print $2,$3,$4,$5,$6,$1}' > {$*}.3dinfo
246
+ End
247
+
248
+ #
249
+ # 3dlst
250
+ #
251
+
252
+ # .3dinfo.3dlst
253
+ Rule Create3dlst
254
+ input '*.3dinfo'.all
255
+ output '{$TARGET}.3dlst'
256
+ Action
257
+ cat {$I[1].join(" ")} > {$TARGET}.3dlst
258
+ End
259
+
260
+ # .3dlst.3d
261
+ Rule Create3d
262
+ input '{$TARGET}.3dlst'
263
+ input '*.fit'.all
264
+ output '{$TARGET}.3d'
265
+ Action
266
+ mrc2Dto3D -I {$TARGET}.3dlst -o {$TARGET}.3d -InterpolationMode 2 -Double -DoubleCounter {$TARGET}.3dcounter -CounterThreshold 0.5 -m 1 -WeightMode 2
267
+ End
268
+
269
+ #
270
+ # Ds6
271
+ #
272
+
273
+ Rule CreateDs6
274
+ input '{$TARGET}.3d'
275
+ output '{$TARGET}.ds6'
276
+ Flow
277
+ rule Convert3dTo3dsm
278
+ rule Convert3dsmTo3dsmCenter
279
+ rule Convert3dsmCenterToDs6
280
+ End
281
+
282
+ # .3d.3dsm
283
+ Rule Convert3dTo3dsm
284
+ input '{$TARGET}.3d'
285
+ output '{$TARGET}.3dsm'
286
+ Action
287
+ mrcImageSmoothing -i {$TARGET}.3d -o {$TARGET}.3dsm -m 1 -M 1 -r 3
288
+ End
289
+
290
+ # .3dsm.3dsmCenter
291
+ Rule Convert3dsmTo3dsmCenter
292
+ input '{$TARGET}.3dsm'
293
+ output '{$TARGET}.3dsmCenter'
294
+ Action
295
+ mrcImageCenterGet -i {$TARGET}.3dsm -o {$TARGET}.3dsmCenter -Nx 64 -Ny 64 -Nz 64
296
+ End
297
+
298
+ # .3dsmCenter.ds6
299
+ Rule Convert3dsmCenterToDs6
300
+ input '{$TARGET}.3dsmCenter'
301
+ output '{$TARGET}.ds6'
302
+ Action
303
+ mrc2map -i {$TARGET}.3dsmCenter -o {$TARGET}.ds6 -m 3
304
+ End
305
+
306
+ #
307
+ # ParcorinfoSort
308
+ #
309
+
310
+ Rule CreateParcorinfoSort
311
+ input '*.corinfo'.all
312
+ output '{$TARGET}.parcorinfolst'
313
+ Flow
314
+ rule ConvertCorinfoToCorinfo2
315
+ rule CreateParcorinfolst
316
+ rule ConvertParcorinfolstToParcorinfoSort
317
+ rule ConvertParcorinfolstsortToSelectParticle
318
+ End
319
+
320
+ # .corinfo.corinfo2
321
+ Rule ConvertCorinfoToCorinfo2
322
+ input '*.corinfo'
323
+ output '{$*}.corinfo2'
324
+ Action
325
+ awk '/Cor/ { print $18,$16,$2,$3,$4,$5,$9,$11,$12}' {$*}.corinfo | sort -r | sed -e 's/.roi/.fit/' > {$*}.corinfolst
326
+ head -n 1 {$*}.corinfolst | awk '{if({$PAD_W}-$8>=$8&&{$PAD_H}-$9>=$9) print $1,$2,$3,$4,$5,$6,$7,0+$8,0+$9;else if({$PAD_W}-$8>=$8) print $1,$2,$3,$4,$5,$6,$7,0+$8,{$PAD_H}-$9;else if({$PAD_H}-$9>=$9) print $1,$2,$3,$4,$5,$6,$7,{$PAD_W}-$8,0+$9;else print $1,$2,$3,$4,$5,$6,$7,{$PAD_W}-$8,{$PAD_H}-$9}' > {$*}.corinfo2
327
+ End
328
+
329
+ # .corinfo2.parcorinfolst
330
+ Rule CreateParcorinfolst
331
+ input '*.corinfo2'.all
332
+ output '{$TARGET}.parcorinfolst'
333
+ Action
334
+ cat {$I[1].join(" ")} > {$TARGET}.parcorinfolst
335
+ End
336
+
337
+ # ConvertParcorinfolstToParcorinfoSort
338
+ Rule ConvertParcorinfolstToParcorinfoSort
339
+ input '{$TARGET}.parcorinfolst'
340
+ output '{$TARGET}.parcorinfolstsort'
341
+ Action
342
+ awk '{ print $1,$2,$3,$4,$5,$6,$7,$8,$9}' {$TARGET}.parcorinfolst | sort -r > {$TARGET}.parcorinfolstsort
343
+ End
344
+
345
+ # ConvertParcorinfolstsortToSelectParticle
346
+ Rule ConvertParcorinfolstsortToSelectParticle
347
+ input '{$TARGET}.parcorinfolstsort'
348
+ output '{$TARGET}.3dlstselect'
349
+ Action
350
+ awk '$1 >= {$COR_THRESHOLD} || $9 <= {$Y_SHIFT_THRESHOLD}{print $2,$3,$4,$5,$6,$1}' {$TARGET}.parcorinfolstsort > {$TARGET}.3dlstselect
351
+ End
352
+
353
+ #
354
+ # Plot data
355
+ #
356
+
357
+ Rule CreatePlotData
358
+ input '{$TARGET}.parcorinfolst'
359
+ output '{$TARGET}.gnuplotcorinfolst'
360
+ output '{$TARGET}.gnuplotanglelst'
361
+ output '{$TARGET}.gnuplotshiftlst'
362
+ Flow
363
+ rule CreateGnuplotCorinfo
364
+ rule CreateGnuplotAngle
365
+ rule CreateGnuplotShift
366
+ End
367
+
368
+ Rule CreateGnuplotCorinfo
369
+ input '{$TARGET}.parcorinfolst'
370
+ output '{$TARGET}.gnuplotcorinfolst'
371
+ Action
372
+ awk '{ print $1,$9}' {$TARGET}.parcorinfolst | sort -r > {$TARGET}.gnuplotcorinfolst
373
+ End
374
+
375
+ Rule CreateGnuplotAngle
376
+ input '{$TARGET}.parcorinfolst'
377
+ output '{$TARGET}.gnuplotanglelst'
378
+ Action
379
+ awk '{ print $4,$5}' {$TARGET}.parcorinfolst > {$TARGET}.gnuplotanglelst
380
+ End
381
+
382
+ Rule CreateGnuplotShift
383
+ input '{$TARGET}.parcorinfolst'
384
+ output '{$TARGET}.gnuplotshiftlst'
385
+ Action
386
+ awk '{ print $4,$5}' {$TARGET}.parcorinfolst > {$TARGET}.gnuplotshiftlst
387
+ End
388
+
389
+ #
390
+ # Montage list
391
+ #
392
+
393
+ Rule CreateMontageList
394
+ input '{$TARGET}.3dlst'
395
+ input '*.fit'.all
396
+ output '{$TARGET}.mon'
397
+ Action
398
+ awk '{ print $1}' {$TARGET}.3dlst > {$TARGET}.monlst
399
+ mrcImageMontageCreate -i {$TARGET}.monlst -o {$TARGET}.mon -nx 15 -ny 10
400
+ End