grnsight 3.0.0 → 5.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 (489) hide show
  1. package/.eslintignore +1 -0
  2. package/.travis.yml +1 -1
  3. package/GRNsight - Beta.html +194 -0
  4. package/Gemfile.lock +259 -0
  5. package/README.md +1 -1
  6. package/_gh_pages/about.html +360 -45
  7. package/_gh_pages/assets/css/footer.css +3 -0
  8. package/_gh_pages/assets/css/main.css +28 -14
  9. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_estimation_output_binary-no-targetless-genes_sif.png +0 -0
  10. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_estimation_output_binary_sif.png +0 -0
  11. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_graphml_3-edges-and-footer.png +0 -0
  12. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_graphml_header-and-3-nodes.png +0 -0
  13. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_graphml_output_3-edges-and-footer.png +0 -0
  14. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_graphml_output_header-and-3-nodes.png +0 -0
  15. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_input_binary-no-targetless-genes_sif.png +0 -0
  16. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_input_binary_sif.png +0 -0
  17. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_input_concatenated-no-targetless-genes_sif.png +0 -0
  18. package/_gh_pages/assets/images/21-genes_31-edges_Schade-data_input_concatenated_sif.png +0 -0
  19. package/_gh_pages/assets/images/Choe-Shin_CMSI402-poster-session_20180430.jpg +0 -0
  20. package/_gh_pages/assets/images/Choe_SCCUR_2017.jpg +0 -0
  21. package/_gh_pages/assets/images/Dahlquist-Choe-Shin_CMSI402-poster-session_20180430.jpg +0 -0
  22. package/_gh_pages/assets/images/Dionisio-Dahlquist_GRNsight-shades_20170506.jpg +0 -0
  23. package/_gh_pages/assets/images/Klein_Samdarshi_TriBeta_2018_20180317.jpg +0 -0
  24. package/_gh_pages/assets/images/Shin_SCCUR_2017.jpg +0 -0
  25. 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
  26. 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
  27. package/_gh_pages/assets/images/gene-pages-0.png +0 -0
  28. package/_gh_pages/assets/images/gene-pages-1.png +0 -0
  29. package/_gh_pages/assets/images/gene-pages-2.png +0 -0
  30. package/_gh_pages/assets/images/gene-pages-3.png +0 -0
  31. package/_gh_pages/assets/images/grnsight2020.png +0 -0
  32. package/_gh_pages/assets/images/v3demo2-grid+nodecoloring.png +0 -0
  33. package/_gh_pages/assets/images/v3demo2-nodecoloring.png +0 -0
  34. package/_gh_pages/assets/images/v3demo2.png +0 -0
  35. package/_gh_pages/assets/js/ga-report.js +11 -11
  36. package/_gh_pages/assets/js/iframeResizer.min.js +9 -0
  37. package/_gh_pages/assets/js/main.js +43 -43
  38. package/_gh_pages/beta.html +29 -24
  39. package/_gh_pages/contact.html +31 -31
  40. package/_gh_pages/coverage/coverage.json +1 -0
  41. package/_gh_pages/coverage/coverage.raw.json +1 -0
  42. package/_gh_pages/coverage/lcov-report/base.css +223 -0
  43. package/_gh_pages/coverage/lcov-report/block-navigation.js +63 -0
  44. package/_gh_pages/coverage/lcov-report/controllers/additional-sheet-parser.js.html +330 -0
  45. package/_gh_pages/coverage/lcov-report/controllers/constants.js.html +243 -0
  46. package/_gh_pages/coverage/lcov-report/controllers/export-controller.js.html +285 -0
  47. package/_gh_pages/coverage/lcov-report/controllers/exporters/graphml.js.html +405 -0
  48. package/_gh_pages/coverage/lcov-report/controllers/exporters/index.html +110 -0
  49. package/_gh_pages/coverage/lcov-report/controllers/exporters/sif.js.html +150 -0
  50. package/_gh_pages/coverage/lcov-report/controllers/helpers.js.html +114 -0
  51. package/_gh_pages/coverage/lcov-report/controllers/import-controller.js.html +233 -0
  52. package/_gh_pages/coverage/lcov-report/controllers/importers/graphml.js.html +716 -0
  53. package/_gh_pages/coverage/lcov-report/controllers/importers/index.html +106 -0
  54. package/_gh_pages/coverage/lcov-report/controllers/importers/sif.js.html +488 -0
  55. package/_gh_pages/coverage/lcov-report/controllers/index.html +162 -0
  56. package/_gh_pages/coverage/lcov-report/controllers/semantic-checker.js.html +810 -0
  57. package/_gh_pages/coverage/lcov-report/controllers/spreadsheet-controller.js.html +1779 -0
  58. package/_gh_pages/coverage/lcov-report/index.html +136 -0
  59. package/_gh_pages/coverage/lcov-report/prettify.css +1 -0
  60. package/_gh_pages/coverage/lcov-report/prettify.js +1 -0
  61. package/_gh_pages/coverage/lcov-report/server/controllers/additional-sheet-parser.js.html +330 -0
  62. package/_gh_pages/coverage/lcov-report/server/controllers/constants.js.html +243 -0
  63. package/_gh_pages/coverage/lcov-report/server/controllers/export-controller.js.html +285 -0
  64. package/_gh_pages/coverage/lcov-report/server/controllers/exporters/graphml.js.html +405 -0
  65. package/_gh_pages/coverage/lcov-report/server/controllers/exporters/index.html +110 -0
  66. package/_gh_pages/coverage/lcov-report/server/controllers/exporters/sif.js.html +150 -0
  67. package/_gh_pages/coverage/lcov-report/server/controllers/graphml-constants.js.html +585 -0
  68. package/_gh_pages/coverage/lcov-report/server/controllers/helpers.js.html +114 -0
  69. package/_gh_pages/coverage/lcov-report/server/controllers/import-controller.js.html +237 -0
  70. package/_gh_pages/coverage/lcov-report/server/controllers/importers/graphml.js.html +585 -0
  71. package/_gh_pages/coverage/lcov-report/server/controllers/importers/index.html +110 -0
  72. package/_gh_pages/coverage/lcov-report/server/controllers/importers/sif.js.html +492 -0
  73. package/_gh_pages/coverage/lcov-report/server/controllers/index.html +188 -0
  74. package/_gh_pages/coverage/lcov-report/server/controllers/semantic-checker.js.html +810 -0
  75. package/_gh_pages/coverage/lcov-report/server/controllers/spreadsheet-controller.js.html +1779 -0
  76. package/_gh_pages/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  77. package/_gh_pages/coverage/lcov-report/sorter.js +158 -0
  78. package/_gh_pages/coverage/lcov-report/web-client/public/js/grnstate.js.html +225 -0
  79. package/_gh_pages/coverage/lcov-report/web-client/public/js/index.html +97 -0
  80. package/_gh_pages/coverage/lcov.info +49 -0
  81. package/_gh_pages/documentation.html +998 -320
  82. package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.aux +47 -0
  83. package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.bbl +73 -0
  84. package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.blg +52 -0
  85. package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.log +1056 -0
  86. package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.out +7 -0
  87. package/_gh_pages/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.synctex.gz +0 -0
  88. package/_gh_pages/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_text-only_revised-Dondi.docx +0 -0
  89. package/_gh_pages/encryption/server.cert +21 -0
  90. package/_gh_pages/encryption/server.key +28 -0
  91. package/_gh_pages/favicon.ico +0 -0
  92. package/_gh_pages/index.html +45 -22
  93. package/_gh_pages/links.html +47 -28
  94. package/_gh_pages/news.html +103 -21
  95. package/_gh_pages/onlyfooter.html +78 -0
  96. package/_gh_pages/onlyheader.html +64 -0
  97. package/_gh_pages/onlysidebar.html +73 -0
  98. package/_gh_pages/package-lock.json +14048 -0
  99. package/_gh_pages/people.html +129 -40
  100. package/_gh_pages/privacy.html +23 -17
  101. package/_gh_pages/publications.html +75 -33
  102. package/_gh_pages/robots.txt +1 -0
  103. package/_gh_pages/sitemap.xml +87 -74
  104. package/_gh_pages/test-files/import-samples/attributes.graphml +40 -0
  105. package/_gh_pages/test-files/import-samples/port.graphml +32 -0
  106. package/_gh_pages/test-files/import-samples/simple.graphml +31 -0
  107. package/_gh_pages/web-client/public/js/grnsight.min.js +2347 -0
  108. package/_gh_pages/web-client/public/stylesheets/grnsight.css +443 -0
  109. package/coverage/coverage.json +1 -1
  110. package/coverage/coverage.raw.json +1 -0
  111. package/coverage/lcov-report/base.css +18 -8
  112. package/coverage/lcov-report/block-navigation.js +63 -0
  113. package/coverage/lcov-report/controllers/additional-sheet-parser.js.html +330 -0
  114. package/coverage/lcov-report/controllers/constants.js.html +65 -61
  115. package/coverage/lcov-report/controllers/export-controller.js.html +96 -92
  116. package/coverage/lcov-report/controllers/exporters/graphml.js.html +168 -164
  117. package/coverage/lcov-report/controllers/exporters/index.html +36 -32
  118. package/coverage/lcov-report/controllers/exporters/sif.js.html +65 -61
  119. package/coverage/lcov-report/controllers/helpers.js.html +25 -21
  120. package/coverage/lcov-report/controllers/index.html +49 -45
  121. package/coverage/lcov-report/controllers/semantic-checker.js.html +403 -396
  122. package/coverage/lcov-report/controllers/spreadsheet-controller.js.html +973 -879
  123. package/coverage/lcov-report/index.html +45 -28
  124. package/coverage/lcov-report/server/controllers/additional-sheet-parser.js.html +330 -0
  125. package/coverage/lcov-report/server/controllers/constants.js.html +243 -0
  126. package/coverage/lcov-report/server/controllers/export-controller.js.html +285 -0
  127. package/coverage/lcov-report/server/controllers/exporters/graphml.js.html +405 -0
  128. package/coverage/lcov-report/server/controllers/exporters/index.html +110 -0
  129. package/coverage/lcov-report/server/controllers/exporters/sif.js.html +150 -0
  130. package/coverage/lcov-report/server/controllers/graphml-constants.js.html +585 -0
  131. package/coverage/lcov-report/server/controllers/helpers.js.html +114 -0
  132. package/coverage/lcov-report/server/controllers/import-controller.js.html +237 -0
  133. package/coverage/lcov-report/server/controllers/importers/graphml.js.html +585 -0
  134. package/coverage/lcov-report/server/controllers/importers/index.html +110 -0
  135. package/coverage/lcov-report/server/controllers/importers/sif.js.html +492 -0
  136. package/coverage/lcov-report/server/controllers/index.html +188 -0
  137. package/coverage/lcov-report/server/controllers/semantic-checker.js.html +810 -0
  138. package/coverage/lcov-report/server/controllers/spreadsheet-controller.js.html +1779 -0
  139. package/coverage/lcov-report/web-client/public/js/grnstate.js.html +225 -0
  140. package/coverage/lcov-report/web-client/public/js/index.html +97 -0
  141. package/coverage/lcov.info +1758 -876
  142. package/encryption/server.cert +21 -0
  143. package/encryption/server.key +28 -0
  144. package/package.json +46 -22
  145. package/server/app.js +6 -2
  146. package/server/config/config.js +16 -7
  147. package/server/controllers/additional-sheet-parser.js +292 -55
  148. package/server/controllers/api-controllers.js +36 -0
  149. package/server/controllers/constants.js +4 -37
  150. package/server/controllers/database-controller.js +129 -0
  151. package/server/controllers/demo-workbooks.js +5973 -0
  152. package/server/controllers/export-constants.js +78 -0
  153. package/server/controllers/export-controller.js +25 -3
  154. package/server/controllers/exporters/graphml.js +15 -15
  155. package/server/controllers/exporters/sif.js +7 -7
  156. package/server/controllers/exporters/xlsx.js +183 -0
  157. package/server/controllers/expression-sheet-parser.js +170 -0
  158. package/server/controllers/ga-controller.js +1 -1
  159. package/server/controllers/graphml-constants.js +0 -17
  160. package/server/controllers/helpers.js +25 -1
  161. package/server/controllers/import-controller.js +2 -2
  162. package/server/controllers/importers/graphml.js +17 -20
  163. package/server/controllers/importers/sif.js +22 -18
  164. package/server/controllers/network-sheet-parser.js +307 -0
  165. package/server/controllers/semantic-checker.js +30 -162
  166. package/server/controllers/sif-constants.js +36 -0
  167. package/server/controllers/spreadsheet-controller.js +277 -424
  168. package/server/controllers/workbook-constants.js +521 -0
  169. package/test/additional-sheet-parser-tests.js +147 -38
  170. package/test/api-tests.js +245 -0
  171. package/test/errors-adjacency-matrix-modifications.js +30 -29
  172. package/test/errors-gene-name-modifications.js +9 -0
  173. package/test/errors-graph-tests.js +4 -4
  174. package/test/errors-sheet-modifications.js +10 -2
  175. package/test/export-tests.js +431 -24
  176. package/test/expression-data-import-tests.js +113 -0
  177. package/test/grnstate-tests.js +29 -0
  178. package/test/import-graphml-tests.js +59 -40
  179. package/test/import-sif-tests.js +50 -37
  180. package/test/test.js +557 -93
  181. package/test/warnings-adjacency-matrix-modifications.js +8 -7
  182. package/test-files/additional-sheet-test-files/optimization-diagnostics-default.xlsx +0 -0
  183. package/test-files/additional-sheet-test-files/optimization-diagnostics-extraneous-data.xlsx +0 -0
  184. package/test-files/additional-sheet-test-files/optimization-diagnostics-incorrect-MSE-gene-header.xlsx +0 -0
  185. package/test-files/additional-sheet-test-files/optimization-diagnostics-incorrect-MSE-header.xlsx +0 -0
  186. package/test-files/additional-sheet-test-files/optimization-diagnostics-incorrect-column-headers.xlsx +0 -0
  187. package/test-files/additional-sheet-test-files/optimization-diagnostics-invalid-MSE-data.xlsx +0 -0
  188. package/test-files/additional-sheet-test-files/optimization-diagnostics-invalid-value.xlsx +0 -0
  189. package/test-files/additional-sheet-test-files/optimization-diagnostics-missing-MSE-data.xlsx +0 -0
  190. package/test-files/additional-sheet-test-files/optimization-diagnostics-missing-column-headers.xlsx +0 -0
  191. package/test-files/additional-sheet-test-files/optimization-diagnostics-missing-header.xlsx +0 -0
  192. package/test-files/additional-sheet-test-files/optimization-diagnostics-unknown-parameter.xlsx +0 -0
  193. package/test-files/additional-sheet-test-files/optimization-parameters-default.xlsx +0 -0
  194. package/test-files/additional-sheet-test-files/optimization-parameters-incorrect-headers.xlsx +0 -0
  195. package/test-files/additional-sheet-test-files/optimization-parameters-invalid-optimization-parameter.xlsx +0 -0
  196. package/test-files/additional-sheet-test-files/optimization-parameters-missing-headers.xlsx +0 -0
  197. package/test-files/additional-sheet-test-files/optimization-parameters-unknown-parameter.xlsx +0 -0
  198. package/test-files/additional-sheet-test-files/two-column-sheets-extraneous-data.xlsx +0 -0
  199. package/test-files/additional-sheet-test-files/two-column-sheets-incorrect-cell-A1.xlsx +0 -0
  200. package/test-files/additional-sheet-test-files/two-column-sheets-incorrect-column-header.xlsx +0 -0
  201. package/test-files/additional-sheet-test-files/two-column-sheets-invalid-gene-length.xlsx +0 -0
  202. package/test-files/additional-sheet-test-files/two-column-sheets-invalid-gene-type.xlsx +0 -0
  203. package/test-files/additional-sheet-test-files/two-column-sheets-invalid-value.xlsx +0 -0
  204. package/test-files/additional-sheet-test-files/two-column-sheets-missing-column-header.xlsx +0 -0
  205. package/test-files/additional-sheet-test-files/two-column-sheets-special-character.xlsx +0 -0
  206. package/test-files/adjacency-matrix-modifications/asymmetric-gene-order-input.xlsx +0 -0
  207. package/test-files/adjacency-matrix-modifications/asymmetric-gene-order-output.xlsx +0 -0
  208. package/test-files/adjacency-matrix-modifications/extra-column-adjacent-input.xlsx +0 -0
  209. package/test-files/adjacency-matrix-modifications/extra-column-adjacent-output.xlsx +0 -0
  210. package/test-files/adjacency-matrix-modifications/extra-column-end-of-sheet-input.xlsx +0 -0
  211. package/test-files/adjacency-matrix-modifications/extra-column-end-of-sheet-output.xlsx +0 -0
  212. package/test-files/adjacency-matrix-modifications/extra-data-random-cell-both-output.xlsx +0 -0
  213. package/test-files/adjacency-matrix-modifications/extra-data-random-cell-network-only-input.xlsx +0 -0
  214. package/test-files/adjacency-matrix-modifications/extra-data-random-cell-network-only-output.xlsx +0 -0
  215. package/test-files/adjacency-matrix-modifications/extra-data-random-cell-network-optimized-only-output.xlsx +0 -0
  216. package/test-files/adjacency-matrix-modifications/extra-row-end-of-sheet-input.xlsx +0 -0
  217. package/test-files/adjacency-matrix-modifications/extra-row-end-of-sheet-output.xlsx +0 -0
  218. package/test-files/adjacency-matrix-modifications/incorrect-network-cell-A1.xlsx +0 -0
  219. package/test-files/adjacency-matrix-modifications/missing-column-end-input.xlsx +0 -0
  220. package/test-files/adjacency-matrix-modifications/missing-column-end-output.xlsx +0 -0
  221. package/test-files/adjacency-matrix-modifications/missing-data-input.xlsx +0 -0
  222. package/test-files/adjacency-matrix-modifications/missing-data-output.xlsx +0 -0
  223. package/test-files/adjacency-matrix-modifications/missing-row-end-input.xlsx +0 -0
  224. package/test-files/adjacency-matrix-modifications/missing-row-end-output.xlsx +0 -0
  225. package/test-files/adjacency-matrix-modifications/missing-row-middle-input.xlsx +0 -0
  226. package/test-files/adjacency-matrix-modifications/missing-row-middle-output.xlsx +0 -0
  227. package/test-files/adjacency-matrix-modifications/missing-value-bottom-corner-input.xlsx +0 -0
  228. package/test-files/adjacency-matrix-modifications/missing-value-bottom-corner-output.xlsx +0 -0
  229. package/test-files/adjacency-matrix-modifications/value-replaced-w-spaces-both-output.xlsx +0 -0
  230. package/test-files/adjacency-matrix-modifications/value-replaced-w-spaces-net-only-input.xlsx +0 -0
  231. package/test-files/adjacency-matrix-modifications/value-replaced-w-spaces-net-op-only-output.xlsx +0 -0
  232. package/test-files/adjacency-matrix-modifications/value-replaced/342/200/223w-spaces-net-only-output.xlsx +0 -0
  233. package/test-files/demo-files/15-genes_28-edges_db5_Dahlquist-data_estimation_output.xlsx +0 -0
  234. package/test-files/demo-files/15-genes_28-edges_db5_Dahlquist-data_input.xlsx +0 -0
  235. package/test-files/expression-data-test-sheets/expression_sheet_correct_numbering.xlsx +0 -0
  236. package/test-files/expression-data-test-sheets/expression_sheet_different_number_of_columns.xlsx +0 -0
  237. package/test-files/expression-data-test-sheets/expression_sheet_empty_column.xlsx +0 -0
  238. package/test-files/expression-data-test-sheets/expression_sheet_empty_row.xlsx +0 -0
  239. package/test-files/expression-data-test-sheets/expression_sheet_erroneous_data.xlsx +0 -0
  240. package/test-files/expression-data-test-sheets/expression_sheet_extra_gene_name.xlsx +0 -0
  241. package/test-files/expression-data-test-sheets/expression_sheet_incorrectly_ordered_time_points.xlsx +0 -0
  242. package/test-files/expression-data-test-sheets/expression_sheet_mismatched_case_gene_names.xlsx +0 -0
  243. package/test-files/expression-data-test-sheets/expression_sheet_mismatched_gene_names.xlsx +0 -0
  244. package/test-files/expression-data-test-sheets/expression_sheet_missing_column_header.xlsx +0 -0
  245. package/test-files/expression-data-test-sheets/expression_sheet_missing_data_error.xlsx +0 -0
  246. package/test-files/expression-data-test-sheets/expression_sheet_missing_data_ok.xlsx +0 -0
  247. package/test-files/expression-data-test-sheets/expression_sheet_missing_data_ok_export_exact.xlsx +0 -0
  248. package/test-files/expression-data-test-sheets/expression_sheet_missing_gene_name.xlsx +0 -0
  249. package/test-files/expression-data-test-sheets/expression_sheet_name_not_in_optparams.xlsx +0 -0
  250. package/test-files/expression-data-test-sheets/expression_sheet_name_not_present.xlsx +0 -0
  251. package/test-files/expression-data-test-sheets/expression_sheet_negative_time_points.xlsx +0 -0
  252. package/test-files/expression-data-test-sheets/expression_sheet_non_numerical_time_points.xlsx +0 -0
  253. package/test-files/expression-data-test-sheets/expression_sheet_not_existing.xlsx +0 -0
  254. package/test-files/expression-data-test-sheets/expression_sheet_wrong_id_label.xlsx +0 -0
  255. package/test-files/expression-data-test-sheets/expression_sheet_wrong_order_gene_names.xlsx +0 -0
  256. package/test-files/expression-data-test-sheets/expression_sheet_wrong_sheet_name_case.xlsx +0 -0
  257. package/test-files/expression-data-test-sheets/expression_sheet_wrong_sheet_name_convention.xlsx +0 -0
  258. package/test-files/gene-name-modifications/NaN-as-gene-name-input.xlsx +0 -0
  259. package/test-files/gene-name-modifications/NaN-as-gene-name-output.xlsx +0 -0
  260. package/test-files/gene-name-modifications/mismatched-case-related-input.xlsx +0 -0
  261. package/test-files/gene-name-modifications/mismatched-case-related-output.xlsx +0 -0
  262. package/test-files/gene-name-modifications/mismatched-case-unrelated-input.xlsx +0 -0
  263. package/test-files/gene-name-modifications/mismatched-case-unrelated-output.xlsx +0 -0
  264. package/test-files/gene-name-modifications/numbers-as-gene-name-related-input.xlsx +0 -0
  265. package/test-files/gene-name-modifications/numbers-as-gene-name-related-output.xlsx +0 -0
  266. package/test-files/gene-name-modifications/numbers-as-gene-name-unrelated-input.xlsx +0 -0
  267. package/test-files/gene-name-modifications/numbers-as-gene-name-unrelated-output.xlsx +0 -0
  268. package/test-files/graph-tests/different-sized-networks/{80-genes-0-edges.xlsx → 134-genes-0-edges.xlsx} +0 -0
  269. package/test-files/graph-tests/different-sized-networks/{45-genes-max-edges.xlsx → 44-source-genes-45-target-genes-max-edges.xlsx} +0 -0
  270. package/test-files/graph-tests/different-sized-networks/{1-gene-0-edges.xlsx → unused-files/1-gene-0-edges.xlsx} +0 -0
  271. package/test-files/graph-tests/different-sized-networks/{1-gene-1-edges.xlsx → unused-files/1-gene-1-edges.xlsx} +0 -0
  272. package/test-files/graph-tests/different-sized-networks/{10-genes-50-edges.xlsx → unused-files/10-genes-50-edges.xlsx} +0 -0
  273. package/test-files/graph-tests/different-sized-networks/{10-genes-90-edges.xlsx → unused-files/10-genes-90-edges.xlsx} +0 -0
  274. package/test-files/graph-tests/different-sized-networks/{100-genes-0-edges.xlsx → unused-files/100-genes-0-edges.xlsx} +0 -0
  275. package/test-files/graph-tests/different-sized-networks/{110-genes-0-edges.xlsx → unused-files/110-genes-0-edges.xlsx} +0 -0
  276. package/test-files/graph-tests/different-sized-networks/{120-genes-0-edges.xlsx → unused-files/120-genes-0-edges.xlsx} +0 -0
  277. package/test-files/graph-tests/different-sized-networks/{130-genes-0-edges.xlsx → unused-files/130-genes-0-edges.xlsx} +0 -0
  278. package/test-files/graph-tests/different-sized-networks/{140-genes-0-edges.xlsx → unused-files/140-genes-0-edges.xlsx} +0 -0
  279. package/test-files/graph-tests/different-sized-networks/{150-genes-10000-edges.xlsx → unused-files/150-genes-10000-edges.xlsx} +0 -0
  280. package/test-files/graph-tests/different-sized-networks/{150-genes-20000-edges.xlsx → unused-files/150-genes-20000-edges.xlsx} +0 -0
  281. package/test-files/graph-tests/different-sized-networks/{150-genes-max-edges.xlsx → unused-files/150-genes-max-edges.xlsx} +0 -0
  282. package/test-files/graph-tests/different-sized-networks/{160-genes-max-edges.xlsx → unused-files/160-genes-max-edges.xlsx} +0 -0
  283. package/test-files/graph-tests/different-sized-networks/{20-genes-max-edges.xlsx → unused-files/20-genes-max-edges.xlsx} +0 -0
  284. package/test-files/graph-tests/different-sized-networks/{25-genes-max-edges.xlsx → unused-files/25-genes-max-edges.xlsx} +0 -0
  285. package/test-files/graph-tests/different-sized-networks/{30-genes-max-edges.xlsx → unused-files/30-genes-max-edges.xlsx} +0 -0
  286. package/test-files/graph-tests/different-sized-networks/{34-genes-0-edges.xlsx → unused-files/34-genes-0-edges.xlsx} +0 -0
  287. package/test-files/graph-tests/different-sized-networks/{34-genes-40-edges.xlsx → unused-files/34-genes-40-edges.xlsx} +0 -0
  288. package/test-files/graph-tests/different-sized-networks/{34-genes-65-edges.xlsx → unused-files/34-genes-65-edges.xlsx} +0 -0
  289. package/test-files/graph-tests/different-sized-networks/{34-genes-90-edges.xlsx → unused-files/34-genes-90-edges.xlsx} +0 -0
  290. package/test-files/graph-tests/different-sized-networks/{5-genes-max-edges.xlsx → unused-files/5-genes-max-edges.xlsx} +0 -0
  291. package/test-files/graph-tests/different-sized-networks/{51-genes-max-edges.xlsx → unused-files/51-genes-max-edges.xlsx} +0 -0
  292. package/test-files/graph-tests/different-sized-networks/{52-genes-max-edges.xlsx → unused-files/52-genes-max-edges.xlsx} +0 -0
  293. package/test-files/graph-tests/different-sized-networks/{55-genes-0-edges.xlsx → unused-files/55-genes-0-edges.xlsx} +0 -0
  294. package/test-files/graph-tests/different-sized-networks/{55-genes-max-edges.xlsx → unused-files/55-genes-max-edges.xlsx} +0 -0
  295. package/test-files/graph-tests/different-sized-networks/{65-genes-0-edges.xlsx → unused-files/65-genes-0-edges.xlsx} +0 -0
  296. package/test-files/graph-tests/different-sized-networks/{7-genes-max-edges.xlsx → unused-files/7-genes-max-edges.xlsx} +0 -0
  297. package/test-files/graph-tests/different-sized-networks/{70-genes-0-edges.xlsx → unused-files/70-genes-0-edges.xlsx} +0 -0
  298. package/test-files/graph-tests/different-sized-networks/{9-genes-max-edges.xlsx → unused-files/9-genes-max-edges.xlsx} +0 -0
  299. package/test-files/graph-tests/different-sized-networks/{90-genes-0-edges.xlsx → unused-files/90-genes-0-edges.xlsx} +0 -0
  300. 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
  301. package/test-files/node-tests/long-gene-name-no-spaces-first.xlsx +0 -0
  302. package/test-files/node-tests/long-gene-name-no-spaces-second.xlsx +0 -0
  303. package/test-files/node-tests/long-gene-name-spaces.xlsx +0 -0
  304. package/test-files/species-test-data/15-genes_28-edges_db5_Dahlquist-data_input_no-species.xlsx +0 -0
  305. package/test-files/species-test-data/15-genes_28-edges_db5_Dahlquist-data_input_with-species.xlsx +0 -0
  306. package/test-files/species-test-data/3-gene_7-edge_elegans.xlsx +0 -0
  307. package/test-files/species-test-data/3-gene_7-edge_melanogaster.xlsx +0 -0
  308. package/test-files/species-test-data/3-gene_7-edge_musculus.xlsx +0 -0
  309. package/test-files/species-test-data/3-gene_7-edge_sapiens.xlsx +0 -0
  310. package/test-files/species-test-data/kev-fake-data-sapiens-no-exp-data.xlsx +0 -0
  311. package/test-files/spreadsheet-controller-test-files/sheet-name-capitalized-network-optimized-weights.xlsx +0 -0
  312. package/test-files/spreadsheet-controller-test-files/sheet-name-capitalized-network.xlsx +0 -0
  313. package/web-client/app.js +1 -1
  314. package/web-client/config/config.js +5 -5
  315. package/web-client/controllers/main.js +5 -1
  316. package/web-client/public/favicon.ico +0 -0
  317. package/web-client/public/gene/GRNSight.svg +689 -0
  318. package/web-client/public/gene/PageDesignREADME.md +1 -0
  319. package/web-client/public/gene/api.js +442 -0
  320. package/web-client/public/gene/info.css +181 -0
  321. package/web-client/public/gene/info.js +334 -0
  322. package/web-client/public/gene/integrationREADME.md +52 -0
  323. package/web-client/public/js/constants.js +182 -0
  324. package/web-client/public/js/getGeneInformationREADME.md +4 -0
  325. package/web-client/public/js/graph-statistics.js +7 -7
  326. package/web-client/public/js/graph.js +480 -476
  327. package/web-client/public/js/grnsight.js +10 -9
  328. package/web-client/public/js/grnsight.min.js +2335 -0
  329. package/web-client/public/js/grnstate.js +147 -0
  330. package/web-client/public/js/iframe-coordination.js +55 -0
  331. package/web-client/public/js/setup-handlers.js +617 -0
  332. package/web-client/public/js/setup-load-and-import-handlers.js +180 -0
  333. package/web-client/public/js/update-app.js +980 -0
  334. package/web-client/public/js/upload.js +352 -578
  335. package/web-client/public/js/warnings.js +60 -0
  336. package/web-client/public/lib/iframeSizer.contentWindow.min.js +10 -0
  337. package/{documents/SDF/CMSI_402/spring_2018/writtenStatusReport4 → web-client/public/lib/jaspar-front.html} +0 -0
  338. package/web-client/public/stylesheets/grnsight.styl +176 -26
  339. package/web-client/public/stylesheets/print.styl +10 -4
  340. package/web-client/views/{graph.jade → graph.pug} +1 -3
  341. package/web-client/views/info.pug +215 -0
  342. package/web-client/views/upload.pug +587 -0
  343. package/_gh_pages/Gemfile +0 -7
  344. package/_gh_pages/Gemfile.lock +0 -129
  345. package/documents/SDF/CMSI_402/spring_2014/Southwick_CMSI402_Spring2014_software-development-plan.md +0 -71
  346. package/documents/SDF/CMSI_402/spring_2014/Southwick_CMSI402_Spring2014_software-requirements-specification.md +0 -71
  347. package/documents/SDF/CMSI_402/spring_2014/use-case-diagram-spring-2014.jpg +0 -0
  348. package/documents/SDF/CMSI_402/spring_2017/Anguiano_402_Final_Presentation.pptx +0 -0
  349. package/documents/SDF/CMSI_402/spring_2017/Anguiano_402_Presentation_Final_Poster.pdf +0 -0
  350. package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_project-proposal-presentation.pptx +0 -0
  351. package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_project-proposal.docx +0 -0
  352. package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_software-development-plan.docx +0 -0
  353. package/documents/SDF/CMSI_402/spring_2017/Anguiano_CMSI402_Spring2017_software-requirements-specification.docx +0 -0
  354. package/documents/SDF/CMSI_402/spring_2017/Design Review Presentation.pptx +0 -0
  355. package/documents/SDF/CMSI_402/spring_2018/0402report.docx +0 -0
  356. package/documents/SDF/CMSI_402/spring_2018/0409report.docx +0 -0
  357. package/documents/SDF/CMSI_402/spring_2018/402-gantt.png +0 -0
  358. package/documents/SDF/CMSI_402/spring_2018/402SRS_GRNSightFeedback01.txt +0 -28
  359. package/documents/SDF/CMSI_402/spring_2018/402_SPD.md +0 -223
  360. package/documents/SDF/CMSI_402/spring_2018/ChoeShinCMSI402_Final.pptx +0 -0
  361. package/documents/SDF/CMSI_402/spring_2018/ProjectProposal.md +0 -22
  362. package/documents/SDF/CMSI_402/spring_2018/SoftwareRequirementsSpecification.md +0 -88
  363. package/documents/SDF/CMSI_402/spring_2018/homework/choe_eileen/Choe_Eileen_CMSI 402_HW1.pdf +0 -0
  364. package/documents/SDF/CMSI_402/spring_2018/homework/choe_eileen/Choe_Eileen_CMSI402_HW2.pdf +0 -0
  365. package/documents/SDF/CMSI_402/spring_2018/homework/shin_jen/402hw2.docx +0 -0
  366. package/documents/SDF/CMSI_402/spring_2018/homework/shin_jen/Jen - 402Hw1.docx +0 -0
  367. package/documents/SDF/CMSI_402/spring_2018/homework/shin_jen/Jen - hw3.docx +0 -0
  368. package/documents/SDF/CMSI_402/spring_2018/writtenStatusReport.docx +0 -0
  369. package/documents/Varshneya_Samdarshi_LMU_Symposium_2016.pptx +0 -0
  370. package/documents/abstracts/Anguiano_Varshneya_Undergraduate-Research-Symposium_2017_abstract.pdf +0 -0
  371. package/documents/abstracts/SIGGRAPH 2017 Abstract/ACM-Reference-Format.bst +0 -3478
  372. package/documents/abstracts/SIGGRAPH 2017 Abstract/Figure1_zoom100.png +0 -0
  373. package/documents/abstracts/SIGGRAPH 2017 Abstract/acmart.cls +0 -2352
  374. package/documents/abstracts/SIGGRAPH 2017 Abstract/acmart.ins +0 -29
  375. package/documents/abstracts/SIGGRAPH 2017 Abstract/always-weights.png +0 -0
  376. package/documents/abstracts/SIGGRAPH 2017 Abstract/auto.png +0 -0
  377. package/documents/abstracts/SIGGRAPH 2017 Abstract/networkA.png +0 -0
  378. package/documents/abstracts/SIGGRAPH 2017 Abstract/networkB-normalized.png +0 -0
  379. package/documents/abstracts/SIGGRAPH 2017 Abstract/networkB.png +0 -0
  380. package/documents/abstracts/SIGGRAPH 2017 Abstract/never-weights.png +0 -0
  381. package/documents/abstracts/SIGGRAPH 2017 Abstract/representative-image/screenshot.jpg +0 -0
  382. package/documents/abstracts/SIGGRAPH 2017 Abstract/representative-image/screenshot3x2.png +0 -0
  383. package/documents/abstracts/SIGGRAPH 2017 Abstract/representative-image/withweights3x2.png +0 -0
  384. package/documents/abstracts/SIGGRAPH 2017 Abstract/screenshot-auto.png +0 -0
  385. package/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.bib +0 -85
  386. package/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.pdf +0 -0
  387. package/documents/abstracts/SIGGRAPH 2017 Abstract/siggraph-abstract-review.tex +0 -235
  388. package/documents/abstracts/SWE Collegiate Competition 2017.md +0 -9
  389. package/documents/abstracts/Varshneya_Samdarshi_Southern-California-Systems-Biology_2017_abstract.docx +0 -0
  390. package/documents/developer_documents/State Diagram.graphml +0 -3525
  391. package/documents/developer_documents/graphml/State Diagram.graphml +0 -3115
  392. package/documents/developer_documents/older_versions/GRNsight State Diagram old.png +0 -0
  393. package/documents/developer_documents/older_versions/GRNsight State Diagram.png +0 -0
  394. package/documents/developer_documents/testing_script_generator/GRNsightTestingDocument.md +0 -998
  395. package/documents/developer_documents/testing_script_generator/featureList.json +0 -486
  396. package/documents/developer_documents/testing_script_generator/testing-script-generator.js +0 -149
  397. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_conference-presentations_2016.docx +0 -0
  398. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016.docx +0 -0
  399. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016_Table1.docx +0 -0
  400. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016_references.rtf +0 -264
  401. package/documents/manuscripts/peerj-computerscience-2016/GRNsight_PeerJ-CS_manuscript_2016_text-only.docx +0 -0
  402. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/21-genes_31-edges_Schade-data_for-screenshots.xlsx +0 -0
  403. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom100.jpg +0 -0
  404. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom100.png +0 -0
  405. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom100.psd +0 -0
  406. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145.jpg +0 -0
  407. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145.png +0 -0
  408. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145.psd +0 -0
  409. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure1_zoom145_900pix-wide.psd +0 -0
  410. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom100.jpg +0 -0
  411. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom100.png +0 -0
  412. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom100.psd +0 -0
  413. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145.jpg +0 -0
  414. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145.png +0 -0
  415. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145.psd +0 -0
  416. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure2_zoom145_900pix-wide.psd +0 -0
  417. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5A.pdf +0 -0
  418. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5B.pdf +0 -0
  419. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5C.eps +0 -0
  420. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5D.pdf +0 -0
  421. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5E.pdf +0 -0
  422. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5F.eps +0 -0
  423. package/documents/manuscripts/peerj-computerscience-2016/figures/other-versions/Figure5_compiled.png +0 -0
  424. package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure3_GRNsight-Architecture.pdf +0 -0
  425. package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure4_GRNsight-Screenshot.pdf +0 -0
  426. package/documents/manuscripts/peerj-computerscience-2016/figures/submitted-versions/Figure5_compiled.pdf +12 -5383
  427. package/documents/manuscripts/peerj-computerscience-2016/peerj-reviewing-10823-v0.pdf +0 -0
  428. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_conference-presentations_2016_revised.docx +0 -0
  429. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_cover-letter-and-response_2016.pdf +0 -0
  430. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_cover-letter_2016.docx +0 -0
  431. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_cover-letter_2016.pdf +0 -0
  432. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_Table1.docx +0 -0
  433. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_references_revised.rtf +0 -385
  434. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_text-only_revised.docx +0 -0
  435. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_manuscript_2016_text-only_revised_marked.docx +0 -0
  436. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_response-to-reviewers_2016.docx +0 -0
  437. package/documents/manuscripts/peerj-computerscience-2016/revisions/GRNsight_PeerJ-CS_response-to-reviewers_2016.pdf +0 -0
  438. package/documents/manuscripts/peerj-computerscience-2016/revisions/figures/Figure3_GRNsight-Architecture.pdf +0 -0
  439. package/documents/manuscripts/peerj-computerscience-2016/revisions/figures/Figure4_GRNsight-Screenshot-auto.pdf +0 -0
  440. package/documents/manuscripts/peerj-computerscience-2016/revisions/figures/Figure4_GRNsight-Screenshot.pdf +0 -0
  441. package/documents/manuscripts/peerj-computerscience-2016/revisions/peerj-reviewing-10823-v1.pdf +0 -0
  442. package/documents/posters/Anguiano_402_Presentation_Draft_Poster.pdf +0 -0
  443. package/documents/posters/Anguiano_402_Presentation_Draft_Poster.pptx +0 -0
  444. package/documents/posters/Anguiano_Varshneya_LMU-Symposium_2015_poster.pptx +0 -0
  445. package/documents/posters/Anguiano_Varshneya_SCCUR-Poster_20141122_poster.pptx +0 -0
  446. package/documents/posters/ChoeShinCMSI402-2.pptx +0 -0
  447. package/documents/posters/ChoeShinCMSI402.pptx +0 -0
  448. package/documents/posters/ChoeShinCMSI402Final.pptx +0 -0
  449. package/documents/posters/Dahlquist-et-al_BOSC_ISMB_2016_poster.pptx +0 -0
  450. package/documents/posters/Samdarshi et al. LMU Symposium 2017-finalDraft.pptx +0 -0
  451. package/documents/posters/Samdarshi et al. LMU Symposium 2018-firstDraft.pptx +0 -0
  452. package/documents/posters/Shin et al. SCCUR 2017 FinalDraft.pptx +0 -0
  453. package/documents/posters/Southwick_CMSI402_2014_poster.pptx +0 -0
  454. package/documents/posters/Varshneya_Samdarshi_LMU-Symposium_2016_poster.pptx +0 -0
  455. package/documents/posters/Varshneya_Samdarshi_Southern-California-Systems-Biology-Conference_2017_poster.pptx +0 -0
  456. package/documents/posters/~$Samdarshi et al. LMU Symposium 2018-firstDraft.pptx +0 -0
  457. package/documents/presentations/Anguiano_402_Final_Presentation.pptx +0 -0
  458. package/documents/presentations/Choe_SCCUR2017.pptx +0 -0
  459. package/documents/presentations/Choe_SWERapidFire2017_final.pptx +0 -0
  460. package/documents/presentations/Dahlquist_BOSC_20160709.pptx +0 -0
  461. package/documents/presentations/Dahlquist_ExperimentalBiology_20160404_talk.pptx +0 -0
  462. package/documents/presentations/Dahlquist_SoCalSysBio_20150131_talk.pptx +0 -0
  463. package/documents/presentations/Samdarshi et al. LMU Symposium 2017-draft.pptx +0 -0
  464. package/documents/presentations/Southwick_Anguiano_LMU-Symposium_20140329_talk.pptx +0 -0
  465. package/documents/presentations/Southwick_CMSI402_Presentation_20140508_talk.pptx +0 -0
  466. package/documents/presentations/Varshneya-Anguiano-LMU Symposium-201703.pptx +0 -0
  467. package/documents/presentations/~$Choe_SWERapidFire2017_final.pptx +0 -0
  468. package/documents/reports/Varshneya-201701-AnnotatedBibliography.docx +0 -0
  469. package/documents/reports/Varshneya-201702-Introduction.docx +0 -0
  470. package/documents/reports/Varshneya-201702-Outline.docx +0 -0
  471. package/documents/reports/Varshneya-201703-Discussion.docx +0 -0
  472. package/documents/reports/Varshneya-201703-MMResults.docx +0 -0
  473. package/documents/reports/Varshneya-201704-Draft-1.docx +0 -0
  474. package/documents/reports/Varshneya-201704-Final.docx +0 -0
  475. package/test/graph-library-tests.js +0 -165
  476. package/test-files/demo-files/21-genes_50-edges_Dahlquist-data_estimation_output.xlsx +0 -0
  477. package/test-files/demo-files/21-genes_50-edges_Dahlquist-data_input.xlsx +0 -0
  478. package/test-files/graph-tests/different-sized-networks/10-genes-max-edges.xlsx +0 -0
  479. package/test-files/graph-tests/different-sized-networks/12-genes-max-edges.xlsx +0 -0
  480. package/test-files/graph-tests/different-sized-networks/35-genes-max-edges.xlsx +0 -0
  481. package/test-files/graph-tests/different-sized-networks/40-genes-0-edges.xlsx +0 -0
  482. package/test-files/graph-tests/different-sized-networks/40-genes-max-edges.xlsx +0 -0
  483. package/test-files/graph-tests/different-sized-networks/42-genes-max-edges.xlsx +0 -0
  484. package/test-files/graph-tests/different-sized-networks/50-genes-max-edges.xlsx +0 -0
  485. package/test-files/graph-tests/different-sized-networks/75-genes-150-edges.xlsx +0 -0
  486. package/web-client/public/js/container.js +0 -121
  487. package/web-client/public/js/node-coloring.js +0 -306
  488. package/web-client/public/js/sliders.js +0 -197
  489. package/web-client/views/upload.jade +0 -458
@@ -1,5 +1,6 @@
1
1
  var assert = require("chai").assert;
2
2
  var xlsx = require("node-xlsx");
3
+ var test = require("./test");
3
4
  var parseAdditionalSheets = require(__dirname + "/../server/controllers/additional-sheet-parser");
4
5
  var grnmapOutputWorkbookPath = __dirname + "/../test-files/spreadsheet-controller-test-files/" +
5
6
  "15-genes_28-edges_db5-MO-LK_Sigmoid_estimation_missing-values_output.xlsx";
@@ -29,7 +30,7 @@ describe("additional-sheet-parser", function () {
29
30
  assert(data,
30
31
  {"expression": {
31
32
  "wt_log2_expression": {
32
- "time_points": [15, 15, 15, 15, 30, 30, 30, 30, 30, 60, 60, 60, 60],
33
+ "timePoints": [15, 15, 15, 15, 30, 30, 30, 30, 30, 60, 60, 60, 60],
33
34
  "data": {
34
35
  "ACE2":[0.6139, -1.0689, 0.1906, -0.398, 0.5827, null,
35
36
  -0.3947, -0.6264, 0.3377, 0.817, 0.5566, -0.4357, -1.2497],
@@ -45,47 +46,155 @@ describe("additional-sheet-parser", function () {
45
46
  });
46
47
  });
47
48
 
48
- it("correctly identifies expression sheets by suffix", function () {
49
- var workbook = xlsx.parse(__dirname + "/../test-files/spreadsheet-controller-test-files/" +
50
- "expression_sheet_names_test.xlsx");
51
- var data = parseAdditionalSheets(workbook);
52
- assert(Object.keys(data.expression).length, 3);
49
+ // Commenting out bc we are restructuring how sheets are parsed.
50
+ // Expression sheets will be parsed separately.
51
+ // it("correctly identifies expression sheets by suffix", function () {
52
+ // var workbook = xlsx.parse(__dirname + "/../test-files/spreadsheet-controller-test-files/" +
53
+ // "expression_sheet_names_test.xlsx");
54
+ // var data = parseAdditionalSheets(workbook);
55
+ // assert(Object.keys(data.expression).length, 3);
56
+ // });
57
+
58
+ describe("optimization parameters sheet", function () {
59
+ it("correctly parses optimization_parameters sheet", function () {
60
+ var workbook = xlsx.parse(__dirname + "/../test-files/spreadsheet-controller-test-files/" +
61
+ "optimization_parameters_test.xlsx");
62
+ var data = parseAdditionalSheets(workbook);
63
+ /* eslint-disable */
64
+ assert(data.meta, {
65
+ alpha: 0.002,
66
+ kk_max: 1,
67
+ MaxIter: 100000000,
68
+ TolFun: 0.000001,
69
+ MaxFunEval: 100000000,
70
+ TolX: 0.000001,
71
+ production_function: 'Sigmoid',
72
+ L_curve: 0,
73
+ estimate_params: 1,
74
+ make_graphs: 1,
75
+ fix_P: 0,
76
+ fix_b: 0,
77
+ expression_timepoints: [15, 30, 60],
78
+ Strain: ['wt', 'dcin5', 'dgln3', 'dhap4', 'dhmo1', 'dzap1'],
79
+ simulation_timepoints: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60]
80
+ });
81
+ /* eslint-enable */
82
+ });
83
+
84
+ it("should return additionalSheetMissingColumnHeaderError", function () {
85
+ test.additionalSheetMissingColumnHeaderError(
86
+ "test-files/additional-sheet-test-files/optimization-parameters-missing-headers.xlsx", 2);
87
+ });
88
+
89
+ it("should return unknownOptimizationParameterWarning", function () {
90
+ test.unknownOptimizationParameterWarning(
91
+ "test-files/additional-sheet-test-files/optimization-parameters-unknown-parameter.xlsx", 1);
92
+ });
93
+
94
+ it("should return invalidOptimizationParameterWarning", function () {
95
+ test.invalidOptimizationParameterWarning(
96
+ "test-files/additional-sheet-test-files/optimization-parameters-invalid-optimization-parameter.xlsx",
97
+ 2);
98
+ });
53
99
  });
54
100
 
55
- it("correctly parses optimization_parameters sheet", function () {
56
- var workbook = xlsx.parse(__dirname + "/../test-files/spreadsheet-controller-test-files/" +
57
- "optimization_parameters_test.xlsx");
58
- var data = parseAdditionalSheets(workbook);
59
- /* eslint-disable */
60
- assert(data.meta, {
61
- alpha: 0.002,
62
- kk_max: 1,
63
- MaxIter: 100000000,
64
- TolFun: 0.000001,
65
- MaxFunEval: 100000000,
66
- TolX: 0.000001,
67
- production_function: 'Sigmoid',
68
- L_curve: 0,
69
- estimate_params: 1,
70
- make_graphs: 1,
71
- fix_P: 0,
72
- fix_b: 0,
73
- expression_timepoints: [ 15, 30, 60 ],
74
- Strain: [ 'wt', 'dcin5', 'dgln3', 'dhap4', 'dhmo1', 'dzap1' ],
75
- simulation_timepoints: [ 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60 ]
76
- });
77
- /* eslint-enable */
101
+ describe("two column sheets", function () {
102
+ it("correctly parses data in a 2-column format", function () {
103
+ var workbook = xlsx.parse(__dirname + "/../test-files/spreadsheet-controller-test-files/" +
104
+ "2_column_data_format_test.xlsx");
105
+ var data = parseAdditionalSheets(workbook);
106
+ assert(data["test"]["degradation_rates"], {
107
+ "ACE2": 0.1118,
108
+ "ASH1": 0.2166,
109
+ "CIN5": 0.1005,
110
+ "GCR2": 0.0963
111
+ });
112
+ });
113
+
114
+ it("should return twoColumnIdError", function () {
115
+ test.twoColumnIdError("test-files/additional-sheet-test-files/two-column-sheets-incorrect-cell-A1.xlsx", 5);
116
+ });
117
+
118
+ it("should return additionalSheetIncorrectColumnHeaderError", function () {
119
+ test.additionalSheetIncorrectColumnHeaderError(
120
+ "test-files/additional-sheet-test-files/two-column-sheets-incorrect-column-header.xlsx", 5);
121
+ });
122
+
123
+ it("should return additionalSheetMissingColumnHeaderError", function () {
124
+ test.additionalSheetMissingColumnHeaderError(
125
+ "test-files/additional-sheet-test-files/two-column-sheets-missing-column-header.xlsx", 5);
126
+ });
127
+
128
+ it("should return twoColumnInvalidGeneTypeError", function () {
129
+ test.twoColumnInvalidGeneTypeError(
130
+ "test-files/additional-sheet-test-files/two-column-sheets-invalid-gene-type.xlsx", 10);
131
+ });
132
+
133
+ it("should return twoColumnInvalidValueError", function () {
134
+ test.twoColumnInvalidValueError(
135
+ "test-files/additional-sheet-test-files/two-column-sheets-invalid-value.xlsx", 10);
136
+ });
137
+
138
+ it("should return twoColumnInvalidGeneLengthError", function () {
139
+ test.twoColumnInvalidGeneLengthError(
140
+ "test-files/additional-sheet-test-files/two-column-sheets-invalid-gene-length.xlsx", 5);
141
+ });
142
+
143
+ it("should return twoColumnSpecialCharacterError", function () {
144
+ test.twoColumnSpecialCharacterError(
145
+ "test-files/additional-sheet-test-files/two-column-sheets-special-character.xlsx", 5);
146
+ });
147
+
148
+ it("should return additionalSheetExtraneousDataWarning", function () {
149
+ test.additionalSheetExtraneousDataWarning(
150
+ "test-files/additional-sheet-test-files/two-column-sheets-extraneous-data.xlsx", 5);
151
+ });
78
152
  });
79
153
 
80
- it("correctly parses data in a 2-column format", function () {
81
- var workbook = xlsx.parse(__dirname + "/../test-files/spreadsheet-controller-test-files/" +
82
- "2_column_data_format_test.xlsx");
83
- var data = parseAdditionalSheets(workbook);
84
- assert(data["test"]["degradation_rates"], {
85
- "ACE2": 0.1118,
86
- "ASH1": 0.2166,
87
- "CIN5": 0.1005,
88
- "GCR2": 0.0963
154
+ describe("optimization diagnostics sheet", function () {
155
+ it("should return additionalSheetIncorrectColumnHeader Error", function () {
156
+ test.additionalSheetIncorrectColumnHeaderError(
157
+ "test-files/additional-sheet-test-files/optimization-diagnostics-incorrect-column-headers.xlsx", 2);
158
+ });
159
+
160
+ it("should return additionalSheetMissingColumnHeader Error", function () {
161
+ test.additionalSheetMissingColumnHeaderError(
162
+ "test-files/additional-sheet-test-files/optimization-diagnostics-missing-column-headers.xlsx", 2);
163
+ });
164
+
165
+ it("should return unknownOptimizationDiagnosticsParameter Warning", function () {
166
+ test.unknownOptimizationDiagnosticsParameterWarning(
167
+ "test-files/additional-sheet-test-files/optimization-diagnostics-unknown-parameter.xlsx", 1);
168
+ });
169
+
170
+ it("should return invalidOptimizationDiagnosticsValue Warning", function () {
171
+ test.invalidOptimizationDiagnosticsValueWarning(
172
+ "test-files/additional-sheet-test-files/optimization-diagnostics-invalid-value.xlsx", 1);
173
+ });
174
+
175
+ it("should return optimizationDiagnosticsExtraneousData Warning", function () {
176
+ test.optimizationDiagnosticsExtraneousDataWarning(
177
+ "test-files/additional-sheet-test-files/optimization-diagnostics-extraneous-data.xlsx", 3);
178
+ });
179
+
180
+ it("should return incorrectMSEGeneHeader Warning", function () {
181
+ test.incorrectMSEGeneHeaderWarning(
182
+ "test-files/additional-sheet-test-files/optimization-diagnostics-incorrect-MSE-gene-header.xlsx", 1);
183
+ });
184
+
185
+ it("should return incorrectMSEHeader Warning", function () {
186
+ test.incorrectMSEHeaderWarning(
187
+ "test-files/additional-sheet-test-files/optimization-diagnostics-incorrect-MSE-header.xlsx", 3);
188
+ });
189
+
190
+ it("should return missingMSEData Warning", function () {
191
+ test.missingMSEDataWarning(
192
+ "test-files/additional-sheet-test-files/optimization-diagnostics-missing-MSE-data.xlsx", 10);
193
+ });
194
+
195
+ it("should return invalidMSEData Warning", function () {
196
+ test.invalidMSEDataWarning(
197
+ "test-files/additional-sheet-test-files/optimization-diagnostics-invalid-MSE-data.xlsx", 4);
89
198
  });
90
199
  });
91
200
  });
@@ -0,0 +1,245 @@
1
+ const jsdom = require("jsdom");
2
+
3
+ // Our fake document needs a #service-root element so that a fake "host" can be found by the code.
4
+ const { document } = (new jsdom.JSDOM("<input type='hidden' id='service-root' value='http://test'>")).window;
5
+ global.document = document;
6
+ global.window = document;
7
+
8
+ // 1. JSDOM puts the XMLHttpRequest in document.defaultView
9
+ // 2. jQuery looks for it there
10
+ // 3. But Sinon looks for it in _global_, so we have to put it there before loading Sinon
11
+ global.XMLHttpRequest = document.defaultView.XMLHttpRequest;
12
+
13
+ let $ = require("jquery")(document.defaultView);
14
+
15
+ global.$ = $;
16
+ const chai = require("chai");
17
+
18
+ const expect = chai.expect;
19
+ const sinon = require("sinon");
20
+
21
+
22
+
23
+
24
+ const {XMLSerializer} = require("w3c-xmlserializer");
25
+ global.XMLSerializer = XMLSerializer.expose.Window.XMLSerializer;
26
+
27
+ require(__dirname + "/../web-client/public/gene/api.js");
28
+
29
+ describe("The Gene Page", () => {
30
+
31
+ // final result is a promise
32
+ // call this with known input
33
+ // part of what the function needs is a workbook request, alongside the query -
34
+ // tell fake server "idc who asks, make this response"
35
+ // mocks return the data ONLY IF the correct parameters are supplied
36
+ // set up fake server to only return happy answers with expected URLS and fail everything else
37
+
38
+ let server;
39
+ beforeEach(() => {
40
+ server = sinon.createFakeServer();
41
+ server.respondImmediately = true;
42
+
43
+ // Sinon replaces global.XMLHttpRequest but not the one in document.defaultView.
44
+ // However, that's where jQuery looks for XMLHttpRequest so we need to manually
45
+ // "install" it there.
46
+ document.defaultView.XMLHttpRequest = global.XMLHttpRequest;
47
+ });
48
+
49
+ afterEach(() => {
50
+ server.restore();
51
+
52
+ // By the same token, Sinon’s restoration affects global.XMLHttpRequest. We then need
53
+ // to manually restore this to document.defaultView.
54
+ document.defaultView.XMLHttpRequest = global.XMLHttpRequest;
55
+ });
56
+
57
+ const query = {
58
+ symbol: "YHP1",
59
+ species: "Saccharomyces_cerevisiae",
60
+ taxon: 12345
61
+ };
62
+
63
+
64
+ it("makes the correct call to Uniprot", done => {
65
+
66
+ const testString = "yourlist:M201904306746803381A1F0E0DB47453E0216320D0BAD3EL Entry Entry name Status"
67
+ + " Protein names Gene names Organism Length YHP1 Q04116 "
68
+ + "YHP1_YEAST reviewed Homeobox protein YHP1 "
69
+ + "YHP1 YDR451C D9461.36 Saccharomyces cerevisiae";
70
+
71
+ server.respondWith([
72
+ 200,
73
+ {"Content-Type": "text/plain" }, testString]);
74
+
75
+
76
+ global.window.api.getUniProtInfo(query).then((data) => {
77
+ expect(data).to.equal(testString);
78
+
79
+ done();
80
+ }).catch(() => {
81
+ done();
82
+ });
83
+
84
+ });
85
+
86
+ it("makes the correct call to NCBI", done => {
87
+
88
+ const testString = `<?xml version="1.0" encoding="UTF-8" ?>
89
+ <!DOCTYPE eSearchResult PUBLIC "-//NLM//DTD esearch 20060628//EN"
90
+ "https://eutils.ncbi.nlm.nih.gov/eutils/dtd/20060628/esearch.dtd">
91
+ <eSearchResult><Count>1</Count><RetMax>1</RetMax><RetStart>0</RetStart><IdList>
92
+ <Id>852062</Id>
93
+ </IdList><TranslationSet><Translation>
94
+ <From>+Saccharomyces+cerevisiae[Organism]</From>
95
+ <To>"Saccharomyces cerevisiae"[Organism]</To>
96
+ </Translation></TranslationSet><TranslationStack>
97
+ <TermSet> <Term>YHP1[gene]</Term> <Field>gene</Field> <Count>1</Count>
98
+ <Explode>N</Explode> </TermSet> <TermSet> <Term>"Saccharomyces cerevisiae"[Organism]</Term>
99
+ <Field>Organism</Field> <Count>7062</Count> <Explode>Y</Explode> </TermSet> <OP>AND</OP>
100
+ </TranslationStack><QueryTranslation>YHP1[gene] AND "Saccharomyces cerevisiae"[Organism]</QueryTranslation>
101
+ </eSearchResult>`;
102
+
103
+
104
+ let NCBIDoc = document.implementation.createDocument("", "", null);
105
+ let sequenceText = NCBIDoc.createTextNode(testString);
106
+ NCBIDoc.appendChild(sequenceText);
107
+ server.respondWith([
108
+ 200,
109
+ {"Content-Type": "text/plain" }, testString]);
110
+
111
+
112
+ global.window.api.getNCBIInfo(query).then((data) => {
113
+ expect(data).to.equal(testString);
114
+
115
+ done();
116
+ }).catch(() => {
117
+ done();
118
+ });
119
+
120
+ });
121
+
122
+ it("makes the correct call to JASPAR", done => {
123
+
124
+ const testObject = {"results":[{"matrix_id":"MA0426.1", "name":"YHP1"}]};
125
+
126
+
127
+ server.respondWith([
128
+ 200,
129
+ {"Content-Type": "application/json" }, JSON.stringify(testObject)]);
130
+
131
+
132
+ global.window.api.getJasparInfo(query).then((data) => {
133
+ expect(data.results[0].matrix_id).to.equal(testObject.results[0].matrix_id);
134
+ done();
135
+ }).catch(() => {
136
+ done();
137
+ });
138
+
139
+ });
140
+
141
+ it("makes the correct call to YeastMine (general data)", done => {
142
+
143
+ const testObject = {"results":[
144
+ {"symbol":"YHP1", "length":1062,
145
+ "description":"Homeobox transcriptional repressor",
146
+ "geneSummary":null, "primaryIdentifier":"S000002859"}
147
+ ],
148
+ "wasSuccessful":true,
149
+ "error":null,
150
+ "statusCode":200};
151
+
152
+
153
+ server.respondWith([
154
+ 200,
155
+ {"Content-Type": "application/json" }, JSON.stringify(testObject)]);
156
+
157
+
158
+ global.window.api.getYeastMineInfo(query).then((data) => {
159
+ expect(data.results[0].description).to.equal(testObject.results[0].description);
160
+ done();
161
+ }).catch(() => {
162
+ done();
163
+ });
164
+
165
+ });
166
+
167
+ it("makes the correct call to YeastMine (general data)", done => {
168
+
169
+ const testObject = {"results":[
170
+ {"symbol":"YHP1", "length":1062,
171
+ "description":"Homeobox transcriptional repressor",
172
+ "geneSummary":null, "primaryIdentifier":"S000002859"}
173
+ ],
174
+ "wasSuccessful":true,
175
+ "error":null,
176
+ "statusCode":200};
177
+
178
+
179
+ server.respondWith([
180
+ 200,
181
+ {"Content-Type": "application/json" }, JSON.stringify(testObject)]);
182
+
183
+
184
+ global.window.api.getYeastMineInfo(query).then((data) => {
185
+ expect(data.results[0].description).to.equal(testObject.results[0].description);
186
+ done();
187
+ }).catch(() => {
188
+ done();
189
+ });
190
+
191
+ });
192
+
193
+ it("makes the correct call to YeastMine (regulation info)", done => {
194
+
195
+ const testObject = [
196
+ {properties:
197
+ {id: 6393710}},
198
+ {properties:
199
+ {id: 6393710}}
200
+ ];
201
+
202
+
203
+
204
+ server.respondWith([
205
+ 200,
206
+ {"Content-Type": "application/json" }, JSON.stringify(testObject)]);
207
+
208
+
209
+ global.window.api.getRegulationInfo(query).then((data) => {
210
+ expect(data[0].properties.id).to.equal(data[0].properties.id);
211
+ expect(data.length).to.equal(2);
212
+ done();
213
+ }).catch(() => {
214
+ done();
215
+ });
216
+
217
+ });
218
+
219
+ it("makes the correct call to YeastMine (gene ontology info)", done => {
220
+
221
+ const testObject = [
222
+ {properties:
223
+ {id: 6393710}},
224
+ {properties:
225
+ {id: 6393710}}
226
+ ];
227
+
228
+
229
+
230
+ server.respondWith([
231
+ 200,
232
+ {"Content-Type": "application/json" }, JSON.stringify(testObject)]);
233
+
234
+
235
+ global.window.api.getGeneOntologyInfo(query).then((data) => {
236
+ expect(data[0].properties.id).to.equal(data[0].properties.id);
237
+ expect(data.length).to.equal(2);
238
+ done();
239
+ }).catch(() => {
240
+ done();
241
+ });
242
+
243
+ });
244
+
245
+ });
@@ -16,7 +16,7 @@ describe("errors-adjacency-matrix-modifications", function () {
16
16
  });
17
17
 
18
18
  describe("empty-row", function () {
19
- it("should return empty row error", function () {
19
+ it("should throw EMPTY_ROW error", function () {
20
20
  test.emptyRowError("test-files/adjacency-matrix-modifications/empty-row-input.xlsx", 1);
21
21
  test.emptyRowError("test-files/adjacency-matrix-modifications/empty-row-output.xlsx", 1);
22
22
  });
@@ -46,9 +46,9 @@ describe("errors-adjacency-matrix-modifications", function () {
46
46
  });
47
47
 
48
48
  describe("extra-column-one-column-skipped", function () {
49
- it("should not return any errors", function () {
50
- test.noErrors("test-files/adjacency-matrix-modifications/extra-column-one-column-skipped-input.xlsx");
51
- test.noErrors("test-files/adjacency-matrix-modifications/extra-column-one-column-skipped-output.xlsx");
49
+ it("should return EMPTYCOLUMN error", function () {
50
+ test.emptyColumnError("test-files/adjacency-matrix-modifications/extra-column-one-column-skipped-input.xlsx", 1);
51
+ test.emptyColumnError("test-files/adjacency-matrix-modifications/extra-column-one-column-skipped-output.xlsx", 1);
52
52
  });
53
53
  });
54
54
 
@@ -88,16 +88,17 @@ describe("errors-adjacency-matrix-modifications", function () {
88
88
  });
89
89
 
90
90
  describe("empty-row-or-column", function () {
91
- it("should not return any errors", function () {
92
- test.noErrors("test-files/adjacency-matrix-modifications/empty-column-input.xlsx");
93
- test.noErrors("test-files/adjacency-matrix-modifications/empty-column-output.xlsx");
91
+ it("should throw EMPTY_ROW or EMPTY_COLUMN errors ", function () {
92
+ test.emptyColumnError("test-files/adjacency-matrix-modifications/empty-column-input.xlsx", 1);
93
+ test.emptyColumnError("test-files/adjacency-matrix-modifications/empty-column-output.xlsx", 1);
94
94
  test.emptyRowError("test-files/adjacency-matrix-modifications/empty-row-input.xlsx", 1);
95
95
  test.emptyRowError("test-files/adjacency-matrix-modifications/empty-row-output.xlsx", 1);
96
96
  });
97
97
  });
98
98
 
99
+ // TEST NEEDS TO BE LOOKED AT
99
100
  describe("missing-value-top-corner", function () {
100
- it("should not return any errors", function () {
101
+ xit("should not return any errors", function () {
101
102
  test.noErrors("test-files/adjacency-matrix-modifications/missing-value-top-corner-input.xlsx");
102
103
  test.noErrors("test-files/adjacency-matrix-modifications/missing-value-top-corner-output.xlsx");
103
104
  });
@@ -118,51 +119,51 @@ describe("errors-adjacency-matrix-modifications", function () {
118
119
  });
119
120
 
120
121
  describe("missing-row-top", function () {
121
- it("should not return any errors", function () {
122
- test.noErrors("test-files/adjacency-matrix-modifications/missing-row-top-input.xlsx");
123
- test.noErrors("test-files/adjacency-matrix-modifications/missing-row-top-output.xlsx");
122
+ it("should return empty row data error", function () {
123
+ test.emptyRowDataError("test-files/adjacency-matrix-modifications/missing-row-top-input.xlsx", 1);
124
+ test.emptyRowDataError("test-files/adjacency-matrix-modifications/missing-row-top-output.xlsx", 1);
124
125
  });
125
126
  });
126
127
 
127
128
  describe("missing-row-middle", function () {
128
- it("should not return any errors", function () {
129
- test.noErrors("test-files/adjacency-matrix-modifications/missing-row-middle-input.xlsx");
130
- test.noErrors("test-files/adjacency-matrix-modifications/missing-row-middle-output.xlsx");
129
+ it("should return empty row data error", function () {
130
+ test.emptyRowDataError("test-files/adjacency-matrix-modifications/missing-row-middle-input.xlsx", 1);
131
+ test.emptyRowDataError("test-files/adjacency-matrix-modifications/missing-row-middle-output.xlsx", 1);
131
132
  });
132
133
  });
133
134
 
134
135
  describe("missing-row-end", function () {
135
- it("should not return any errors", function () {
136
- test.noErrors("test-files/adjacency-matrix-modifications/missing-row-end-input.xlsx");
137
- test.noErrors("test-files/adjacency-matrix-modifications/missing-row-end-output.xlsx");
136
+ it("should return empty row data error", function () {
137
+ test.emptyRowDataError("test-files/adjacency-matrix-modifications/missing-row-end-input.xlsx", 1);
138
+ test.emptyRowDataError("test-files/adjacency-matrix-modifications/missing-row-end-output.xlsx", 1);
138
139
  });
139
140
  });
140
141
 
141
142
  describe("missing-column-top", function () {
142
- it("should not return any errors", function () {
143
- test.noErrors("test-files/adjacency-matrix-modifications/missing-column-top-input.xlsx");
144
- test.noErrors("test-files/adjacency-matrix-modifications/missing-column-top-output.xlsx");
143
+ it("should throw EMPTY_COLUMN_DATA error", function () {
144
+ test.emptyColumnDataError("test-files/adjacency-matrix-modifications/missing-column-top-input.xlsx", 1);
145
+ test.emptyColumnDataError("test-files/adjacency-matrix-modifications/missing-column-top-output.xlsx", 1);
145
146
  });
146
147
  });
147
148
 
148
149
  describe("missing-column-middle", function () {
149
- it("should not return any errors", function () {
150
- test.noErrors("test-files/adjacency-matrix-modifications/missing-column-middle-input.xlsx");
151
- test.noErrors("test-files/adjacency-matrix-modifications/missing-column-middle-output.xlsx");
150
+ it("should throw EMPTY_COLUMN_DATA error", function () {
151
+ test.emptyColumnDataError("test-files/adjacency-matrix-modifications/missing-column-middle-input.xlsx", 1);
152
+ test.emptyColumnDataError("test-files/adjacency-matrix-modifications/missing-column-middle-output.xlsx", 1);
152
153
  });
153
154
  });
154
155
 
155
156
  describe("missing-column-end", function () {
156
- it("should not return any errors", function () {
157
- test.noErrors("test-files/adjacency-matrix-modifications/missing-column-end-input.xlsx");
158
- test.noErrors("test-files/adjacency-matrix-modifications/missing-column-end-output.xlsx");
157
+ it("should throw EMPTY_COLUMN_DATA error", function () {
158
+ test.emptyColumnDataError("test-files/adjacency-matrix-modifications/missing-column-end-input.xlsx", 1);
159
+ test.emptyColumnDataError("test-files/adjacency-matrix-modifications/missing-column-end-output.xlsx", 1);
159
160
  });
160
161
  });
161
162
 
162
163
  describe("missing-data", function () {
163
- it("should not return any errors", function () {
164
- test.noErrors("test-files/adjacency-matrix-modifications/missing-data-input.xlsx");
165
- test.noErrors("test-files/adjacency-matrix-modifications/missing-data-output.xlsx");
164
+ it("should return empty matrix data error", function () {
165
+ test.emptyMatrixDataError("test-files/adjacency-matrix-modifications/missing-data-input.xlsx", 1);
166
+ test.emptyMatrixDataError("test-files/adjacency-matrix-modifications/missing-data-output.xlsx", 1);
166
167
  });
167
168
  });
168
169
 
@@ -422,4 +422,13 @@ describe("errors-gene-name-modifications", function () {
422
422
  test.noErrors("test-files/gene-name-modifications/special-characters-tests/underscore-unrelated-output.xlsx");
423
423
  });
424
424
  });
425
+
426
+ describe("numbers-as-labels", function () {
427
+ it("should not return any errors", function () {
428
+ test.noErrors("test-files/gene-name-modifications/numbers-as-gene-name-related-input.xlsx");
429
+ test.noErrors("test-files/gene-name-modifications/numbers-as-gene-name-related-output.xlsx");
430
+ test.noErrors("test-files/gene-name-modifications/numbers-as-gene-name-unrelated-input.xlsx");
431
+ test.noErrors("test-files/gene-name-modifications/numbers-as-gene-name-unrelated-output.xlsx");
432
+ });
433
+ });
425
434
  });
@@ -27,15 +27,15 @@ describe("errors-graph-tests", function () {
27
27
  });
28
28
 
29
29
  describe("over-75-genes-or-150-nodes", function () {
30
- it("should return invalid network size error", function () {
30
+ it("should return invalid workbook size error", function () {
31
31
  this.timeout(10000);
32
- test.networkSizeError("test-files/graph-tests/different-sized-networks/80-genes-0-edges.xlsx", 1);
33
- test.networkSizeError("test-files/graph-tests/different-sized-networks/45-genes-max-edges.xlsx", 1);
32
+ test.workbookSizeError("test-files/graph-tests/different-sized-networks/134-genes-0-edges.xlsx", 1);
33
+ test.workbookSizeError("test-files/graph-tests/different-sized-networks/44-source-genes-45-target-genes-max-edges.xlsx", 1);
34
34
  });
35
35
  });
36
36
 
37
37
  describe("over-50-genes-or-100-nodes", function () {
38
- it("should return invalid network size warning", function () {
38
+ it("should return invalid workbook size warning", function () {
39
39
  test.invalidNetworkSizeWarning("test-files/graph-tests/different-sized-networks/52-genes-0-edges.xlsx", 1);
40
40
  test.invalidNetworkSizeWarning("test-files/graph-tests/different-sized-networks/34-genes-111-edges.xlsx", 1);
41
41
  });
@@ -14,14 +14,15 @@ describe("errors-sheet-modifications", function () {
14
14
  });
15
15
 
16
16
  describe("missing-sheet", function () {
17
- it("should return missing network error code on input sheet", function () {
17
+ it("should return missing workbook error code on input sheet", function () {
18
18
  test.missingNetworkError("test-files/sheet-modifications/missing-sheet-input.xlsx", 1);
19
19
  test.noErrors("test-files/sheet-modifications/missing-sheet-output.xlsx");
20
20
  });
21
21
  });
22
22
 
23
+ // TEST NEEDS TO BE LOOKED AT
23
24
  describe("sheet-names-switched", function () {
24
- it("should not return any errors", function () {
25
+ xit("should not return any errors", function () {
25
26
  test.noErrors("test-files/sheet-modifications/sheet-names-switched-input.xlsx");
26
27
  test.noErrors("test-files/sheet-modifications/sheet-names-switched-output.xlsx");
27
28
  });
@@ -34,6 +35,13 @@ describe("errors-sheet-modifications", function () {
34
35
  });
35
36
  });
36
37
 
38
+ describe("sheet-name-capitalized", function () {
39
+ it("should return no errors", function () {
40
+ test.noErrors("test-files/spreadsheet-controller-test-files/sheet-name-capitalized-network-optimized-weights.xlsx");
41
+ test.noErrors("test-files/spreadsheet-controller-test-files/sheet-name-capitalized-network.xlsx", 1);
42
+ });
43
+ });
44
+
37
45
  // Sheet Modifications - Cell A1 Modifications
38
46
 
39
47
  describe("and-symbol", function () {