grnsight 4.0.0 → 6.0.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 (458) hide show
  1. package/.travis.yml +3 -1
  2. package/GRNsight - Beta.html +194 -0
  3. package/Gemfile.lock +259 -0
  4. package/README.md +2 -2
  5. package/_gh_pages/about.html +360 -45
  6. package/_gh_pages/assets/css/footer.css +3 -0
  7. package/_gh_pages/assets/css/main.css +28 -14
  8. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_estimation_output_binary-no-targetless-genes_sif.png +0 -0
  9. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_estimation_output_binary_sif.png +0 -0
  10. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_graphml_3-edges-and-footer.png +0 -0
  11. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_graphml_header-and-3-nodes.png +0 -0
  12. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_graphml_output_3-edges-and-footer.png +0 -0
  13. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_graphml_output_header-and-3-nodes.png +0 -0
  14. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_input_binary-no-targetless-genes_sif.png +0 -0
  15. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_input_binary_sif.png +0 -0
  16. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_input_concatenated-no-targetless-genes_sif.png +0 -0
  17. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_input_concatenated_sif.png +0 -0
  18. package/_gh_pages/assets/images/Choe-Shin_CMSI402-poster-session_20180430.jpg +0 -0
  19. package/_gh_pages/assets/images/Choe_SCCUR_2017.jpg +0 -0
  20. package/_gh_pages/assets/images/Dahlquist-Choe-Shin_CMSI402-poster-session_20180430.jpg +0 -0
  21. package/_gh_pages/assets/images/Dionisio-Dahlquist_GRNsight-shades_20170506.jpg +0 -0
  22. package/_gh_pages/assets/images/Klein_Samdarshi_TriBeta_2018_20180317.jpg +0 -0
  23. package/_gh_pages/assets/images/Shin_SCCUR_2017.jpg +0 -0
  24. package/{documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure1_zoom145_900pix-wide.png → _gh_pages/assets/images/demo-3_network-sheet.png} +0 -0
  25. package/{documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure2_zoom145_900pix-wide.png → _gh_pages/assets/images/demo-4_network-optimized-weights-sheet.png} +0 -0
  26. package/_gh_pages/assets/images/gene-pages-0.png +0 -0
  27. package/_gh_pages/assets/images/gene-pages-1.png +0 -0
  28. package/_gh_pages/assets/images/gene-pages-2.png +0 -0
  29. package/_gh_pages/assets/images/gene-pages-3.png +0 -0
  30. package/_gh_pages/assets/images/grnsight2020.png +0 -0
  31. package/_gh_pages/assets/images/v3demo2-grid+nodecoloring.png +0 -0
  32. package/_gh_pages/assets/images/v3demo2-nodecoloring.png +0 -0
  33. package/_gh_pages/assets/images/v3demo2.png +0 -0
  34. package/_gh_pages/assets/js/ga-report.js +11 -11
  35. package/_gh_pages/assets/js/iframeResizer.min.js +9 -0
  36. package/_gh_pages/assets/js/main.js +43 -43
  37. package/_gh_pages/beta.html +29 -24
  38. package/_gh_pages/contact.html +31 -31
  39. package/_gh_pages/coverage/coverage.json +1 -0
  40. package/_gh_pages/coverage/coverage.raw.json +1 -0
  41. package/_gh_pages/coverage/lcov-report/base.css +223 -0
  42. package/_gh_pages/coverage/lcov-report/block-navigation.js +63 -0
  43. package/_gh_pages/coverage/lcov-report/controllers/additional-sheet-parser.js.html +330 -0
  44. package/_gh_pages/coverage/lcov-report/controllers/constants.js.html +243 -0
  45. package/_gh_pages/coverage/lcov-report/controllers/export-controller.js.html +285 -0
  46. package/_gh_pages/coverage/lcov-report/controllers/exporters/graphml.js.html +405 -0
  47. package/_gh_pages/coverage/lcov-report/controllers/exporters/index.html +110 -0
  48. package/_gh_pages/coverage/lcov-report/controllers/exporters/sif.js.html +150 -0
  49. package/_gh_pages/coverage/lcov-report/controllers/helpers.js.html +114 -0
  50. package/_gh_pages/coverage/lcov-report/controllers/import-controller.js.html +233 -0
  51. package/_gh_pages/coverage/lcov-report/controllers/importers/graphml.js.html +716 -0
  52. package/_gh_pages/coverage/lcov-report/controllers/importers/index.html +106 -0
  53. package/_gh_pages/coverage/lcov-report/controllers/importers/sif.js.html +488 -0
  54. package/_gh_pages/coverage/lcov-report/controllers/index.html +162 -0
  55. package/_gh_pages/coverage/lcov-report/controllers/semantic-checker.js.html +810 -0
  56. package/_gh_pages/coverage/lcov-report/controllers/spreadsheet-controller.js.html +1779 -0
  57. package/_gh_pages/coverage/lcov-report/index.html +136 -0
  58. package/_gh_pages/coverage/lcov-report/prettify.css +1 -0
  59. package/_gh_pages/coverage/lcov-report/prettify.js +1 -0
  60. package/_gh_pages/coverage/lcov-report/server/controllers/additional-sheet-parser.js.html +330 -0
  61. package/_gh_pages/coverage/lcov-report/server/controllers/constants.js.html +243 -0
  62. package/_gh_pages/coverage/lcov-report/server/controllers/export-controller.js.html +285 -0
  63. package/_gh_pages/coverage/lcov-report/server/controllers/exporters/graphml.js.html +405 -0
  64. package/_gh_pages/coverage/lcov-report/server/controllers/exporters/index.html +110 -0
  65. package/_gh_pages/coverage/lcov-report/server/controllers/exporters/sif.js.html +150 -0
  66. package/_gh_pages/coverage/lcov-report/server/controllers/graphml-constants.js.html +585 -0
  67. package/_gh_pages/coverage/lcov-report/server/controllers/helpers.js.html +114 -0
  68. package/_gh_pages/coverage/lcov-report/server/controllers/import-controller.js.html +237 -0
  69. package/_gh_pages/coverage/lcov-report/server/controllers/importers/graphml.js.html +585 -0
  70. package/_gh_pages/coverage/lcov-report/server/controllers/importers/index.html +110 -0
  71. package/_gh_pages/coverage/lcov-report/server/controllers/importers/sif.js.html +492 -0
  72. package/_gh_pages/coverage/lcov-report/server/controllers/index.html +188 -0
  73. package/_gh_pages/coverage/lcov-report/server/controllers/semantic-checker.js.html +810 -0
  74. package/_gh_pages/coverage/lcov-report/server/controllers/spreadsheet-controller.js.html +1779 -0
  75. package/_gh_pages/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  76. package/_gh_pages/coverage/lcov-report/sorter.js +158 -0
  77. package/_gh_pages/coverage/lcov-report/web-client/public/js/grnstate.js.html +225 -0
  78. package/_gh_pages/coverage/lcov-report/web-client/public/js/index.html +97 -0
  79. package/_gh_pages/coverage/lcov.info +49 -0
  80. package/_gh_pages/documentation.html +998 -320
  81. package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.aux +47 -0
  82. package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.bbl +73 -0
  83. package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.blg +52 -0
  84. package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.log +1056 -0
  85. package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.out +7 -0
  86. package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.synctex.gz +0 -0
  87. package/_gh_pages/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_text-only_revised-Dondi.docx +0 -0
  88. package/_gh_pages/encryption/server.cert +21 -0
  89. package/_gh_pages/encryption/server.key +28 -0
  90. package/_gh_pages/favicon.ico +0 -0
  91. package/_gh_pages/index.html +45 -22
  92. package/_gh_pages/links.html +47 -28
  93. package/_gh_pages/news.html +103 -21
  94. package/_gh_pages/onlyfooter.html +78 -0
  95. package/_gh_pages/onlyheader.html +64 -0
  96. package/_gh_pages/onlysidebar.html +73 -0
  97. package/_gh_pages/package-lock.json +14048 -0
  98. package/_gh_pages/people.html +129 -40
  99. package/_gh_pages/privacy.html +23 -17
  100. package/_gh_pages/publications.html +75 -33
  101. package/_gh_pages/robots.txt +1 -0
  102. package/_gh_pages/sitemap.xml +87 -74
  103. package/_gh_pages/test-files/import-samples/attributes.graphml +40 -0
  104. package/_gh_pages/test-files/import-samples/port.graphml +32 -0
  105. package/_gh_pages/test-files/import-samples/simple.graphml +31 -0
  106. package/_gh_pages/web-client/public/js/grnsight.min.js +2347 -0
  107. package/_gh_pages/web-client/public/stylesheets/grnsight.css +443 -0
  108. package/coverage/coverage.json +1 -1
  109. package/coverage/lcov.info +1847 -1142
  110. package/database/README.md +1 -0
  111. package/database/network-database/README.md +44 -0
  112. package/database/network-database/schema.sql +24 -0
  113. package/database/network-database/scripts/filter_genes.py +76 -0
  114. package/database/network-database/scripts/generate_network.py +199 -0
  115. package/database/network-database/scripts/generate_sgd_network_from_yeastract_network.py +120 -0
  116. package/database/network-database/scripts/loader.py +78 -0
  117. package/package.json +20 -11
  118. package/server/app.js +7 -2
  119. package/server/config/config.js +12 -3
  120. package/server/controllers/additional-sheet-parser.js +292 -55
  121. package/server/controllers/constants.js +4 -37
  122. package/server/controllers/custom-workbook-controller.js +66 -0
  123. package/server/controllers/demo-workbooks.js +5973 -0
  124. package/server/controllers/export-constants.js +78 -0
  125. package/server/controllers/export-controller.js +4 -3
  126. package/server/controllers/exporters/graphml.js +15 -15
  127. package/server/controllers/exporters/sif.js +7 -7
  128. package/server/controllers/exporters/xlsx.js +110 -34
  129. package/server/controllers/expression-database-controller.js +19 -0
  130. package/server/controllers/expression-sheet-parser.js +170 -0
  131. package/server/controllers/graphml-constants.js +0 -17
  132. package/server/controllers/helpers.js +25 -1
  133. package/server/controllers/import-controller.js +2 -2
  134. package/server/controllers/importers/graphml.js +17 -20
  135. package/server/controllers/importers/sif.js +22 -18
  136. package/server/controllers/network-database-controller.js +18 -0
  137. package/server/controllers/network-sheet-parser.js +307 -0
  138. package/server/controllers/semantic-checker.js +30 -162
  139. package/server/controllers/sif-constants.js +36 -0
  140. package/server/controllers/spreadsheet-controller.js +277 -425
  141. package/server/controllers/workbook-constants.js +521 -0
  142. package/server/dals/expression-dal.js +122 -0
  143. package/server/dals/network-dal.js +96 -0
  144. package/test/additional-sheet-parser-tests.js +147 -38
  145. package/test/api-tests.js +3 -6
  146. package/test/errors-adjacency-matrix-modifications.js +30 -29
  147. package/test/errors-graph-tests.js +4 -4
  148. package/test/errors-sheet-modifications.js +10 -2
  149. package/test/export-tests.js +187 -60
  150. package/test/expression-data-import-tests.js +113 -0
  151. package/test/grnstate-tests.js +8 -2
  152. package/test/import-graphml-tests.js +59 -40
  153. package/test/import-sif-tests.js +50 -37
  154. package/test/test.js +554 -91
  155. package/test/warnings-adjacency-matrix-modifications.js +8 -7
  156. package/test-files/additional-sheet-test-files/optimization-diagnostics-default.xlsx +0 -0
  157. package/test-files/additional-sheet-test-files/optimization-diagnostics-extraneous-data.xlsx +0 -0
  158. package/test-files/additional-sheet-test-files/optimization-diagnostics-incorrect-MSE-gene-header.xlsx +0 -0
  159. package/test-files/additional-sheet-test-files/optimization-diagnostics-incorrect-MSE-header.xlsx +0 -0
  160. package/test-files/additional-sheet-test-files/optimization-diagnostics-incorrect-column-headers.xlsx +0 -0
  161. package/test-files/additional-sheet-test-files/optimization-diagnostics-invalid-MSE-data.xlsx +0 -0
  162. package/test-files/additional-sheet-test-files/optimization-diagnostics-invalid-value.xlsx +0 -0
  163. package/test-files/additional-sheet-test-files/optimization-diagnostics-missing-MSE-data.xlsx +0 -0
  164. package/test-files/additional-sheet-test-files/optimization-diagnostics-missing-column-headers.xlsx +0 -0
  165. package/test-files/additional-sheet-test-files/optimization-diagnostics-missing-header.xlsx +0 -0
  166. package/test-files/additional-sheet-test-files/optimization-diagnostics-unknown-parameter.xlsx +0 -0
  167. package/test-files/additional-sheet-test-files/optimization-parameters-default.xlsx +0 -0
  168. package/test-files/additional-sheet-test-files/optimization-parameters-incorrect-headers.xlsx +0 -0
  169. package/test-files/additional-sheet-test-files/optimization-parameters-invalid-optimization-parameter.xlsx +0 -0
  170. package/test-files/additional-sheet-test-files/optimization-parameters-missing-headers.xlsx +0 -0
  171. package/test-files/additional-sheet-test-files/optimization-parameters-unknown-parameter.xlsx +0 -0
  172. package/test-files/additional-sheet-test-files/two-column-sheets-extraneous-data.xlsx +0 -0
  173. package/test-files/additional-sheet-test-files/two-column-sheets-incorrect-cell-A1.xlsx +0 -0
  174. package/test-files/additional-sheet-test-files/two-column-sheets-incorrect-column-header.xlsx +0 -0
  175. package/test-files/additional-sheet-test-files/two-column-sheets-invalid-gene-length.xlsx +0 -0
  176. package/test-files/additional-sheet-test-files/two-column-sheets-invalid-gene-type.xlsx +0 -0
  177. package/test-files/additional-sheet-test-files/two-column-sheets-invalid-value.xlsx +0 -0
  178. package/test-files/additional-sheet-test-files/two-column-sheets-missing-column-header.xlsx +0 -0
  179. package/test-files/additional-sheet-test-files/two-column-sheets-special-character.xlsx +0 -0
  180. package/test-files/adjacency-matrix-modifications/asymmetric-gene-order-input.xlsx +0 -0
  181. package/test-files/adjacency-matrix-modifications/asymmetric-gene-order-output.xlsx +0 -0
  182. package/test-files/adjacency-matrix-modifications/extra-column-adjacent-input.xlsx +0 -0
  183. package/test-files/adjacency-matrix-modifications/extra-column-adjacent-output.xlsx +0 -0
  184. package/test-files/adjacency-matrix-modifications/extra-column-end-of-sheet-input.xlsx +0 -0
  185. package/test-files/adjacency-matrix-modifications/extra-column-end-of-sheet-output.xlsx +0 -0
  186. package/test-files/adjacency-matrix-modifications/extra-data-random-cell-both-output.xlsx +0 -0
  187. package/test-files/adjacency-matrix-modifications/extra-data-random-cell-network-only-input.xlsx +0 -0
  188. package/test-files/adjacency-matrix-modifications/extra-data-random-cell-network-only-output.xlsx +0 -0
  189. package/test-files/adjacency-matrix-modifications/extra-data-random-cell-network-optimized-only-output.xlsx +0 -0
  190. package/test-files/adjacency-matrix-modifications/extra-row-end-of-sheet-input.xlsx +0 -0
  191. package/test-files/adjacency-matrix-modifications/extra-row-end-of-sheet-output.xlsx +0 -0
  192. package/test-files/adjacency-matrix-modifications/incorrect-network-cell-A1.xlsx +0 -0
  193. package/test-files/adjacency-matrix-modifications/missing-column-end-input.xlsx +0 -0
  194. package/test-files/adjacency-matrix-modifications/missing-column-end-output.xlsx +0 -0
  195. package/test-files/adjacency-matrix-modifications/missing-data-input.xlsx +0 -0
  196. package/test-files/adjacency-matrix-modifications/missing-data-output.xlsx +0 -0
  197. package/test-files/adjacency-matrix-modifications/missing-row-end-input.xlsx +0 -0
  198. package/test-files/adjacency-matrix-modifications/missing-row-end-output.xlsx +0 -0
  199. package/test-files/adjacency-matrix-modifications/missing-row-middle-input.xlsx +0 -0
  200. package/test-files/adjacency-matrix-modifications/missing-row-middle-output.xlsx +0 -0
  201. package/test-files/adjacency-matrix-modifications/missing-value-bottom-corner-input.xlsx +0 -0
  202. package/test-files/adjacency-matrix-modifications/missing-value-bottom-corner-output.xlsx +0 -0
  203. package/test-files/adjacency-matrix-modifications/value-replaced-w-spaces-both-output.xlsx +0 -0
  204. package/test-files/adjacency-matrix-modifications/value-replaced-w-spaces-net-only-input.xlsx +0 -0
  205. package/test-files/adjacency-matrix-modifications/value-replaced-w-spaces-net-op-only-output.xlsx +0 -0
  206. package/test-files/adjacency-matrix-modifications/value-replaced/342/200/223w-spaces-net-only-output.xlsx +0 -0
  207. package/test-files/demo-files/15-genes_28-edges_db5_Dahlquist-data_estimation_output.xlsx +0 -0
  208. package/test-files/demo-files/15-genes_28-edges_db5_Dahlquist-data_input.xlsx +0 -0
  209. package/test-files/expression-data-test-sheets/expression_sheet_correct_numbering.xlsx +0 -0
  210. package/test-files/expression-data-test-sheets/expression_sheet_different_number_of_columns.xlsx +0 -0
  211. package/test-files/expression-data-test-sheets/expression_sheet_empty_column.xlsx +0 -0
  212. package/test-files/expression-data-test-sheets/expression_sheet_empty_row.xlsx +0 -0
  213. package/test-files/expression-data-test-sheets/expression_sheet_erroneous_data.xlsx +0 -0
  214. package/test-files/expression-data-test-sheets/expression_sheet_extra_gene_name.xlsx +0 -0
  215. package/test-files/expression-data-test-sheets/expression_sheet_incorrectly_ordered_time_points.xlsx +0 -0
  216. package/test-files/expression-data-test-sheets/expression_sheet_mismatched_case_gene_names.xlsx +0 -0
  217. package/test-files/expression-data-test-sheets/expression_sheet_mismatched_gene_names.xlsx +0 -0
  218. package/test-files/expression-data-test-sheets/expression_sheet_missing_column_header.xlsx +0 -0
  219. package/test-files/expression-data-test-sheets/expression_sheet_missing_data_error.xlsx +0 -0
  220. package/test-files/expression-data-test-sheets/expression_sheet_missing_data_ok.xlsx +0 -0
  221. package/test-files/expression-data-test-sheets/expression_sheet_missing_data_ok_export_exact.xlsx +0 -0
  222. package/test-files/expression-data-test-sheets/expression_sheet_missing_gene_name.xlsx +0 -0
  223. package/test-files/expression-data-test-sheets/expression_sheet_name_not_in_optparams.xlsx +0 -0
  224. package/test-files/expression-data-test-sheets/expression_sheet_name_not_present.xlsx +0 -0
  225. package/test-files/expression-data-test-sheets/expression_sheet_negative_time_points.xlsx +0 -0
  226. package/test-files/expression-data-test-sheets/expression_sheet_non_numerical_time_points.xlsx +0 -0
  227. package/test-files/expression-data-test-sheets/expression_sheet_not_existing.xlsx +0 -0
  228. package/test-files/expression-data-test-sheets/expression_sheet_wrong_id_label.xlsx +0 -0
  229. package/test-files/expression-data-test-sheets/expression_sheet_wrong_order_gene_names.xlsx +0 -0
  230. package/test-files/expression-data-test-sheets/expression_sheet_wrong_sheet_name_case.xlsx +0 -0
  231. package/test-files/expression-data-test-sheets/expression_sheet_wrong_sheet_name_convention.xlsx +0 -0
  232. package/test-files/gene-name-modifications/NaN-as-gene-name-input.xlsx +0 -0
  233. package/test-files/gene-name-modifications/NaN-as-gene-name-output.xlsx +0 -0
  234. package/test-files/gene-name-modifications/mismatched-case-related-input.xlsx +0 -0
  235. package/test-files/gene-name-modifications/mismatched-case-related-output.xlsx +0 -0
  236. package/test-files/gene-name-modifications/mismatched-case-unrelated-input.xlsx +0 -0
  237. package/test-files/gene-name-modifications/mismatched-case-unrelated-output.xlsx +0 -0
  238. package/test-files/graph-tests/different-sized-networks/{80-genes-0-edges.xlsx → 134-genes-0-edges.xlsx} +0 -0
  239. package/test-files/graph-tests/different-sized-networks/{45-genes-max-edges.xlsx → 44-source-genes-45-target-genes-max-edges.xlsx} +0 -0
  240. package/test-files/graph-tests/different-sized-networks/{1-gene-0-edges.xlsx → unused-files/1-gene-0-edges.xlsx} +0 -0
  241. package/test-files/graph-tests/different-sized-networks/{1-gene-1-edges.xlsx → unused-files/1-gene-1-edges.xlsx} +0 -0
  242. package/test-files/graph-tests/different-sized-networks/{10-genes-50-edges.xlsx → unused-files/10-genes-50-edges.xlsx} +0 -0
  243. package/test-files/graph-tests/different-sized-networks/{10-genes-90-edges.xlsx → unused-files/10-genes-90-edges.xlsx} +0 -0
  244. package/test-files/graph-tests/different-sized-networks/{100-genes-0-edges.xlsx → unused-files/100-genes-0-edges.xlsx} +0 -0
  245. package/test-files/graph-tests/different-sized-networks/{110-genes-0-edges.xlsx → unused-files/110-genes-0-edges.xlsx} +0 -0
  246. package/test-files/graph-tests/different-sized-networks/{120-genes-0-edges.xlsx → unused-files/120-genes-0-edges.xlsx} +0 -0
  247. package/test-files/graph-tests/different-sized-networks/{130-genes-0-edges.xlsx → unused-files/130-genes-0-edges.xlsx} +0 -0
  248. package/test-files/graph-tests/different-sized-networks/{140-genes-0-edges.xlsx → unused-files/140-genes-0-edges.xlsx} +0 -0
  249. package/test-files/graph-tests/different-sized-networks/{150-genes-10000-edges.xlsx → unused-files/150-genes-10000-edges.xlsx} +0 -0
  250. package/test-files/graph-tests/different-sized-networks/{150-genes-20000-edges.xlsx → unused-files/150-genes-20000-edges.xlsx} +0 -0
  251. package/test-files/graph-tests/different-sized-networks/{150-genes-max-edges.xlsx → unused-files/150-genes-max-edges.xlsx} +0 -0
  252. package/test-files/graph-tests/different-sized-networks/{160-genes-max-edges.xlsx → unused-files/160-genes-max-edges.xlsx} +0 -0
  253. package/test-files/graph-tests/different-sized-networks/{20-genes-max-edges.xlsx → unused-files/20-genes-max-edges.xlsx} +0 -0
  254. package/test-files/graph-tests/different-sized-networks/{25-genes-max-edges.xlsx → unused-files/25-genes-max-edges.xlsx} +0 -0
  255. package/test-files/graph-tests/different-sized-networks/{30-genes-max-edges.xlsx → unused-files/30-genes-max-edges.xlsx} +0 -0
  256. package/test-files/graph-tests/different-sized-networks/{34-genes-0-edges.xlsx → unused-files/34-genes-0-edges.xlsx} +0 -0
  257. package/test-files/graph-tests/different-sized-networks/{34-genes-40-edges.xlsx → unused-files/34-genes-40-edges.xlsx} +0 -0
  258. package/test-files/graph-tests/different-sized-networks/{34-genes-65-edges.xlsx → unused-files/34-genes-65-edges.xlsx} +0 -0
  259. package/test-files/graph-tests/different-sized-networks/{34-genes-90-edges.xlsx → unused-files/34-genes-90-edges.xlsx} +0 -0
  260. package/test-files/graph-tests/different-sized-networks/{5-genes-max-edges.xlsx → unused-files/5-genes-max-edges.xlsx} +0 -0
  261. package/test-files/graph-tests/different-sized-networks/{51-genes-max-edges.xlsx → unused-files/51-genes-max-edges.xlsx} +0 -0
  262. package/test-files/graph-tests/different-sized-networks/{52-genes-max-edges.xlsx → unused-files/52-genes-max-edges.xlsx} +0 -0
  263. package/test-files/graph-tests/different-sized-networks/{55-genes-0-edges.xlsx → unused-files/55-genes-0-edges.xlsx} +0 -0
  264. package/test-files/graph-tests/different-sized-networks/{55-genes-max-edges.xlsx → unused-files/55-genes-max-edges.xlsx} +0 -0
  265. package/test-files/graph-tests/different-sized-networks/{65-genes-0-edges.xlsx → unused-files/65-genes-0-edges.xlsx} +0 -0
  266. package/test-files/graph-tests/different-sized-networks/{7-genes-max-edges.xlsx → unused-files/7-genes-max-edges.xlsx} +0 -0
  267. package/test-files/graph-tests/different-sized-networks/{70-genes-0-edges.xlsx → unused-files/70-genes-0-edges.xlsx} +0 -0
  268. package/test-files/graph-tests/different-sized-networks/{9-genes-max-edges.xlsx → unused-files/9-genes-max-edges.xlsx} +0 -0
  269. package/test-files/graph-tests/different-sized-networks/{90-genes-0-edges.xlsx → unused-files/90-genes-0-edges.xlsx} +0 -0
  270. package/test-files/graph-tests/different-sized-networks/{regulation-matrix-documented-20140709-AllTF-all-targets.xlsx → unused-files/regulation-matrix-documented-20140709-AllTF-all-targets.xlsx} +0 -0
  271. package/test-files/node-tests/long-gene-name-no-spaces-first.xlsx +0 -0
  272. package/test-files/node-tests/long-gene-name-no-spaces-second.xlsx +0 -0
  273. package/test-files/node-tests/long-gene-name-spaces.xlsx +0 -0
  274. package/test-files/species-test-data/15-genes_28-edges_db5_Dahlquist-data_input_no-species.xlsx +0 -0
  275. package/test-files/species-test-data/15-genes_28-edges_db5_Dahlquist-data_input_with-species.xlsx +0 -0
  276. package/test-files/species-test-data/3-gene_7-edge_elegans.xlsx +0 -0
  277. package/test-files/species-test-data/3-gene_7-edge_melanogaster.xlsx +0 -0
  278. package/test-files/species-test-data/3-gene_7-edge_musculus.xlsx +0 -0
  279. package/test-files/species-test-data/3-gene_7-edge_sapiens.xlsx +0 -0
  280. package/test-files/species-test-data/kev-fake-data-sapiens-no-exp-data.xlsx +0 -0
  281. package/test-files/spreadsheet-controller-test-files/sheet-name-capitalized-network-optimized-weights.xlsx +0 -0
  282. package/test-files/spreadsheet-controller-test-files/sheet-name-capitalized-network.xlsx +0 -0
  283. package/web-client/app.js +1 -1
  284. package/web-client/controllers/main.js +1 -1
  285. package/web-client/public/favicon.ico +0 -0
  286. package/web-client/public/gene/api.js +76 -14
  287. package/web-client/public/gene/info.js +19 -8
  288. package/web-client/public/js/api/grnsight-api.js +124 -0
  289. package/web-client/public/js/constants.js +90 -17
  290. package/web-client/public/js/createNetwork.js +195 -0
  291. package/web-client/public/js/graph-statistics.js +7 -7
  292. package/web-client/public/js/graph.js +369 -324
  293. package/web-client/public/js/grnsight.js +2 -2
  294. package/web-client/public/js/grnsight.min.js +128 -59
  295. package/web-client/public/js/grnstate.js +54 -30
  296. package/web-client/public/js/iframe-coordination.js +55 -0
  297. package/web-client/public/js/setup-handlers.js +358 -18
  298. package/web-client/public/js/setup-load-and-import-handlers.js +105 -66
  299. package/web-client/public/js/update-app.js +483 -93
  300. package/web-client/public/js/upload.js +349 -32
  301. package/web-client/public/js/warnings.js +13 -51
  302. package/web-client/public/lib/iframeSizer.contentWindow.min.js +10 -0
  303. package/web-client/public/stylesheets/grnsight.styl +323 -28
  304. package/web-client/views/components/demo.pug +10 -0
  305. package/web-client/views/{graph.jade → graph.pug} +0 -0
  306. package/web-client/views/{info.jade → info.pug} +1 -5
  307. package/web-client/views/upload.pug +580 -0
  308. package/_gh_pages/Gemfile +0 -7
  309. package/_gh_pages/Gemfile.lock +0 -129
  310. package/documents/SDF/CMSI_402/spring_2014/Southwick_CMSI402_Spring2014_software-development-plan.md +0 -71
  311. package/documents/SDF/CMSI_402/spring_2014/Southwick_CMSI402_Spring2014_software-requirements-specification.md +0 -71
  312. package/documents/SDF/CMSI_402/spring_2014/use-case-diagram-spring-2014.jpg +0 -0
  313. package/documents/SDF/CMSI_402/spring_2017/Anguiano_402_Final_Presentation.pptx +0 -0
  314. package/documents/SDF/CMSI_402/spring_2017/Anguiano_402_Presentation_Final_Poster.pdf +0 -0
  315. package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_project-proposal-presentation.pptx +0 -0
  316. package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_project-proposal.docx +0 -0
  317. package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_software-development-plan.docx +0 -0
  318. package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_software-requirements-specification.docx +0 -0
  319. package/documents/SDF/CMSI_402/spring_2017/Design Review Presentation.pptx +0 -0
  320. package/documents/SDF/CMSI_402/spring_2018/0402report.docx +0 -0
  321. package/documents/SDF/CMSI_402/spring_2018/0409report.docx +0 -0
  322. package/documents/SDF/CMSI_402/spring_2018/402-gantt.png +0 -0
  323. package/documents/SDF/CMSI_402/spring_2018/402SRS_GRNSightFeedback01.txt +0 -28
  324. package/documents/SDF/CMSI_402/spring_2018/402_SPD.md +0 -223
  325. package/documents/SDF/CMSI_402/spring_2018/ChoeShinCMSI402_Final.pptx +0 -0
  326. package/documents/SDF/CMSI_402/spring_2018/ProjectProposal.md +0 -22
  327. package/documents/SDF/CMSI_402/spring_2018/SoftwareRequirementsSpecification.md +0 -88
  328. package/documents/SDF/CMSI_402/spring_2018/homework/choe_eileen/Choe_Eileen_CMSI 402_HW1.pdf +0 -0
  329. package/documents/SDF/CMSI_402/spring_2018/homework/choe_eileen/Choe_Eileen_CMSI402_HW2.pdf +0 -0
  330. package/documents/SDF/CMSI_402/spring_2018/homework/shin_jen/402hw2.docx +0 -0
  331. package/documents/SDF/CMSI_402/spring_2018/homework/shin_jen/Jen - 402Hw1.docx +0 -0
  332. package/documents/SDF/CMSI_402/spring_2018/homework/shin_jen/Jen - hw3.docx +0 -0
  333. package/documents/SDF/CMSI_402/spring_2018/writtenStatusReport.docx +0 -0
  334. package/documents/SDF/CMSI_402/spring_2018/writtenStatusReport4 +0 -0
  335. package/documents/abstracts/Anguiano_Varshneya_Undergraduate-Research-Symposium_2017_abstract.pdf +0 -0
  336. package/documents/abstracts/SIGGRAPH 2017 Abstract/ACM-Reference-Format.bst +0 -3478
  337. package/documents/abstracts/SIGGRAPH 2017 Abstract/Figure1_zoom100.png +0 -0
  338. package/documents/abstracts/SIGGRAPH 2017 Abstract/acmart.cls +0 -2352
  339. package/documents/abstracts/SIGGRAPH 2017 Abstract/acmart.ins +0 -29
  340. package/documents/abstracts/SIGGRAPH 2017 Abstract/always-weights.png +0 -0
  341. package/documents/abstracts/SIGGRAPH 2017 Abstract/auto.png +0 -0
  342. package/documents/abstracts/SIGGRAPH 2017 Abstract/networkA.png +0 -0
  343. package/documents/abstracts/SIGGRAPH 2017 Abstract/networkB-normalized.png +0 -0
  344. package/documents/abstracts/SIGGRAPH 2017 Abstract/networkB.png +0 -0
  345. package/documents/abstracts/SIGGRAPH 2017 Abstract/never-weights.png +0 -0
  346. package/documents/abstracts/SIGGRAPH 2017 Abstract/representative-image/screenshot.jpg +0 -0
  347. package/documents/abstracts/SIGGRAPH 2017 Abstract/representative-image/screenshot3x2.png +0 -0
  348. package/documents/abstracts/SIGGRAPH 2017 Abstract/representative-image/withweights3x2.png +0 -0
  349. package/documents/abstracts/SIGGRAPH 2017 Abstract/screenshot-auto.png +0 -0
  350. package/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.bib +0 -85
  351. package/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.pdf +0 -0
  352. package/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.tex +0 -235
  353. package/documents/abstracts/SWE Collegiate Competition 2017.md +0 -9
  354. package/documents/abstracts/Samdarshi_GRNsight_SoCalSysBio_Abstract_2019.docx +0 -0
  355. package/documents/abstracts/Varshneya_Samdarshi_Southern-California-Systems-Biology_2017_abstract.docx +0 -0
  356. package/documents/abstracts/~$mdarshi_SoCalSysBio_Abstract_2019.docx +0 -0
  357. package/documents/developer_documents/State Diagram.graphml +0 -3525
  358. package/documents/developer_documents/graphml/State Diagram.graphml +0 -3115
  359. package/documents/developer_documents/older_versions/GRNsight State Diagram old.png +0 -0
  360. package/documents/developer_documents/older_versions/GRNsight State Diagram.png +0 -0
  361. package/documents/developer_documents/testing_script_generator/GRNsightTestingDocument.md +0 -998
  362. package/documents/developer_documents/testing_script_generator/featureList.json +0 -496
  363. package/documents/developer_documents/testing_script_generator/testing-script-generator.js +0 -149
  364. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_conference-presentations_2016.docx +0 -0
  365. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016.docx +0 -0
  366. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016_Table1.docx +0 -0
  367. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016_references.rtf +0 -264
  368. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016_text-only.docx +0 -0
  369. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/21-genes_31-edges_Schade-data_for-screenshots.xlsx +0 -0
  370. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom100.jpg +0 -0
  371. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom100.png +0 -0
  372. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom100.psd +0 -0
  373. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145.jpg +0 -0
  374. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145.png +0 -0
  375. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145.psd +0 -0
  376. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145_900pix-wide.psd +0 -0
  377. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom100.jpg +0 -0
  378. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom100.png +0 -0
  379. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom100.psd +0 -0
  380. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145.jpg +0 -0
  381. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145.png +0 -0
  382. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145.psd +0 -0
  383. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145_900pix-wide.psd +0 -0
  384. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5A.pdf +0 -0
  385. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5B.pdf +0 -0
  386. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5C.eps +0 -0
  387. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5D.pdf +0 -0
  388. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5E.pdf +0 -0
  389. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5F.eps +0 -0
  390. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5_compiled.png +0 -0
  391. package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure3_GRNsight-Architecture.pdf +0 -0
  392. package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure4_GRNsight-Screenshot.pdf +0 -0
  393. package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure5_compiled.pdf +12 -5383
  394. package/documents/manuscripts/peerj-computerscience-2016/peerj-reviewing-10823-v0.pdf +0 -0
  395. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_conference-presentations_2016_revised.docx +0 -0
  396. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_cover-letter-and-response_2016.pdf +0 -0
  397. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_cover-letter_2016.docx +0 -0
  398. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_cover-letter_2016.pdf +0 -0
  399. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_Table1.docx +0 -0
  400. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_references_revised.rtf +0 -385
  401. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_text-only_revised.docx +0 -0
  402. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_text-only_revised_marked.docx +0 -0
  403. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_response-to-reviewers_2016.docx +0 -0
  404. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_response-to-reviewers_2016.pdf +0 -0
  405. package/documents/manuscripts/peerj-computerscience-2016/revisions/figures/Figure3_GRNsight-Architecture.pdf +0 -0
  406. package/documents/manuscripts/peerj-computerscience-2016/revisions/figures/Figure4_GRNsight-Screenshot-auto.pdf +0 -0
  407. package/documents/manuscripts/peerj-computerscience-2016/revisions/figures/Figure4_GRNsight-Screenshot.pdf +0 -0
  408. package/documents/manuscripts/peerj-computerscience-2016/revisions/peerj-reviewing-10823-v1.pdf +0 -0
  409. package/documents/posters/Anguiano_CMSI402_2017.pptx +0 -0
  410. package/documents/posters/Anguiano_Varshneya_LMU-Symposium_2015.pptx +0 -0
  411. package/documents/posters/Anguiano_Varshneya_SCCUR_2014.pptx +0 -0
  412. package/documents/posters/Choe_Shin_CMSI402_2018.pptx +0 -0
  413. package/documents/posters/Dahlquist-et-al_BOSC_ISMB_2016_poster.pptx +0 -0
  414. package/documents/posters/Lopez_Filler_LMU_Symposium_2019.pdf +0 -0
  415. package/documents/posters/Lopez_Filler_LMU_Symposium_2019.pptx +0 -0
  416. package/documents/posters/Samdarshi-et-al_LMU-Symposium_2017.pptx +0 -0
  417. package/documents/posters/Samdarshi-et-al_LMU-Symposium_2018.pptx +0 -0
  418. package/documents/posters/Samdarshi-et-al_SoCalSysBio_2019.pptx +0 -0
  419. package/documents/posters/Shin-et-al_SCCUR_2017.pptx +0 -0
  420. package/documents/posters/Southwick_CMSI402_2014.pptx +0 -0
  421. package/documents/posters/Varshneya_Samdarshi_LMU-Symposium_2016.pptx +0 -0
  422. package/documents/posters/Varshneya_Samdarshi_SoCalSysBio_2017.pptx +0 -0
  423. package/documents/presentations/Anguiano_402_Final_Presentation.pptx +0 -0
  424. package/documents/presentations/Choe_SWERapidFire2017_final.pptx +0 -0
  425. package/documents/presentations/Dahlquist_BOSC_20160709.pptx +0 -0
  426. package/documents/presentations/Dahlquist_ExperimentalBiology_20160404_talk.pptx +0 -0
  427. package/documents/presentations/Dahlquist_SoCalSysBio_20150131_talk.pptx +0 -0
  428. package/documents/presentations/Samdarshi_LMU-Symposium_20190323_talk.pdf +0 -0
  429. package/documents/presentations/Samdarshi_LMU-Symposium_20190323_talk.pptx +0 -0
  430. package/documents/presentations/Southwick_Anguiano_LMU-Symposium_20140329_talk.pptx +0 -0
  431. package/documents/presentations/Southwick_CMSI402_Presentation_20140508_talk.pptx +0 -0
  432. package/documents/presentations/Varshneya_Anguiano_LMU-Symposium_201703_talk.pptx +0 -0
  433. package/documents/reports/Samdarshi_Mihir_2019/Samdarshi_2019_Final.docx +0 -0
  434. package/documents/reports/Samdarshi_Mihir_2019/Samdarshi_Mihir_2019_AnnotatedBibliography.docx +0 -0
  435. package/documents/reports/Samdarshi_Mihir_2019/Samdarshi_Mihir_2019_Outline.docx +0 -0
  436. package/documents/reports/Samdarshi_Mihir_2019/~$mdarshi_2019_Draft.docx +0 -0
  437. package/documents/reports/Samdarshi_Mihir_2019/~$mdarshi_2019_Final_Paper_Draft.docx +0 -0
  438. package/documents/reports/Varshneya_Anu_2017/Varshneya-201701-AnnotatedBibliography.docx +0 -0
  439. package/documents/reports/Varshneya_Anu_2017/Varshneya-201702-Introduction.docx +0 -0
  440. package/documents/reports/Varshneya_Anu_2017/Varshneya-201702-Outline.docx +0 -0
  441. package/documents/reports/Varshneya_Anu_2017/Varshneya-201703-Discussion.docx +0 -0
  442. package/documents/reports/Varshneya_Anu_2017/Varshneya-201703-MMResults.docx +0 -0
  443. package/documents/reports/Varshneya_Anu_2017/Varshneya-201704-Draft-1.docx +0 -0
  444. package/documents/reports/Varshneya_Anu_2017/Varshneya-201704-Final.docx +0 -0
  445. package/onlysidebar.html +0 -8
  446. package/test/graph-library-tests.js +0 -165
  447. package/test-files/demo-files/21-genes_50-edges_Dahlquist-data_estimation_output.xlsx +0 -0
  448. package/test-files/demo-files/21-genes_50-edges_Dahlquist-data_input.xlsx +0 -0
  449. package/test-files/graph-tests/different-sized-networks/10-genes-max-edges.xlsx +0 -0
  450. package/test-files/graph-tests/different-sized-networks/12-genes-max-edges.xlsx +0 -0
  451. package/test-files/graph-tests/different-sized-networks/35-genes-max-edges.xlsx +0 -0
  452. package/test-files/graph-tests/different-sized-networks/40-genes-0-edges.xlsx +0 -0
  453. package/test-files/graph-tests/different-sized-networks/40-genes-max-edges.xlsx +0 -0
  454. package/test-files/graph-tests/different-sized-networks/42-genes-max-edges.xlsx +0 -0
  455. package/test-files/graph-tests/different-sized-networks/50-genes-max-edges.xlsx +0 -0
  456. package/test-files/graph-tests/different-sized-networks/75-genes-150-edges.xlsx +0 -0
  457. package/web-client/public/js/container.js +0 -121
  458. package/web-client/views/upload.jade +0 -464
@@ -1,496 +0,0 @@
1
- [
2
- {
3
- "title": "Load Graph",
4
- "text": "GRNsight should",
5
- "options": {
6
- "None": "have no graph in the viewport",
7
- "Dropdown Menu: File -> Open": "lay out a network graph from the Excel workbook if there are no errors in the file",
8
- "Dropdown Menu: File -> Import SIF": "lay out a network graph from the SIF file if there are no errors in the file",
9
- "Dropdown Menu: File -> Import GraphML": "lay out a network graph from the GraphML file if there are no errors in the file",
10
- "Dropdown Menu: Demo -> Demo #1": "lay out an unweighted network graph from Demo #1",
11
- "Dropdown Menu: Demo -> Demo #2": "lay out a weighted network graph from Demo #2",
12
- "Dropdown Menu: Demo -> Demo #3": "lay out an unweighted network graph from Demo #3",
13
- "Dropdown Menu: Demo -> Demo #4": "lay out a weighted network graph from Demo #4"
14
- },
15
- "included": false,
16
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
17
- },
18
- {
19
- "title": "Dropdown Menu: File -> Reload",
20
- "text": "The graph should",
21
- "options": {
22
- "Select": "center, zoom to 100%, and reapply the force graph parameters"
23
- },
24
- "included": false,
25
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
26
- },
27
- {
28
- "title": "Dropdown Menu: File -> Export Data",
29
- "text": "GRNsight should",
30
- "options": {
31
- "Select \"To Unweighted SIF\"": "export an unweighted SIF file from the graph currently loaded",
32
- "Select \"To Weighted SIF\"": "export a weighted SIF file from the graph currently loaded",
33
- "Select \"To Unweighted GraphML\"": "export an unweighted GraphML file from the graph currently loaded",
34
- "Select \"To Weighted GraphML\"": "export a weighted GraphML file from the graph currently loaded"
35
- },
36
- "included": false,
37
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
38
- },
39
- {
40
- "title": "Dropdown Menu: File -> Print",
41
- "text": "GRNsight should",
42
- "options": {
43
- "Select": "open the Print Dialogue Box"
44
- },
45
- "included": false,
46
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
47
- },
48
- {
49
- "title": "Dropdown Menu: Help",
50
- "text": "GRNsight should",
51
- "options": {
52
- "Select \"Getting Started\"": "open the GRNsight documentation page",
53
- "Select \"GRNsight Wiki\"": "open the GRNsight wiki page",
54
- "Select \"About GRNsight\"": "open the About GRNsight page"
55
- },
56
- "included": false,
57
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
58
- },
59
- {
60
- "title": "Sidebar Menu: Force Graph Parameter Sliders",
61
- "text": "",
62
- "options": {
63
- "Keep at Default Values": "The graph should be laid out according to the default values of the force graph parameter sliders",
64
- "Decrease Link Distance": "The graph's edges should visibly decrease in length if Lock Force Graph Parameters is unchecked",
65
- "Increase Link Distance": "The graph's edges should visibly increase in length if Lock Force Graph Parameters is unchecked",
66
- "Increase Charge": "The graph's nodes should visibly increase attraction to each other if Lock Force Graph Parameters is unchecked",
67
- "Decrease Charge": "The graph's nodes should visibly decrease attraction to each other if Lock Force Graph Parameters is unchecked"
68
- },
69
- "included": false,
70
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
71
- },
72
- {
73
- "title": "Sidebar Menu: Lock Force Graph Parameters Checkbox",
74
- "text": "The Force Graph Parameter sliders should",
75
- "options": {
76
- "Check": "be disabled.",
77
- "Uncheck": "be enabled."
78
- },
79
- "included": false,
80
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
81
- },
82
- {
83
- "title": "Sidebar Menu: Reset Force Graph Parameters Button",
84
- "text": "The Force Graph Parameter sliders should",
85
- "options": {
86
- "Click": "revert to the default values, if Lock Force Graph Parameters is unchecked."
87
- },
88
- "included": false,
89
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
90
- },
91
- {
92
- "title": "Sidebar Menu: Undo Reset Button",
93
- "text": "The Force Graph Parameter sliders should",
94
- "options": {
95
- "Click": "return to the values they had before the Undo Reset button (or menu item) was selected, if the Undo Reset button is enabled."
96
- },
97
- "included": false,
98
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
99
- },
100
- {
101
- "title" : "Sidebar Menu: Restrict Graph to Viewport Checkbox",
102
- "text": "The graph bounding box should",
103
- "options" : {
104
- "Check": "always be contained within the viewport.",
105
- "Uncheck": "be allowed to extend past the viewport"
106
- },
107
- "included": false,
108
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
109
- },
110
- {
111
- "title": "Sidebar Menu: Viewport Size",
112
- "text": "",
113
- "options": {
114
- "Keep as Detected": "Upon loading or reloading the GRNsight webpage, the viewport size should be automatically detected and set to small, medium, or large, based on the size of the browser window.",
115
- "Select \"Small\"": "The viewport size should be set to small",
116
- "Select \"Medium\"": "The viewport size should be set to medium",
117
- "Select \"Large\"": "The viewport size should be set to large",
118
- "Select \"Fit to Window\"": "The viewport size should automatically be set to the size of the browser window"
119
- },
120
- "included": false,
121
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
122
- },
123
- {
124
- "title": "Dropdown Menu: Edge",
125
- "text": "GRNsight should",
126
- "options": {
127
- "Select \"Format edges based on optimized weight parameters\"": "format edges based on optimized weight parameters",
128
- "Select \"Default to black edges with regular arrowheads\"": "default to black edges with regular arrowheads"
129
- },
130
- "included": false,
131
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
132
- },
133
- {
134
- "title": "Sidebar Menu: Hide/Show Edge Weights",
135
- "text": "",
136
- "options": {
137
- "Select \"Show With Mouse Over\"": "A single edge weight should display when user mouses over a single edge.",
138
- "Select \"Always Show Edge Weights\"": "All edge weights should always be visible.",
139
- "Select \"Never Show Edge Weights\"": "No edge weights should be visible."
140
- },
141
- "included": false,
142
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": false }
143
- },
144
- {
145
- "title": "Dropdown Menu: Edge -> Hide/Show Edge Weights",
146
- "text": "",
147
- "options": {
148
- "Check \"Show With Mouse Over\"": "A single edge weight should display when user mouses over a single edge.",
149
- "Check \"Always Show Edge Weights\"": "All edge weights should always be visible.",
150
- "Check \"Never Show Edge Weights\"": "No edge weights should be visible."
151
- },
152
- "included": false,
153
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": false }
154
- },
155
- {
156
- "title": "Sidebar Menu: Edge Weight Normalization Factor",
157
- "text": "The graph should",
158
- "options": {
159
- "Enter a Number in the Box and Click \"Set Factor\" button": "reload with the new normalization factor applied to its edge weight thicknesses"
160
- },
161
- "included": false,
162
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": false }
163
- },
164
- {
165
- "title": "Dropdown Menu: Edge -> Edge Weight Normalization Factor",
166
- "text": "The graph should",
167
- "options": {
168
- "Enter a Number in the Box and Press Enter": "reload with the new normalization factor applied to its edge weight thicknesses"
169
- },
170
- "included": false,
171
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": false }
172
- },
173
- {
174
- "title": "Sidebar Menu: Reset Factor Button",
175
- "text": "The graph should",
176
- "options": {
177
- "Click": "reset to its default normalization factor and reload the graph"
178
- },
179
- "included": false,
180
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": false }
181
- },
182
- {
183
- "title": "Dropdown Menu: Edge -> Reset Edge Weight Normalization",
184
- "text": "The graph should",
185
- "options": {
186
- "Click": "reset to its default normalization factor and reload the graph"
187
- },
188
- "included": false,
189
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": false }
190
- },
191
- {
192
- "title": "Sidebar Menu: Gray Threshold Slider",
193
- "text": "The graph should reload, with",
194
- "options": {
195
- "Change the Grey Threshold Value": "edges that fall below the threshold value colored gray"
196
- },
197
- "included": false,
198
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": false }
199
- },
200
- {
201
- "title": "Dropdown Menu: Edge -> Gray Threshold Input Box",
202
- "text": "The graph should reload, with",
203
- "options": {
204
- "Change the Grey Threshold Value and Press Enter": "edges that fall below the threshold value colored gray"
205
- },
206
- "included": false,
207
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": false }
208
- },
209
- {
210
- "title": "Sidebar Menu: Show Grey Edges as Dashed Checkbox",
211
- "text": "The graph should",
212
- "options": {
213
- "Uncheck": "show gray lines as solid lines",
214
- "Check": "show gray lines as dashed lines"
215
- },
216
- "included": false,
217
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": false }
218
- },
219
- {
220
- "title": "Dropdown Menu: Edge -> Show Grey Edges as Dashed",
221
- "text": "The graph should",
222
- "options": {
223
- "Uncheck": "show gray lines as solid lines",
224
- "Check": "show gray lines as dashed lines"
225
- },
226
- "included": false,
227
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": false }
228
- },
229
- {
230
- "title": "Viewport Menu: D-Pad Control",
231
- "text": "The graph should",
232
- "options": {
233
- "Click Right Arrow": "shift to the left",
234
- "Click Left Arrow": "shift to the right",
235
- "Click Up Arrow": "shift down",
236
- "Click Down Arrow": "shift up",
237
- "Click Center Button": "move to the center of the bounding box (note that it is not the same thing as the viewport"
238
- },
239
- "conditional": "if \"Restrict Graph to Viewport\" is Unchecked.",
240
- "included": false,
241
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
242
- },
243
- {
244
- "title": "Viewport Menu: Zoom Slider",
245
- "text": "The graph should",
246
- "options": {
247
- "Increase Zoom Level": "zoom in (get larger)",
248
- "Decrease Zoom Level": "zoom out (get smaller)"
249
- },
250
- "included": false,
251
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
252
- },
253
- {
254
- "title": "Sidebar Menu: Top Dataset",
255
- "text": "The top half of each node should be colored using data from",
256
- "options": {
257
- "Keep Default Selection": "the first expression dataset detected in the input workbook",
258
- "Select Top Dataset from Dropdown List": "the selected dataset"
259
- },
260
- "included": false,
261
- "conditional": "if expression data sheets are present in input workbook",
262
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
263
- },
264
- {
265
- "title": "Dropdown Menu: Node -> Select Top Dataset",
266
- "text": "The top half of each node should be colored using data from",
267
- "options": {
268
- "Keep Default Selection": "the first expression dataset detected in the input workbook",
269
- "Check New Top Dataset from Dropdown List": "the selected dataset"
270
- },
271
- "included": false,
272
- "conditional": "if expression data sheets are present in input workbook",
273
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
274
- },
275
- {
276
- "title": "Sidebar Menu: Bottom Dataset",
277
- "text": "The bottom half of each node should be colored using data from",
278
- "options": {
279
- "Keep Default Selection": "the same dataset as the top dataset",
280
- "Select Bottom Dataset from Dropdown List": "the selected dataset"
281
- },
282
- "included": false,
283
- "conditional": "if expression data sheets are present in input workbook",
284
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
285
- },
286
- {
287
- "title": "Dropdown Menu: Node -> Select Bottom Dataset",
288
- "text": "The bottom half of each node should be colored using data from",
289
- "options": {
290
- "Keep Default Selection": "the same dataset as the top dataset",
291
- "Check New Bottom Dataset from Dropdown List": "the selected dataset"
292
- },
293
- "included": false,
294
- "conditional": "if expression data sheets are present in input workbook",
295
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
296
- },
297
- {
298
- "title": "Sidebar Menu: Log Fold Change Max Value",
299
- "text": "The node coloring visualization's color intensity should",
300
- "options": {
301
- "Keep Default Value": "default to having a Log Fold Change Max Value of 3",
302
- "Increase Log Fold Change Max Value": "decrease",
303
- "Decrease Log Fold Change Max Value": "increase"
304
- },
305
- "included": false,
306
- "conditional": "if expression data sheets are present in input workbook",
307
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
308
- },
309
- {
310
- "title": "Dropdown Menu: Node -> Log Fold Change Max Value",
311
- "text": "The node coloring visualization's color intensity should",
312
- "options": {
313
- "Keep Default Value": "default to having a Log Fold Change Max Value of 3",
314
- "Increase Log Fold Change Max Value": "decrease",
315
- "Decrease Log Fold Change Max Value": "increase"
316
- },
317
- "included": false,
318
- "conditional": "if expression data sheets are present in input workbook",
319
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
320
- },
321
- {
322
- "title": "Sidebar Menu: Average Replicates Values (Top Dataset)",
323
- "text": "GRNsight should",
324
- "options": {
325
- "Check": "average replicate values for top dataset",
326
- "Uncheck": "not average replicate values for top dataset"
327
- },
328
- "included": false,
329
- "conditional": "if expression data sheets are present in input workbook",
330
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
331
- },
332
- {
333
- "title": "Dropdown Menu: Node -> Average Replicates Values (Top Dataset)",
334
- "text": "GRNsight should",
335
- "options": {
336
- "Check": "average replicate values for top dataset",
337
- "Uncheck": "not average replicate values for top dataset"
338
- },
339
- "included": false,
340
- "conditional": "if expression data sheets are present in input workbook",
341
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
342
- },
343
- {
344
- "title": "Sidebar Menu: Average Replicates Values (Bottom Dataset)",
345
- "text": "GRNsight should",
346
- "options": {
347
- "Check": "average replicate values for bottom dataset",
348
- "Uncheck": "not average replicate values for bottom dataset"
349
- },
350
- "included": false,
351
- "conditional": "if expression data sheets are present in input workbook",
352
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
353
- },
354
- {
355
- "title": "Dropdown Menu: Node -> Average Replicates Values (Bottom Dataset)",
356
- "text": "GRNsight should",
357
- "options": {
358
- "Check": "average replicate values for bottom dataset",
359
- "Uncheck": "not average replicate values for bottom dataset"
360
- },
361
- "included": false,
362
- "conditional": "if expression data sheets are present in input workbook",
363
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
364
- },
365
- {
366
- "title": "Sidebar Menu: Node Coloring Toggle Button",
367
- "text": "",
368
- "options": {
369
- "Click": "Node coloring should toggle between on and off, with default being on and button text should toggle between 'Enable Node Coloring' and 'Disable Node Coloring'"
370
- },
371
- "included": false,
372
- "conditional": "if expression data sheets are present in input workbook",
373
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
374
- },
375
- {
376
- "title": "Dropdown Menu: Node -> Disable Node Coloring",
377
- "text": "",
378
- "options": {
379
- "Check": "Node coloring should become disabled, and Node Coloring Toggle Button text in sidebar menu should read 'Enable Node Coloring'",
380
- "Uncheck": "Node coloring should become enabled, and Node Coloring Toggle Button text in sidebar menu should read 'Disable Node Coloring'"
381
- },
382
- "included": true,
383
- "conditional": "if expression data sheets are present in input workbook",
384
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
385
- },
386
- {
387
- "title": "Sidebar Menu: Grid Layout",
388
- "text": "The graph should",
389
- "options": {
390
- "Keep at Default": "default to force graph layout",
391
- "Click Grid Layout Button": "change to grid layout",
392
- "Click Force Graph Layout Button": "change to force graph layout"
393
- },
394
- "included": true,
395
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
396
- },
397
- {
398
- "title": "Dropdown Menu: View -> Viewport Size",
399
- "text": "",
400
- "options": {
401
- "Keep as Detected": "Upon loading or reloading the GRNsight webpage, the viewport size should be automatically detected and set to small, medium, or large, based on the size of the browser window.",
402
- "Check \"Small\"": "The viewport size should be set to small",
403
- "Check \"Medium\"": "The viewport size should be set to medium",
404
- "Check \"Large\"": "The viewport size should be set to large",
405
- "Check \"Fit to Window\"": "The viewport size should automatically be set to the size of the browser window"
406
- },
407
- "included": true,
408
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
409
- },
410
- {
411
- "title": "Dropdown Menu: View -> Restrict Graph to Viewport",
412
- "text": "The viewport should",
413
- "options": {
414
- "Check": "always be contained within the viewport.",
415
- "Uncheck": "be allowed to extend past the viewport"
416
- },
417
- "included": true,
418
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
419
- },
420
- {
421
- "title": "Dropdown Menu: View -> Zoom",
422
- "text": "The viewport should",
423
- "options": {
424
- "Enter Zoom Value, then Press Enter": "should zoom according to the value"
425
- },
426
- "included": false,
427
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
428
- },
429
- {
430
- "title": "Dropdown Menu: Layout -> Graph Options",
431
- "text": "The graph should",
432
- "options": {
433
- "Keep at Default": "be in force graph layout by default",
434
- "Grid Layout": "apply grid layout",
435
- "Force Graph": "apply force graph layout"
436
- },
437
- "included": false,
438
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
439
- },
440
- {
441
- "title": "Dropdown Menu: Layout -> Lock Force Graph Parameters",
442
- "text": "The Force Graph Parameter sliders should",
443
- "options": {
444
- "Check \"Lock Force Graph Parameters\"": "be disabled.",
445
- "Uncheck \"Lock Force Graph Parameters\"": "be enabled."
446
- },
447
- "included": false,
448
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
449
- },
450
- {
451
- "title": "Dropdown Menu: Layout -> Reset Force Graph Parameters",
452
- "text": "The force graph parameters should",
453
- "options": {
454
- "Click \"Reset Force Graph Parameters\"": "revert to the default values, if Lock Force Graph Parameters is unchecked"
455
- },
456
- "included": false,
457
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
458
- },
459
- {
460
- "title": "Dropdown Menu: Layout -> Undo Reset",
461
- "text": "The force graph parameters should",
462
- "options": {
463
- "Click \"Undo Reset\"": "return to the values they had before the Undo Reset button (or menu item) was selected, if Undo Reset is enabled."
464
- },
465
- "included": false,
466
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
467
- },
468
- {
469
- "title": "Dropdown Menu: Layout -> Link Distance",
470
- "text": "",
471
- "options": {
472
- "Input Value, then Press Enter": "The graph's edges should visibly change in length to the value entered if Lock Force Graph Parameters is unchecked"
473
- },
474
- "included": false,
475
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
476
- },
477
- {
478
- "title": "Dropdown Menu: Layout -> Charge",
479
- "text": "",
480
- "options": {
481
- "Input Value, then Press Enter": "The graph's nodes should visibly change it's level of attraction to each other to the value entered if Lock Force Graph Parameters is unchecked"
482
- },
483
- "included": false,
484
- "availability": {"NoGraphLoaded": true, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
485
- },
486
- {
487
- "title": "Viewport Menu: Node",
488
- "text": "",
489
- "options": {
490
- "No Click": "",
491
- "Right Click": "Gene information page should appear in a new tab within the browser.",
492
- },
493
- "included": false,
494
- "availability": {"NoGraphLoaded": false, "WeightedGraphLoaded": true, "UnWeightedGraphLoaded": true }
495
- }
496
- ]
@@ -1,149 +0,0 @@
1
- // Instructions for generating new testing document:
2
- // Make any changes in the data.json file
3
- // Navigate to documents>developer_documents>testing-script-generator folder on the command line
4
- // Run node testing-script-generator.js to generate new Testing Document file
5
-
6
- var fs = require("fs");
7
- var markdownpdf = require("markdown-pdf");
8
- var moment = require("moment");
9
-
10
- // Imports JSON data from data.json
11
- var grnsightOptions = JSON.parse(fs.readFileSync('featureList.json', 'utf8'));
12
-
13
- // Node class for representing each test
14
- class Node {
15
- constructor (instructions, results) {
16
- this.instructions = instructions || [];
17
- this.results = results || [];
18
- }
19
- addResult (result) {
20
- this.results.push(result);
21
- }
22
- addInstruction(instruction) {
23
- this.instructions.push(instruction);
24
- }
25
- print() {
26
- var string = "";
27
- string += "Instructions:\n";
28
- this.instructions.forEach(function(instruction) {
29
- string += "- " + instruction + "\n";
30
- });
31
- string += "\nResults:\n";
32
- this.results.forEach(function (result) {
33
- string += "- " + result + "\n";
34
- });
35
- return string;
36
- }
37
- }
38
-
39
- // Initially, arrayOfNodes only contains an empty node
40
- var root = new Node();
41
- var arrayOfNodes = [root];
42
- var testDescription = "";
43
- var availabilityDescription = "";
44
-
45
- var addChildren = function (arrayOfNodes, optionKeys, test) {
46
- var newArrayOfNodes = [];
47
- // Loops through each node in arrayOfNodes
48
- arrayOfNodes.forEach(function(node) {
49
- if (!test.included) {
50
- // Skip this test by adding the original node itself to the newArrayOfNodes
51
- newArrayOfNodes.push(node);
52
- } else {
53
- optionKeys.forEach(function(option) {
54
- var instruction = test.title + " - " + option;
55
- var result = test.text + " " + test.options[option];
56
- result = test.conditional ? result + ", " + test.conditional : result;
57
- var newNode = new Node();
58
- // The null option is equivalent to disabling the test.
59
- if (option !== "NULL") {
60
- // Adds the new instruction / result pair only
61
- newNode.addInstruction(instruction);
62
- newNode.addResult(result);
63
- }
64
- // The newNode inherits all of the parent's instruction / result pairs
65
- for (var i = 0; i < node.instructions.length; i++) {
66
- newNode.addInstruction(node.instructions[i]);
67
- newNode.addResult(node.results[i]);
68
- }
69
- newArrayOfNodes.push(newNode);
70
- });
71
- }
72
- });
73
- return newArrayOfNodes;
74
- }
75
-
76
- // Performs the combinatorics for each GRNsight option.
77
- for (var i = grnsightOptions.length - 1; i >=0; i--) {
78
- var test = grnsightOptions[i];
79
- var optionKeys = Object.keys(test.options);
80
- arrayOfNodes = addChildren(arrayOfNodes, optionKeys, test);
81
- }
82
-
83
- // Formats the table to display all the GRNsight options, user interactions, and results.
84
- grnsightOptions.forEach(function(test) {
85
- var optionKeys = Object.keys(test.options);
86
- var entry = "|" + test.title + "|";
87
- var status = test.included ? "YES" : "NO";
88
- var entry = "|" + status + " | " + test.title + "|";
89
- var noGraphLoadedAvailability = test.availability['NoGraphLoaded'] ? "YES": "NO";
90
- var weightedGraphLoadedAvailability = test.availability['WeightedGraphLoaded'] ? "YES": "NO";
91
- var unweightedGraphLoadedAvailability = test.availability['UnWeightedGraphLoaded'] ? "YES": "NO";
92
- var availability = `| ${noGraphLoadedAvailability} | ${weightedGraphLoadedAvailability} | ${unweightedGraphLoadedAvailability} | `
93
- optionKeys.forEach(function(option) {
94
- var result = test.text + " " + test.options[option];
95
- result = test.conditional ? result + ", " + test.conditional : result;
96
- testDescription += entry + option + " | " + result + "|\n";
97
- availabilityDescription += `| ${test.title} - ${option} ${availability}\n`
98
- });
99
- });
100
-
101
- // Generates the markdown document, combining the table with the test listing
102
- var formatMarkdown = function (arrayOfNodes) {
103
- var md = "## GRNsight Client Side Testing Overview";
104
- md += "\nLast Updated: " + moment().format("YYYY-MM-DD");
105
- md += "\n\n";
106
- md += "| Included in Testing Protocol | GRNsight Option | User Action | Result | \n"
107
- md += "| --------------- | ------ | ------- | ------ | \n"
108
- md += testDescription;
109
- md += formatFunctionAvailabilityTable();
110
- md += "\n## Client Side Tests\n";
111
- for (var i = 0; i < arrayOfNodes.length; i++) {
112
- md += "### Test " + (i + 1) + "\n";
113
- md += arrayOfNodes[i].print() + "\n";
114
- }
115
- return md;
116
- }
117
-
118
- var formatFunctionAvailabilityTable = function() {
119
- var md = "\n## GRNsight Function Availability Table";
120
- md += "\n\n";
121
- md += "| GRNsight Function | No Graph Loaded | Weighted Graph Loaded | Unweighted Graph Loaded | \n";
122
- md += "| ---------------- | --------------- | ----------------------- | ---------------------- | \n";
123
- md += availabilityDescription;
124
- return md;
125
- }
126
-
127
- var markdownDocument = formatMarkdown(arrayOfNodes);
128
- // var functionAvailability = formatFunctionAvailabilityTable();
129
-
130
- // Writes over the GRNsightTestingDocument.md file
131
- fs.writeFile('GRNsightTestingDocument.md', markdownDocument, function (err) {
132
- if (err) return console.log(err);
133
- });
134
-
135
- // Generates the GRNsight Function Availability Markdown file
136
- // fs.writeFile("GRNsightFunctionAvailability.md", functionAvailability, function (err) {
137
- // if (err) return console.log(err);
138
- // })
139
-
140
- markdownpdf().from("GRNsightTestingDocument.md").to("GRNsightTestingDocument.pdf", function () {
141
- console.log("Created GRNsightTestingDocument.pdf");
142
- })
143
-
144
- // markdownpdf().from("GRNsightFunctionAvailability.md").to("GRNsightFunctionAvailability.pdf", function () {
145
- // console.log("Created GRNsightFunctionAvailability.pdf");
146
- // })
147
-
148
- console.log("\nGRNsightTestingDocument.md has been successfully regenerated, and includes " + arrayOfNodes.length + " tests.");
149
- console.log("Update the wiki by copy/pasting Markdown code to: https://github.com/dondi/GRNsight/wiki/Client-Side-Testing-Document\n")