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,11 +1,12 @@
1
1
  var expect = require("chai").expect;
2
2
  var extend = require("jquery-extend");
3
3
  var xlsx = require("node-xlsx");
4
+ var test = require("./test");
4
5
 
5
6
  var exportController = require(__dirname + "/../server/controllers/export-controller")();
6
7
  var constants = require(__dirname + "/../server/controllers/constants");
7
8
 
8
- var unweightedTestNetwork = {
9
+ var unweightedTestWorkbook = {
9
10
  genes: [
10
11
  { name: "A" },
11
12
  { name: "B" },
@@ -22,7 +23,7 @@ var unweightedTestNetwork = {
22
23
  sheetType: "unweighted"
23
24
  };
24
25
 
25
- var weightedTestNetwork = {
26
+ var weightedTestWorkbook = {
26
27
  genes: [
27
28
  { name: "A" },
28
29
  { name: "B" },
@@ -39,7 +40,7 @@ var weightedTestNetwork = {
39
40
  sheetType: "weighted"
40
41
  };
41
42
 
42
- var unweightedTestNetworkWithCycle = {
43
+ var unweightedTestWorkbookWithCycle = {
43
44
  genes: [
44
45
  { name: "A" },
45
46
  { name: "B" },
@@ -59,7 +60,7 @@ var unweightedTestNetworkWithCycle = {
59
60
  sheetType: "unweighted"
60
61
  };
61
62
 
62
- var weightedTestNetworkWithCycle = {
63
+ var weightedTestWorkbookWithCycle = {
63
64
  genes: [
64
65
  { name: "A" },
65
66
  { name: "B" },
@@ -80,8 +81,8 @@ var weightedTestNetworkWithCycle = {
80
81
  };
81
82
 
82
83
  describe("Export to SIF", function () {
83
- it("should export unweighted networks to SIF correctly", function () {
84
- var lines = exportController.grnsightToSif(unweightedTestNetwork).split("\n");
84
+ it("should export unweighted workbooks to SIF correctly", function () {
85
+ var lines = exportController.grnsightToSif(unweightedTestWorkbook).split("\n");
85
86
  expect(lines[0].split("\t")).to.deep.equal([ "A", "", "" ]);
86
87
  expect(lines[1].split("\t")).to.deep.equal([ "B", "pd", "A" ]);
87
88
  expect(lines[2].split("\t")).to.deep.equal([ "B", "pd", "C" ]);
@@ -89,8 +90,8 @@ describe("Export to SIF", function () {
89
90
  expect(lines[4].split("\t")).to.deep.equal([ "D", "", "" ]);
90
91
  });
91
92
 
92
- it("should export weighted networks to SIF correctly", function () {
93
- var lines = exportController.grnsightToSif(weightedTestNetwork).split("\n");
93
+ it("should export weighted workbooks to SIF correctly", function () {
94
+ var lines = exportController.grnsightToSif(weightedTestWorkbook).split("\n");
94
95
  expect(lines[0].split("\t")).to.deep.equal([ "A", "", "" ]);
95
96
  expect(lines[1].split("\t")).to.deep.equal([ "B", "-0.75", "A" ]);
96
97
  expect(lines[2].split("\t")).to.deep.equal([ "B", "0.25", "C" ]);
@@ -98,8 +99,8 @@ describe("Export to SIF", function () {
98
99
  expect(lines[4].split("\t")).to.deep.equal([ "D", "", "" ]);
99
100
  });
100
101
 
101
- it("should export unweighted networks with cycles to SIF correctly", function () {
102
- var lines = exportController.grnsightToSif(unweightedTestNetworkWithCycle).split("\n");
102
+ it("should export unweighted workbooks with cycles to SIF correctly", function () {
103
+ var lines = exportController.grnsightToSif(unweightedTestWorkbookWithCycle).split("\n");
103
104
  expect(lines[0].split("\t")).to.deep.equal([ "A", "pd", "A" ]);
104
105
  expect(lines[1].split("\t")).to.deep.equal([ "B", "pd", "A" ]);
105
106
  expect(lines[2].split("\t")).to.deep.equal([ "B", "pd", "C" ]);
@@ -108,8 +109,8 @@ describe("Export to SIF", function () {
108
109
  expect(lines[5].split("\t")).to.deep.equal([ "E", "", "" ]);
109
110
  });
110
111
 
111
- it("should export weighted networks with cycles to SIF correctly", function () {
112
- var lines = exportController.grnsightToSif(weightedTestNetworkWithCycle).split("\n");
112
+ it("should export weighted workbooks with cycles to SIF correctly", function () {
113
+ var lines = exportController.grnsightToSif(weightedTestWorkbookWithCycle).split("\n");
113
114
  expect(lines[0].split("\t")).to.deep.equal([ "A", "0.875", "A" ]);
114
115
  expect(lines[1].split("\t")).to.deep.equal([ "B", "-0.75", "A" ]);
115
116
  expect(lines[2].split("\t")).to.deep.equal([ "B", "0.25", "C" ]);
@@ -127,8 +128,8 @@ var EXPORT_COMMENT = "<!-- Exported by GRNsight v" + constants.VERSION + " " +
127
128
  // We'll allow single quotes here because graphMl has a lot of double quotes in it
128
129
  // and it's easier to not escape them all.
129
130
  describe("Export to GraphML", function () {
130
- it("should export unweighted networks to GraphML correctly", function () {
131
- var lines = exportController.grnsightToGraphMl(unweightedTestNetwork).split("\n").map(function (line) {
131
+ it("should export unweighted workbooks to GraphML correctly", function () {
132
+ var lines = exportController.grnsightToGraphMl(unweightedTestWorkbook).split("\n").map(function (line) {
132
133
  return line.trim();
133
134
  });
134
135
 
@@ -176,8 +177,8 @@ describe("Export to GraphML", function () {
176
177
  });
177
178
  });
178
179
 
179
- it("should export weighted networks to GraphML correctly", function () {
180
- var lines = exportController.grnsightToGraphMl(weightedTestNetwork).split("\n").map(function (line) {
180
+ it("should export weighted workbooks to GraphML correctly", function () {
181
+ var lines = exportController.grnsightToGraphMl(weightedTestWorkbook).split("\n").map(function (line) {
181
182
  return line.trim();
182
183
  });
183
184
 
@@ -229,8 +230,9 @@ describe("Export to GraphML", function () {
229
230
  });
230
231
  });
231
232
 
232
- it("should export unweighted networks with cycles to GraphML correctly", function () {
233
- var lines = exportController.grnsightToGraphMl(unweightedTestNetworkWithCycle).split("\n").map(function (line) {
233
+ it("should export unweighted workbooks with cycles to GraphML correctly", function () {
234
+ var lines = exportController.grnsightToGraphMl(unweightedTestWorkbookWithCycle).split("\n")
235
+ .map(function (line) {
234
236
  return line.trim();
235
237
  });
236
238
 
@@ -289,8 +291,8 @@ describe("Export to GraphML", function () {
289
291
  });
290
292
  });
291
293
 
292
- it("should export weighted networks with cycles to GraphML correctly", function () {
293
- var lines = exportController.grnsightToGraphMl(weightedTestNetworkWithCycle).split("\n").map(function (line) {
294
+ it("should export weighted workbooks with cycles to GraphML correctly", function () {
295
+ var lines = exportController.grnsightToGraphMl(weightedTestWorkbookWithCycle).split("\n").map(function (line) {
294
296
  return line.trim();
295
297
  });
296
298
 
@@ -355,12 +357,11 @@ describe("Export to GraphML", function () {
355
357
  });
356
358
  });
357
359
 
358
- it("should export networks with a filename as the graph element id", function () {
359
- var networkWithFilename = extend(true, unweightedTestNetwork, { filename: "hello.graphml" });
360
- var lines = exportController.grnsightToGraphMl(networkWithFilename).split("\n").map(function (line) {
360
+ it("should export workbooks with a filename as the graph element id", function () {
361
+ var workbookWithFilename = extend(true, unweightedTestWorkbook, { filename: "hello.graphml" });
362
+ var lines = exportController.grnsightToGraphMl(workbookWithFilename).split("\n").map(function (line) {
361
363
  return line.trim();
362
364
  });
363
-
364
365
  var expectedGraphMlLines = [
365
366
  '<?xml version="1.0" encoding="UTF-8"?>',
366
367
  '<graphml xmlns="http://graphml.graphdrawing.org/xmlns" ' +
@@ -406,7 +407,7 @@ describe("Export to GraphML", function () {
406
407
  });
407
408
  });
408
409
 
409
- const inputNetwork = {
410
+ const inputWorkbook = {
410
411
  "genes": [
411
412
  { "name": "ACE2" },
412
413
  { "name": "AFT2" },
@@ -447,48 +448,142 @@ const inputNetwork = {
447
448
  }
448
449
  ],
449
450
 
451
+ network: {
452
+ "genes": [
453
+ { "name": "ACE2" },
454
+ { "name": "AFT2" },
455
+ { "name": "CIN5" },
456
+ ],
457
+
458
+ "links": [
459
+ {
460
+ "source": 0,
461
+ "target": 0,
462
+ "value": 1,
463
+ type: "arrowhead",
464
+ stroke: "black"
465
+ },
466
+
467
+ {
468
+ source: 1,
469
+ target: 1,
470
+ value: 1,
471
+ type: "arrowhead",
472
+ stroke: "black"
473
+ },
474
+
475
+ {
476
+ source: 2,
477
+ target: 1,
478
+ value: 1,
479
+ type: "arrowhead",
480
+ stroke: "black"
481
+ },
482
+
483
+ {
484
+ source: 2,
485
+ target: 2,
486
+ value: 1,
487
+ type: "arrowhead",
488
+ stroke: "black"
489
+ }
490
+ ],
491
+ },
492
+
493
+ networkWeights: {
494
+ "genes": [
495
+ { "name": "ACE2" },
496
+ { "name": "AFT2" },
497
+ { "name": "CIN5" },
498
+ ],
499
+
500
+ "links": [
501
+ {
502
+ "source": 0,
503
+ "target": 0,
504
+ "value": 1,
505
+ type: "arrowhead",
506
+ stroke: "black"
507
+ },
508
+
509
+ {
510
+ source: 1,
511
+ target: 1,
512
+ value: 1,
513
+ type: "arrowhead",
514
+ stroke: "black"
515
+ },
516
+
517
+ {
518
+ source: 2,
519
+ target: 1,
520
+ value: 1,
521
+ type: "arrowhead",
522
+ stroke: "black"
523
+ },
524
+
525
+ {
526
+ source: 2,
527
+ target: 2,
528
+ value: 1,
529
+ type: "arrowhead",
530
+ stroke: "black"
531
+ }
532
+ ],
533
+ },
534
+
450
535
  "meta": {
451
- "L_curve": 0,
452
- "MaxFunEval": 1000000,
453
- "MaxIter": 1000000,
454
- "Strain": ["wt", "dcin5"],
455
- "TolFun": 0.00001,
456
- "TolX": 0.00001,
457
- "alpha": 0.001,
458
- "estimate_params": 1,
459
- "expression_timepoints": [0.4, 0.8, 1.2],
460
- "fix_P": 1,
461
- "fix_b": 0,
462
- "kk_max": 1,
463
- "make_graphs": 1,
464
- "production_function": "testMM",
465
- "simulation_timepoints": [0, 0.1, 0.2],
536
+ data: {
537
+ "L_curve": 0,
538
+ "MaxFunEval": 1000000,
539
+ "MaxIter": 1000000,
540
+ "Strain": ["wt", "dcin5"],
541
+ "TolFun": 0.00001,
542
+ "TolX": 0.00001,
543
+ "alpha": 0.001,
544
+ "estimate_params": 1,
545
+ "expression_timepoints": [0.4, 0.8, 1.2],
546
+ "fix_P": 1,
547
+ "fix_b": 0,
548
+ "kk_max": 1,
549
+ "make_graphs": 1,
550
+ "production_function": "testMM",
551
+ "simulation_timepoints": [0, 0.1, 0.2],
552
+ "species": "Saccharomyces cerevisiae",
553
+ "taxon_id": 559292
554
+ }
466
555
  },
467
556
 
468
557
  "test": {
469
558
  "production_rates": {
470
- "ACE2": 0.5,
471
- "AFT2": 1,
472
- "CIN5": 2
559
+ data: {
560
+ "ACE2": 0.5,
561
+ "AFT2": 1,
562
+ "CIN5": 2
563
+ }
473
564
  },
474
565
 
475
566
  "degradation_rates": {
476
- "ACE2": 1,
477
- "AFT2": 1,
478
- "CIN5": 1
567
+ data: {
568
+ "ACE2": 1,
569
+ "AFT2": 1,
570
+ "CIN5": 1
571
+ }
479
572
  },
480
573
 
481
574
  "threshold_b": {
482
- "ACE2": 0,
483
- "AFT2": 0,
484
- "CIN5": 0
575
+ data: {
576
+ "ACE2": 0,
577
+ "AFT2": 0,
578
+ "CIN5": 0
579
+ }
485
580
  }
486
581
  },
487
582
 
488
583
 
489
- "expression": {
584
+ "exportExpression": {
490
585
  "wt_log2_expression": {
491
- "time_points": [
586
+ "timePoints": [
492
587
  0.4,
493
588
  0.8,
494
589
  1.2
@@ -520,7 +615,7 @@ const inputNetwork = {
520
615
  },
521
616
 
522
617
  "dcin5_log2_expression": {
523
- "time_points": [
618
+ "timePoints": [
524
619
  0.4,
525
620
  0.8,
526
621
  1.2
@@ -554,15 +649,15 @@ const inputNetwork = {
554
649
  };
555
650
 
556
651
  describe("Export to spreadsheet", function () {
557
- it("should export a network to a spreadsheet object properly", function () {
652
+ it("should export a workbook to a spreadsheet object properly", function () {
558
653
  const expectedSheet = [
559
654
  {
560
655
  name: "network",
561
656
  data: [
562
657
  ["cols regulators/rows targets", "ACE2", "AFT2", "CIN5"],
563
658
  ["ACE2", 1, 0, 0],
564
- ["AFT2", 0, 1, 0],
565
- ["CIN5", 0, 1, 1]
659
+ ["AFT2", 0, 1, 1],
660
+ ["CIN5", 0, 0, 1]
566
661
  ]
567
662
  },
568
663
 
@@ -571,8 +666,8 @@ describe("Export to spreadsheet", function () {
571
666
  data: [
572
667
  ["cols regulators/rows targets", "ACE2", "AFT2", "CIN5"],
573
668
  ["ACE2", 1, 0, 0],
574
- ["AFT2", 0, 1, 0],
575
- ["CIN5", 0, 1, 1]
669
+ ["AFT2", 0, 1, 1],
670
+ ["CIN5", 0, 0, 1]
576
671
  ]
577
672
  },
578
673
 
@@ -595,6 +690,8 @@ describe("Export to spreadsheet", function () {
595
690
  ["make_graphs", 1],
596
691
  ["production_function", "testMM"],
597
692
  ["simulation_timepoints", 0, 0.1, 0.2],
693
+ ["species", "Saccharomyces cerevisiae"],
694
+ ["taxon_id", 559292]
598
695
  ]
599
696
  },
600
697
 
@@ -632,7 +729,7 @@ describe("Export to spreadsheet", function () {
632
729
  name: "wt_log2_expression",
633
730
  data:
634
731
  [
635
- [ "id", 0.4, 0.8, 1.2],
732
+ ["id", 0.4, 0.8, 1.2],
636
733
  [
637
734
  "ACE2",
638
735
  1,
@@ -680,7 +777,37 @@ describe("Export to spreadsheet", function () {
680
777
  }
681
778
  ];
682
779
 
683
- const actualSheet = exportController.grnsightToXlsx(inputNetwork);
780
+ const actualSheet = exportController.grnsightToXlsx(inputWorkbook);
684
781
  expect(actualSheet).to.deep.equal(xlsx.build(expectedSheet));
685
782
  });
686
- });
783
+
784
+ it("should export a workbook exactly as the import",
785
+ function () {
786
+ test.importFileSameAsExportFile(
787
+ "test-files/additional-sheet-test-files/optimization-diagnostics-default.xlsx");
788
+ test.importFileSameAsExportFile(
789
+ "test-files/expression-data-test-sheets/expression_sheet_missing_data_ok_export_exact.xlsx");
790
+ test.importFileSameAsExportFile(
791
+ "test-files/additional-sheet-test-files/optimization-parameters-default.xlsx");
792
+ }
793
+ );
794
+
795
+ it("should import a workbook with minor additional sheet warnings," +
796
+ " export the workbook, and import the exported workbook properly",
797
+ function () {
798
+ test.importExportReImportNoErrorsOrWarnings(
799
+ "test-files/additional-sheet-test-files/optimization-parameters-incorrect-headers.xlsx");
800
+ test.importExportReImportNoErrorsOrWarnings(
801
+ "test-files/additional-sheet-test-files/two-column-sheets-missing-column-header.xlsx");
802
+ test.importExportReImportNoErrorsOrWarnings(
803
+ "test-files/additional-sheet-test-files/optimization-diagnostics-incorrect-MSE-gene-header.xlsx");
804
+ }
805
+ );
806
+
807
+ it("should import a workbook with no warnings, export the workbook, and import the exported workbook properly",
808
+ function () {
809
+ test.importExportReImportNoErrorsOrWarnings(
810
+ "test-files/additional-sheet-test-files/optimization-diagnostics-default.xlsx");
811
+ }
812
+ );
813
+ });
@@ -0,0 +1,113 @@
1
+ /* eslint-disable max-len */
2
+
3
+ var test = require("./test");
4
+
5
+ describe("expression-data-import-tests", function () {
6
+
7
+ describe("MISSING_EXPRESSION_SHEET", function () {
8
+ it.skip("_log2_expression or _log2_optimized_expression worksheet was not detected.",
9
+ "The network graph will display without node coloring. If you wish for the workbook to be colored",
10
+ "you can upload your own expression data by adding one or more of those worksheets to your Excel",
11
+ "workbook or select, or select from data in GRNsight's Expression Database, found in the Node menu or panel.", function () {
12
+ test.missingExpressionWarning("test-files/expression-data-test-sheets/expression_sheet_not_existing.xlsx", 1);
13
+ });
14
+ });
15
+
16
+ describe("MISLABELED_ID_CELL", function () {
17
+ it("Top left cell must contain \'id\' exactly.", function () {
18
+ test.idLabelError("test-files/expression-data-test-sheets/expression_sheet_wrong_id_label.xlsx", 1);
19
+ });
20
+ });
21
+
22
+ describe("GENE_MISMATCH", function () {
23
+ it("Gene names in column A do not match the order of those in network sheet.", function () {
24
+ test.geneMismatchError("test-files/expression-data-test-sheets/expression_sheet_wrong_order_gene_names.xlsx", 1);
25
+ });
26
+ });
27
+
28
+ describe("wrong_case_gene_names", function () {
29
+ it.skip("Gene names in column A do not match the case of those in network sheet.", function () {
30
+ test.labelError("test-files/expression-data-test-sheets/expression_sheet_mismatched_case_gene_names.xlsx", 1);
31
+ });
32
+ });
33
+
34
+ describe("MISSING_GENE_NAME", function () {
35
+ it("Gene names in column A are missing a gene name listed in the network sheet.", function () {
36
+ test.missingGeneNameError("test-files/expression-data-test-sheets/expression_sheet_missing_gene_name.xlsx", 1);
37
+ });
38
+ });
39
+
40
+ describe("EXTRA_GENE_NAME", function () {
41
+ it("Gene names in column A have an extra gene name than those listed in the network sheet.", function () {
42
+ test.extraGeneNameError("test-files/expression-data-test-sheets/expression_sheet_extra_gene_name.xlsx", 1);
43
+ });
44
+ });
45
+
46
+ describe("MISSING_COLUMN_HEADER", function () {
47
+ it("All columns in expression sheet must have a header or label.", function () {
48
+ test.missingColumnHeaderError("test-files/expression-data-test-sheets/expression_sheet_missing_column_header.xlsx", 1);
49
+ });
50
+ });
51
+
52
+ describe("empty_column", function () {
53
+ it("Column in expression sheet contains no data.", function () {
54
+ test.emptyExpressionColumnError("test-files/expression-data-test-sheets/expression_sheet_empty_column.xlsx", 1);
55
+ });
56
+ });
57
+
58
+ describe("EMPTY_ROW", function () {
59
+ it("Row in expression sheet contains no data.", function () {
60
+ test.emptyExpressionRowError("test-files/expression-data-test-sheets/expression_sheet_empty_row.xlsx", 1);
61
+ });
62
+ });
63
+
64
+ describe("EXTRANEOUS_DATA", function () {
65
+ it("There is erroneous data in the expression sheet.", function () {
66
+ test.extraneousDataWarning("test-files/expression-data-test-sheets/expression_sheet_erroneous_data.xlsx", 1);
67
+ });
68
+ });
69
+
70
+ describe("NEGATIVE_TIME_POINT", function () {
71
+ it("There are one or more negative time points in the expression sheet.", function () {
72
+ test.negativeTimePointError("test-files/expression-data-test-sheets/expression_sheet_negative_time_points.xlsx", 2);
73
+ });
74
+ });
75
+
76
+ describe("NON_MONOTONIC_TIME_POINTS", function () {
77
+ it("There are duplicate time points in the expression sheet.", function () {
78
+ test.nonMonotonicTimePointsError(
79
+ "test-files/expression-data-test-sheets/expression_sheet_incorrectly_ordered_time_points.xlsx", 1);
80
+ });
81
+ });
82
+ describe("NON_NUMERICAL_TIME_POINT", function () {
83
+ it("There are non-numerical time points in the expression sheet.", function () {
84
+ test.nonNumericalTimePointError(
85
+ "test-files/expression-data-test-sheets/expression_sheet_non_numerical_time_points.xlsx", 1);
86
+ });
87
+ });
88
+
89
+ describe("DUPLICATE_TIME_POINTS", function () {
90
+ it("should return no error", function () {
91
+ test.noErrors("test-files/expression-data-test-sheets/expression_sheet_correct_numbering.xlsx", 1);
92
+ });
93
+ });
94
+
95
+ describe("wrong-exp-sheet-name-due-to-convention", function () {
96
+ it.skip("Incorrect expression sheet naming convention", function () {
97
+ test.incorrectlyNamedExpressionSheetWarning("test-files/expression-data-test-sheets/expression_sheet_wrong_sheet_name_convention.xlsx", 1);
98
+ });
99
+ });
100
+
101
+ describe("resolvable-missing-data", function () {
102
+ it.skip("should return no error", function () {
103
+ test.noErrors("test-files/expression-data-test-sheets/expression_sheet_missing_data_ok.xlsx", 1);
104
+ });
105
+ });
106
+
107
+ describe("different-number-of-columns", function () {
108
+ it.skip("should not return any errors", function () {
109
+ test.noErrors("test-files/expression-data-test-sheets/expression_sheet_different_number_of_columns.xlsx", 0);
110
+ });
111
+ });
112
+
113
+ });
@@ -3,7 +3,7 @@ import { grnState } from "../web-client/public/js/grnstate";
3
3
 
4
4
  describe("The grnState model object", () => {
5
5
  it("should update the reset normalization maximum correctly", () => {
6
- grnState.network = {
6
+ grnState.workbook = {
7
7
  positiveWeights: [0.7715106466403678, 5.212343052095555, 0.826365326790911, 1.5180198066137216,
8
8
  0.27964603867183396, 2.9870960868914778, 0.7743557796125339, 0.6701684007311992, 0.22069064019031245,
9
9
  0.2841810246722045, 0.08852330457981578, 0.5563132195423768],
@@ -14,10 +14,16 @@ describe("The grnState model object", () => {
14
14
  };
15
15
  grnState.resetNormalizationMax.should.equal(5.212343052095555);
16
16
 
17
- grnState.network = {
17
+ grnState.workbook = {
18
18
  positiveWeights: [1, 2, 3, 4, 5, 6, 7, 8],
19
19
  negativeWeights: [-1, -2, -3, -4, -5, -6, -7, -8],
20
20
  };
21
21
  grnState.resetNormalizationMax.should.equal(8);
22
22
  });
23
+
24
+ it("should update, store, and return the species and taxon ID", () => {
25
+ grnState.genePageData.species.should.equal("Saccharomyces_cerevisiae");
26
+ grnState.genePageData.taxonJaspar.should.equal("4932");
27
+ grnState.genePageData.taxonUniprot.should.equal("559292");
28
+ });
23
29
  });