@jbrowse/plugin-linear-genome-view 2.6.1 → 2.6.2

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 (370) hide show
  1. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js +0 -1
  2. package/dist/BaseLinearDisplay/components/Block.js +0 -1
  3. package/dist/BaseLinearDisplay/components/BlockMsg.js +0 -1
  4. package/dist/BaseLinearDisplay/components/LinearBlocks.js +0 -1
  5. package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +0 -1
  6. package/dist/BaseLinearDisplay/components/TooLargeMessage.js +0 -1
  7. package/dist/BaseLinearDisplay/components/Tooltip.js +0 -1
  8. package/dist/BaseLinearDisplay/index.js +0 -1
  9. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +0 -1
  10. package/dist/BaseLinearDisplay/models/FeatureDensityMixin.js +0 -1
  11. package/dist/BaseLinearDisplay/models/TrackHeightMixin.js +0 -1
  12. package/dist/BaseLinearDisplay/models/autorunFeatureDensityStats.js +0 -1
  13. package/dist/BaseLinearDisplay/models/configSchema.js +0 -1
  14. package/dist/BaseLinearDisplay/models/renderSvg.js +0 -1
  15. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js +0 -1
  16. package/dist/BaseLinearDisplay/models/util.js +0 -1
  17. package/dist/BasicTrack/configSchema.js +0 -1
  18. package/dist/BasicTrack/index.js +0 -1
  19. package/dist/FeatureTrack/configSchema.js +0 -1
  20. package/dist/FeatureTrack/index.js +0 -1
  21. package/dist/LaunchLinearGenomeView/index.js +0 -1
  22. package/dist/LinearBareDisplay/configSchema.js +0 -1
  23. package/dist/LinearBareDisplay/index.js +0 -1
  24. package/dist/LinearBareDisplay/model.js +0 -1
  25. package/dist/LinearBasicDisplay/components/SetMaxHeight.js +0 -1
  26. package/dist/LinearBasicDisplay/configSchema.js +0 -1
  27. package/dist/LinearBasicDisplay/index.js +0 -1
  28. package/dist/LinearBasicDisplay/model.js +0 -1
  29. package/dist/LinearGenomeView/components/CenterLine.js +0 -1
  30. package/dist/LinearGenomeView/components/Cytobands.js +0 -1
  31. package/dist/LinearGenomeView/components/ExportSvgDialog.js +0 -1
  32. package/dist/LinearGenomeView/components/GetSequenceDialog.js +0 -1
  33. package/dist/LinearGenomeView/components/Gridlines.js +0 -1
  34. package/dist/LinearGenomeView/components/Header.js +0 -1
  35. package/dist/LinearGenomeView/components/ImportForm.js +0 -1
  36. package/dist/LinearGenomeView/components/LinearGenomeView.js +0 -1
  37. package/dist/LinearGenomeView/components/MiniControls.js +0 -1
  38. package/dist/LinearGenomeView/components/OverviewRubberband.js +0 -1
  39. package/dist/LinearGenomeView/components/OverviewScalebar.js +0 -1
  40. package/dist/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.js +0 -1
  41. package/dist/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js +0 -1
  42. package/dist/LinearGenomeView/components/RefNameAutocomplete/HelpDialog.js +0 -1
  43. package/dist/LinearGenomeView/components/RefNameAutocomplete/index.js +0 -1
  44. package/dist/LinearGenomeView/components/RefNameAutocomplete/util.js +0 -1
  45. package/dist/LinearGenomeView/components/Rubberband.js +0 -1
  46. package/dist/LinearGenomeView/components/RubberbandSpan.js +0 -1
  47. package/dist/LinearGenomeView/components/Scalebar.js +0 -1
  48. package/dist/LinearGenomeView/components/SearchBox.js +0 -1
  49. package/dist/LinearGenomeView/components/SearchResultsDialog.js +0 -1
  50. package/dist/LinearGenomeView/components/SearchResultsTable.js +0 -1
  51. package/dist/LinearGenomeView/components/SequenceSearchDialog.js +0 -1
  52. package/dist/LinearGenomeView/components/TrackContainer.js +0 -1
  53. package/dist/LinearGenomeView/components/TrackLabel.js +1 -2
  54. package/dist/LinearGenomeView/components/TrackLabelContainer.js +0 -1
  55. package/dist/LinearGenomeView/components/TrackRenderingContainer.js +0 -1
  56. package/dist/LinearGenomeView/components/TracksContainer.js +0 -1
  57. package/dist/LinearGenomeView/components/VerticalGuide.js +0 -1
  58. package/dist/LinearGenomeView/components/ZoomControls.js +0 -1
  59. package/dist/LinearGenomeView/components/hooks.js +0 -1
  60. package/dist/LinearGenomeView/components/util.js +0 -1
  61. package/dist/LinearGenomeView/index.js +0 -1
  62. package/dist/LinearGenomeView/model.js +0 -1
  63. package/dist/LinearGenomeView/svgcomponents/SVGBackground.js +0 -1
  64. package/dist/LinearGenomeView/svgcomponents/SVGHeader.js +0 -1
  65. package/dist/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js +0 -1
  66. package/dist/LinearGenomeView/svgcomponents/SVGRegionSeparators.js +0 -1
  67. package/dist/LinearGenomeView/svgcomponents/SVGRuler.js +0 -1
  68. package/dist/LinearGenomeView/svgcomponents/SVGScalebar.js +0 -1
  69. package/dist/LinearGenomeView/svgcomponents/SVGTrackLabel.js +0 -1
  70. package/dist/LinearGenomeView/svgcomponents/SVGTracks.js +0 -1
  71. package/dist/LinearGenomeView/util.js +0 -1
  72. package/dist/index.js +0 -1
  73. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.js +0 -1
  74. package/esm/BaseLinearDisplay/components/Block.js +0 -1
  75. package/esm/BaseLinearDisplay/components/BlockMsg.js +0 -1
  76. package/esm/BaseLinearDisplay/components/LinearBlocks.js +0 -1
  77. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +0 -1
  78. package/esm/BaseLinearDisplay/components/TooLargeMessage.js +0 -1
  79. package/esm/BaseLinearDisplay/components/Tooltip.js +0 -1
  80. package/esm/BaseLinearDisplay/index.js +0 -1
  81. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js +0 -1
  82. package/esm/BaseLinearDisplay/models/FeatureDensityMixin.js +0 -1
  83. package/esm/BaseLinearDisplay/models/TrackHeightMixin.js +0 -1
  84. package/esm/BaseLinearDisplay/models/autorunFeatureDensityStats.js +0 -1
  85. package/esm/BaseLinearDisplay/models/configSchema.js +0 -1
  86. package/esm/BaseLinearDisplay/models/renderSvg.js +0 -1
  87. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js +0 -1
  88. package/esm/BaseLinearDisplay/models/util.js +0 -1
  89. package/esm/BasicTrack/configSchema.js +0 -1
  90. package/esm/BasicTrack/index.js +0 -1
  91. package/esm/FeatureTrack/configSchema.js +0 -1
  92. package/esm/FeatureTrack/index.js +0 -1
  93. package/esm/LaunchLinearGenomeView/index.js +0 -1
  94. package/esm/LinearBareDisplay/configSchema.js +0 -1
  95. package/esm/LinearBareDisplay/index.js +0 -1
  96. package/esm/LinearBareDisplay/model.js +0 -1
  97. package/esm/LinearBasicDisplay/components/SetMaxHeight.js +0 -1
  98. package/esm/LinearBasicDisplay/configSchema.js +0 -1
  99. package/esm/LinearBasicDisplay/index.js +0 -1
  100. package/esm/LinearBasicDisplay/model.js +0 -1
  101. package/esm/LinearGenomeView/components/CenterLine.js +0 -1
  102. package/esm/LinearGenomeView/components/Cytobands.js +0 -1
  103. package/esm/LinearGenomeView/components/ExportSvgDialog.js +0 -1
  104. package/esm/LinearGenomeView/components/GetSequenceDialog.js +0 -1
  105. package/esm/LinearGenomeView/components/Gridlines.js +0 -1
  106. package/esm/LinearGenomeView/components/Header.js +0 -1
  107. package/esm/LinearGenomeView/components/ImportForm.js +0 -1
  108. package/esm/LinearGenomeView/components/LinearGenomeView.js +0 -1
  109. package/esm/LinearGenomeView/components/MiniControls.js +0 -1
  110. package/esm/LinearGenomeView/components/OverviewRubberband.js +0 -1
  111. package/esm/LinearGenomeView/components/OverviewScalebar.js +0 -1
  112. package/esm/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.js +0 -1
  113. package/esm/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js +0 -1
  114. package/esm/LinearGenomeView/components/RefNameAutocomplete/HelpDialog.js +0 -1
  115. package/esm/LinearGenomeView/components/RefNameAutocomplete/index.js +0 -1
  116. package/esm/LinearGenomeView/components/RefNameAutocomplete/util.js +0 -1
  117. package/esm/LinearGenomeView/components/Rubberband.js +0 -1
  118. package/esm/LinearGenomeView/components/RubberbandSpan.js +0 -1
  119. package/esm/LinearGenomeView/components/Scalebar.js +0 -1
  120. package/esm/LinearGenomeView/components/SearchBox.js +0 -1
  121. package/esm/LinearGenomeView/components/SearchResultsDialog.js +0 -1
  122. package/esm/LinearGenomeView/components/SearchResultsTable.js +0 -1
  123. package/esm/LinearGenomeView/components/SequenceSearchDialog.js +0 -1
  124. package/esm/LinearGenomeView/components/TrackContainer.js +0 -1
  125. package/esm/LinearGenomeView/components/TrackLabel.js +1 -2
  126. package/esm/LinearGenomeView/components/TrackLabelContainer.js +0 -1
  127. package/esm/LinearGenomeView/components/TrackRenderingContainer.js +0 -1
  128. package/esm/LinearGenomeView/components/TracksContainer.js +0 -1
  129. package/esm/LinearGenomeView/components/VerticalGuide.js +0 -1
  130. package/esm/LinearGenomeView/components/ZoomControls.js +0 -1
  131. package/esm/LinearGenomeView/components/hooks.js +0 -1
  132. package/esm/LinearGenomeView/components/util.js +0 -1
  133. package/esm/LinearGenomeView/index.js +0 -1
  134. package/esm/LinearGenomeView/model.js +0 -1
  135. package/esm/LinearGenomeView/svgcomponents/SVGBackground.js +0 -1
  136. package/esm/LinearGenomeView/svgcomponents/SVGHeader.js +0 -1
  137. package/esm/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js +0 -1
  138. package/esm/LinearGenomeView/svgcomponents/SVGRegionSeparators.js +0 -1
  139. package/esm/LinearGenomeView/svgcomponents/SVGRuler.js +0 -1
  140. package/esm/LinearGenomeView/svgcomponents/SVGScalebar.js +0 -1
  141. package/esm/LinearGenomeView/svgcomponents/SVGTrackLabel.js +0 -1
  142. package/esm/LinearGenomeView/svgcomponents/SVGTracks.js +0 -1
  143. package/esm/LinearGenomeView/util.js +0 -1
  144. package/esm/index.js +0 -1
  145. package/package.json +3 -4
  146. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js.map +0 -1
  147. package/dist/BaseLinearDisplay/components/Block.js.map +0 -1
  148. package/dist/BaseLinearDisplay/components/BlockMsg.js.map +0 -1
  149. package/dist/BaseLinearDisplay/components/LinearBlocks.js.map +0 -1
  150. package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js.map +0 -1
  151. package/dist/BaseLinearDisplay/components/TooLargeMessage.js.map +0 -1
  152. package/dist/BaseLinearDisplay/components/Tooltip.js.map +0 -1
  153. package/dist/BaseLinearDisplay/index.js.map +0 -1
  154. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +0 -1
  155. package/dist/BaseLinearDisplay/models/FeatureDensityMixin.js.map +0 -1
  156. package/dist/BaseLinearDisplay/models/TrackHeightMixin.js.map +0 -1
  157. package/dist/BaseLinearDisplay/models/autorunFeatureDensityStats.js.map +0 -1
  158. package/dist/BaseLinearDisplay/models/configSchema.js.map +0 -1
  159. package/dist/BaseLinearDisplay/models/renderSvg.js.map +0 -1
  160. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +0 -1
  161. package/dist/BaseLinearDisplay/models/util.js.map +0 -1
  162. package/dist/BasicTrack/configSchema.js.map +0 -1
  163. package/dist/BasicTrack/index.js.map +0 -1
  164. package/dist/FeatureTrack/configSchema.js.map +0 -1
  165. package/dist/FeatureTrack/index.js.map +0 -1
  166. package/dist/LaunchLinearGenomeView/index.js.map +0 -1
  167. package/dist/LinearBareDisplay/configSchema.js.map +0 -1
  168. package/dist/LinearBareDisplay/index.js.map +0 -1
  169. package/dist/LinearBareDisplay/model.js.map +0 -1
  170. package/dist/LinearBasicDisplay/components/SetMaxHeight.js.map +0 -1
  171. package/dist/LinearBasicDisplay/configSchema.js.map +0 -1
  172. package/dist/LinearBasicDisplay/index.js.map +0 -1
  173. package/dist/LinearBasicDisplay/model.js.map +0 -1
  174. package/dist/LinearGenomeView/components/CenterLine.js.map +0 -1
  175. package/dist/LinearGenomeView/components/Cytobands.js.map +0 -1
  176. package/dist/LinearGenomeView/components/ExportSvgDialog.js.map +0 -1
  177. package/dist/LinearGenomeView/components/GetSequenceDialog.js.map +0 -1
  178. package/dist/LinearGenomeView/components/Gridlines.js.map +0 -1
  179. package/dist/LinearGenomeView/components/Header.js.map +0 -1
  180. package/dist/LinearGenomeView/components/ImportForm.js.map +0 -1
  181. package/dist/LinearGenomeView/components/LinearGenomeView.js.map +0 -1
  182. package/dist/LinearGenomeView/components/MiniControls.js.map +0 -1
  183. package/dist/LinearGenomeView/components/OverviewRubberband.js.map +0 -1
  184. package/dist/LinearGenomeView/components/OverviewScalebar.js.map +0 -1
  185. package/dist/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.js.map +0 -1
  186. package/dist/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js.map +0 -1
  187. package/dist/LinearGenomeView/components/RefNameAutocomplete/HelpDialog.js.map +0 -1
  188. package/dist/LinearGenomeView/components/RefNameAutocomplete/index.js.map +0 -1
  189. package/dist/LinearGenomeView/components/RefNameAutocomplete/util.js.map +0 -1
  190. package/dist/LinearGenomeView/components/Rubberband.js.map +0 -1
  191. package/dist/LinearGenomeView/components/RubberbandSpan.js.map +0 -1
  192. package/dist/LinearGenomeView/components/Scalebar.js.map +0 -1
  193. package/dist/LinearGenomeView/components/SearchBox.js.map +0 -1
  194. package/dist/LinearGenomeView/components/SearchResultsDialog.js.map +0 -1
  195. package/dist/LinearGenomeView/components/SearchResultsTable.js.map +0 -1
  196. package/dist/LinearGenomeView/components/SequenceSearchDialog.js.map +0 -1
  197. package/dist/LinearGenomeView/components/TrackContainer.js.map +0 -1
  198. package/dist/LinearGenomeView/components/TrackLabel.js.map +0 -1
  199. package/dist/LinearGenomeView/components/TrackLabelContainer.js.map +0 -1
  200. package/dist/LinearGenomeView/components/TrackRenderingContainer.js.map +0 -1
  201. package/dist/LinearGenomeView/components/TracksContainer.js.map +0 -1
  202. package/dist/LinearGenomeView/components/VerticalGuide.js.map +0 -1
  203. package/dist/LinearGenomeView/components/ZoomControls.js.map +0 -1
  204. package/dist/LinearGenomeView/components/hooks.js.map +0 -1
  205. package/dist/LinearGenomeView/components/util.js.map +0 -1
  206. package/dist/LinearGenomeView/index.js.map +0 -1
  207. package/dist/LinearGenomeView/model.js.map +0 -1
  208. package/dist/LinearGenomeView/svgcomponents/SVGBackground.js.map +0 -1
  209. package/dist/LinearGenomeView/svgcomponents/SVGHeader.js.map +0 -1
  210. package/dist/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js.map +0 -1
  211. package/dist/LinearGenomeView/svgcomponents/SVGRegionSeparators.js.map +0 -1
  212. package/dist/LinearGenomeView/svgcomponents/SVGRuler.js.map +0 -1
  213. package/dist/LinearGenomeView/svgcomponents/SVGScalebar.js.map +0 -1
  214. package/dist/LinearGenomeView/svgcomponents/SVGTrackLabel.js.map +0 -1
  215. package/dist/LinearGenomeView/svgcomponents/SVGTracks.js.map +0 -1
  216. package/dist/LinearGenomeView/util.js.map +0 -1
  217. package/dist/index.js.map +0 -1
  218. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.js.map +0 -1
  219. package/esm/BaseLinearDisplay/components/Block.js.map +0 -1
  220. package/esm/BaseLinearDisplay/components/BlockMsg.js.map +0 -1
  221. package/esm/BaseLinearDisplay/components/LinearBlocks.js.map +0 -1
  222. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js.map +0 -1
  223. package/esm/BaseLinearDisplay/components/TooLargeMessage.js.map +0 -1
  224. package/esm/BaseLinearDisplay/components/Tooltip.js.map +0 -1
  225. package/esm/BaseLinearDisplay/index.js.map +0 -1
  226. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +0 -1
  227. package/esm/BaseLinearDisplay/models/FeatureDensityMixin.js.map +0 -1
  228. package/esm/BaseLinearDisplay/models/TrackHeightMixin.js.map +0 -1
  229. package/esm/BaseLinearDisplay/models/autorunFeatureDensityStats.js.map +0 -1
  230. package/esm/BaseLinearDisplay/models/configSchema.js.map +0 -1
  231. package/esm/BaseLinearDisplay/models/renderSvg.js.map +0 -1
  232. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +0 -1
  233. package/esm/BaseLinearDisplay/models/util.js.map +0 -1
  234. package/esm/BasicTrack/configSchema.js.map +0 -1
  235. package/esm/BasicTrack/index.js.map +0 -1
  236. package/esm/FeatureTrack/configSchema.js.map +0 -1
  237. package/esm/FeatureTrack/index.js.map +0 -1
  238. package/esm/LaunchLinearGenomeView/index.js.map +0 -1
  239. package/esm/LinearBareDisplay/configSchema.js.map +0 -1
  240. package/esm/LinearBareDisplay/index.js.map +0 -1
  241. package/esm/LinearBareDisplay/model.js.map +0 -1
  242. package/esm/LinearBasicDisplay/components/SetMaxHeight.js.map +0 -1
  243. package/esm/LinearBasicDisplay/configSchema.js.map +0 -1
  244. package/esm/LinearBasicDisplay/index.js.map +0 -1
  245. package/esm/LinearBasicDisplay/model.js.map +0 -1
  246. package/esm/LinearGenomeView/components/CenterLine.js.map +0 -1
  247. package/esm/LinearGenomeView/components/Cytobands.js.map +0 -1
  248. package/esm/LinearGenomeView/components/ExportSvgDialog.js.map +0 -1
  249. package/esm/LinearGenomeView/components/GetSequenceDialog.js.map +0 -1
  250. package/esm/LinearGenomeView/components/Gridlines.js.map +0 -1
  251. package/esm/LinearGenomeView/components/Header.js.map +0 -1
  252. package/esm/LinearGenomeView/components/ImportForm.js.map +0 -1
  253. package/esm/LinearGenomeView/components/LinearGenomeView.js.map +0 -1
  254. package/esm/LinearGenomeView/components/MiniControls.js.map +0 -1
  255. package/esm/LinearGenomeView/components/OverviewRubberband.js.map +0 -1
  256. package/esm/LinearGenomeView/components/OverviewScalebar.js.map +0 -1
  257. package/esm/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.js.map +0 -1
  258. package/esm/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js.map +0 -1
  259. package/esm/LinearGenomeView/components/RefNameAutocomplete/HelpDialog.js.map +0 -1
  260. package/esm/LinearGenomeView/components/RefNameAutocomplete/index.js.map +0 -1
  261. package/esm/LinearGenomeView/components/RefNameAutocomplete/util.js.map +0 -1
  262. package/esm/LinearGenomeView/components/Rubberband.js.map +0 -1
  263. package/esm/LinearGenomeView/components/RubberbandSpan.js.map +0 -1
  264. package/esm/LinearGenomeView/components/Scalebar.js.map +0 -1
  265. package/esm/LinearGenomeView/components/SearchBox.js.map +0 -1
  266. package/esm/LinearGenomeView/components/SearchResultsDialog.js.map +0 -1
  267. package/esm/LinearGenomeView/components/SearchResultsTable.js.map +0 -1
  268. package/esm/LinearGenomeView/components/SequenceSearchDialog.js.map +0 -1
  269. package/esm/LinearGenomeView/components/TrackContainer.js.map +0 -1
  270. package/esm/LinearGenomeView/components/TrackLabel.js.map +0 -1
  271. package/esm/LinearGenomeView/components/TrackLabelContainer.js.map +0 -1
  272. package/esm/LinearGenomeView/components/TrackRenderingContainer.js.map +0 -1
  273. package/esm/LinearGenomeView/components/TracksContainer.js.map +0 -1
  274. package/esm/LinearGenomeView/components/VerticalGuide.js.map +0 -1
  275. package/esm/LinearGenomeView/components/ZoomControls.js.map +0 -1
  276. package/esm/LinearGenomeView/components/hooks.js.map +0 -1
  277. package/esm/LinearGenomeView/components/util.js.map +0 -1
  278. package/esm/LinearGenomeView/index.js.map +0 -1
  279. package/esm/LinearGenomeView/model.js.map +0 -1
  280. package/esm/LinearGenomeView/svgcomponents/SVGBackground.js.map +0 -1
  281. package/esm/LinearGenomeView/svgcomponents/SVGHeader.js.map +0 -1
  282. package/esm/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js.map +0 -1
  283. package/esm/LinearGenomeView/svgcomponents/SVGRegionSeparators.js.map +0 -1
  284. package/esm/LinearGenomeView/svgcomponents/SVGRuler.js.map +0 -1
  285. package/esm/LinearGenomeView/svgcomponents/SVGScalebar.js.map +0 -1
  286. package/esm/LinearGenomeView/svgcomponents/SVGTrackLabel.js.map +0 -1
  287. package/esm/LinearGenomeView/svgcomponents/SVGTracks.js.map +0 -1
  288. package/esm/LinearGenomeView/util.js.map +0 -1
  289. package/esm/index.js.map +0 -1
  290. package/src/BaseLinearDisplay/components/BaseLinearDisplay.tsx +0 -117
  291. package/src/BaseLinearDisplay/components/Block.tsx +0 -77
  292. package/src/BaseLinearDisplay/components/BlockMsg.tsx +0 -42
  293. package/src/BaseLinearDisplay/components/LinearBlocks.tsx +0 -119
  294. package/src/BaseLinearDisplay/components/ServerSideRenderedBlockContent.tsx +0 -69
  295. package/src/BaseLinearDisplay/components/TooLargeMessage.tsx +0 -36
  296. package/src/BaseLinearDisplay/components/Tooltip.tsx +0 -107
  297. package/src/BaseLinearDisplay/index.ts +0 -16
  298. package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +0 -407
  299. package/src/BaseLinearDisplay/models/FeatureDensityMixin.tsx +0 -213
  300. package/src/BaseLinearDisplay/models/TrackHeightMixin.tsx +0 -59
  301. package/src/BaseLinearDisplay/models/autorunFeatureDensityStats.ts +0 -46
  302. package/src/BaseLinearDisplay/models/configSchema.ts +0 -60
  303. package/src/BaseLinearDisplay/models/renderSvg.tsx +0 -101
  304. package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +0 -320
  305. package/src/BaseLinearDisplay/models/util.ts +0 -67
  306. package/src/BasicTrack/configSchema.ts +0 -24
  307. package/src/BasicTrack/index.ts +0 -18
  308. package/src/FeatureTrack/configSchema.ts +0 -28
  309. package/src/FeatureTrack/index.ts +0 -18
  310. package/src/LaunchLinearGenomeView/index.ts +0 -66
  311. package/src/LinearBareDisplay/configSchema.ts +0 -28
  312. package/src/LinearBareDisplay/index.test.js +0 -34
  313. package/src/LinearBareDisplay/index.ts +0 -25
  314. package/src/LinearBareDisplay/model.ts +0 -54
  315. package/src/LinearBasicDisplay/components/SetMaxHeight.tsx +0 -73
  316. package/src/LinearBasicDisplay/configSchema.ts +0 -28
  317. package/src/LinearBasicDisplay/index.ts +0 -25
  318. package/src/LinearBasicDisplay/model.ts +0 -215
  319. package/src/LinearGenomeView/README.md +0 -9
  320. package/src/LinearGenomeView/components/CenterLine.tsx +0 -65
  321. package/src/LinearGenomeView/components/Cytobands.tsx +0 -154
  322. package/src/LinearGenomeView/components/ExportSvgDialog.tsx +0 -149
  323. package/src/LinearGenomeView/components/GetSequenceDialog.tsx +0 -269
  324. package/src/LinearGenomeView/components/Gridlines.tsx +0 -119
  325. package/src/LinearGenomeView/components/Header.tsx +0 -126
  326. package/src/LinearGenomeView/components/ImportForm.tsx +0 -217
  327. package/src/LinearGenomeView/components/LinearGenomeView.test.tsx +0 -167
  328. package/src/LinearGenomeView/components/LinearGenomeView.tsx +0 -75
  329. package/src/LinearGenomeView/components/MiniControls.tsx +0 -54
  330. package/src/LinearGenomeView/components/OverviewRubberband.tsx +0 -219
  331. package/src/LinearGenomeView/components/OverviewScalebar.tsx +0 -351
  332. package/src/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.tsx +0 -53
  333. package/src/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.tsx +0 -44
  334. package/src/LinearGenomeView/components/RefNameAutocomplete/HelpDialog.tsx +0 -69
  335. package/src/LinearGenomeView/components/RefNameAutocomplete/index.tsx +0 -160
  336. package/src/LinearGenomeView/components/RefNameAutocomplete/util.ts +0 -65
  337. package/src/LinearGenomeView/components/Rubberband.tsx +0 -89
  338. package/src/LinearGenomeView/components/RubberbandSpan.tsx +0 -99
  339. package/src/LinearGenomeView/components/Scalebar.test.tsx +0 -145
  340. package/src/LinearGenomeView/components/Scalebar.tsx +0 -199
  341. package/src/LinearGenomeView/components/SearchBox.tsx +0 -123
  342. package/src/LinearGenomeView/components/SearchResultsDialog.tsx +0 -57
  343. package/src/LinearGenomeView/components/SearchResultsTable.tsx +0 -121
  344. package/src/LinearGenomeView/components/SequenceSearchDialog.tsx +0 -136
  345. package/src/LinearGenomeView/components/TrackContainer.tsx +0 -92
  346. package/src/LinearGenomeView/components/TrackLabel.tsx +0 -123
  347. package/src/LinearGenomeView/components/TrackLabelContainer.tsx +0 -48
  348. package/src/LinearGenomeView/components/TrackRenderingContainer.tsx +0 -96
  349. package/src/LinearGenomeView/components/TracksContainer.tsx +0 -114
  350. package/src/LinearGenomeView/components/VerticalGuide.tsx +0 -37
  351. package/src/LinearGenomeView/components/ZoomControls.tsx +0 -62
  352. package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.tsx.snap +0 -1520
  353. package/src/LinearGenomeView/components/hooks.ts +0 -306
  354. package/src/LinearGenomeView/components/util.ts +0 -76
  355. package/src/LinearGenomeView/hg38DisplayedRegions.json +0 -3187
  356. package/src/LinearGenomeView/index.test.ts +0 -993
  357. package/src/LinearGenomeView/index.ts +0 -17
  358. package/src/LinearGenomeView/model.ts +0 -1533
  359. package/src/LinearGenomeView/svgcomponents/SVGBackground.tsx +0 -21
  360. package/src/LinearGenomeView/svgcomponents/SVGHeader.tsx +0 -95
  361. package/src/LinearGenomeView/svgcomponents/SVGLinearGenomeView.tsx +0 -114
  362. package/src/LinearGenomeView/svgcomponents/SVGRegionSeparators.tsx +0 -31
  363. package/src/LinearGenomeView/svgcomponents/SVGRuler.tsx +0 -125
  364. package/src/LinearGenomeView/svgcomponents/SVGScalebar.tsx +0 -57
  365. package/src/LinearGenomeView/svgcomponents/SVGTrackLabel.tsx +0 -47
  366. package/src/LinearGenomeView/svgcomponents/SVGTracks.tsx +0 -67
  367. package/src/LinearGenomeView/util.test.ts +0 -33
  368. package/src/LinearGenomeView/util.ts +0 -182
  369. package/src/LinearGenomeView/volvoxDisplayedRegions.json +0 -16
  370. package/src/index.ts +0 -91
@@ -1,993 +0,0 @@
1
- import { waitFor } from '@testing-library/react'
2
- import { ConfigurationSchema } from '@jbrowse/core/configuration'
3
- import DisplayType from '@jbrowse/core/pluggableElementTypes/DisplayType'
4
- import {
5
- createBaseTrackConfig,
6
- createBaseTrackModel,
7
- } from '@jbrowse/core/pluggableElementTypes/models'
8
- import TrackType from '@jbrowse/core/pluggableElementTypes/TrackType'
9
- import PluginManager from '@jbrowse/core/PluginManager'
10
- import { types } from 'mobx-state-tree'
11
-
12
- // locals
13
- import { LinearGenomeViewModel, stateModelFactory } from '.'
14
- import { BaseLinearDisplayComponent } from '..'
15
- import { stateModelFactory as LinearBasicDisplayStateModelFactory } from '../LinearBareDisplay'
16
- import hg38Regions from './hg38DisplayedRegions.json'
17
- import volvoxDisplayedRegions from './volvoxDisplayedRegions.json'
18
-
19
- type LGV = LinearGenomeViewModel
20
-
21
- // use initializer function to avoid having console.warn jest.fn in a global
22
- function initialize() {
23
- console.warn = jest.fn()
24
- // a stub linear genome view state model that only accepts base track types.
25
- // used in unit tests.
26
- const stubManager = new PluginManager()
27
- stubManager.addTrackType(() => {
28
- const configSchema = ConfigurationSchema(
29
- 'BasicTrack',
30
- {},
31
- {
32
- baseConfiguration: createBaseTrackConfig(stubManager),
33
- explicitIdentifier: 'trackId',
34
- },
35
- )
36
- return new TrackType({
37
- name: 'BasicTrack',
38
- configSchema,
39
- stateModel: createBaseTrackModel(stubManager, 'BasicTrack', configSchema),
40
- })
41
- })
42
- stubManager.addDisplayType(() => {
43
- const configSchema = ConfigurationSchema(
44
- 'LinearBareDisplay',
45
- {},
46
- { explicitlyTyped: true },
47
- )
48
- return new DisplayType({
49
- name: 'LinearBareDisplay',
50
- configSchema,
51
- stateModel: LinearBasicDisplayStateModelFactory(configSchema),
52
- trackType: 'BasicTrack',
53
- viewType: 'LinearGenomeView',
54
- ReactComponent: BaseLinearDisplayComponent,
55
- })
56
- })
57
- stubManager.createPluggableElements()
58
- stubManager.configure()
59
-
60
- const Assembly = types
61
- .model({})
62
- .volatile(() => ({
63
- regions: volvoxDisplayedRegions,
64
- }))
65
- .views(() => ({
66
- getCanonicalRefName(refName: string) {
67
- if (refName === 'contigA') {
68
- return 'ctgA'
69
- }
70
- return refName
71
- },
72
- }))
73
-
74
- const AssemblyManager = types
75
- .model({
76
- assemblies: types.map(Assembly),
77
- })
78
- .actions(self => ({
79
- isValidRefName(str: string) {
80
- return str === 'ctgA' || str === 'ctgB'
81
- },
82
- get(str: string) {
83
- return self.assemblies.get(str)
84
- },
85
- waitForAssembly(str: string) {
86
- return self.assemblies.get(str)
87
- },
88
- }))
89
- const LinearGenomeModel = stateModelFactory(stubManager)
90
- const Session = types
91
- .model({
92
- name: 'testSession',
93
- rpcManager: 'rpcManagerExists',
94
- view: types.maybe(LinearGenomeModel),
95
- configuration: types.map(types.string),
96
- assemblyManager: types.optional(AssemblyManager, {
97
- assemblies: {
98
- volvox: {
99
- // @ts-expect-error
100
- regions: volvoxDisplayedRegions,
101
- },
102
- },
103
- }),
104
- })
105
- .actions(self => ({
106
- setView(view: LGV) {
107
- self.view = view
108
- return view
109
- },
110
- }))
111
-
112
- return { Session, LinearGenomeModel, Assembly }
113
- }
114
-
115
- test('can instantiate a mostly empty model and read a default configuration value', () => {
116
- const { Session, LinearGenomeModel } = initialize()
117
- const model = Session.create({
118
- configuration: {},
119
- }).setView(
120
- LinearGenomeModel.create({
121
- type: 'LinearGenomeView',
122
- tracks: [{ name: 'foo track', type: 'BasicTrack' }],
123
- }),
124
- )
125
-
126
- expect(model.tracks[0]).toBeTruthy()
127
- expect(model.trackSelectorType).toBe('hierarchical')
128
- })
129
-
130
- test('can instantiate a model that lets you navigate', () => {
131
- const { Session, LinearGenomeModel } = initialize()
132
- const session = Session.create({
133
- configuration: {},
134
- })
135
- const model = session.setView(
136
- LinearGenomeModel.create({
137
- id: 'test1',
138
- type: 'LinearGenomeView',
139
- tracks: [{ name: 'foo track', type: 'BasicTrack' }],
140
- }),
141
- )
142
- model.setWidth(800)
143
- model.setDisplayedRegions([
144
- { assemblyName: 'volvox', start: 0, end: 10000, refName: 'ctgA' },
145
- ])
146
- expect(model.maxBpPerPx).toBeCloseTo(13.888)
147
- model.setNewView(0.02, 0)
148
-
149
- expect(model.scaleBarHeight).toEqual(20)
150
- // header height 20 + area where polygons get drawn has height of 48
151
- expect(model.headerHeight).toEqual(68)
152
- // TODO: figure out how to better test height
153
- // expect(model.height).toBe(191)
154
- // test some sanity values from zooming around
155
- model.setNewView(0.02, 0)
156
- expect(model.pxToBp(10).offset).toEqual(0.2)
157
- model.setNewView(0.1, 0)
158
- expect(model.pxToBp(100).offset).toEqual(10)
159
- model.setNewView(1, 0)
160
- expect(model.pxToBp(100).offset).toEqual(100)
161
- model.setNewView(10, 0)
162
- expect(model.pxToBp(100).offset).toEqual(1000)
163
-
164
- model.horizontallyFlip()
165
-
166
- // this is actually the same in reverse mode, the offset is a representation of linear bp offset not actual bp
167
- model.setNewView(0.02, 0)
168
- expect(model.pxToBp(10).offset).toEqual(0.2)
169
- model.setNewView(0.1, 0)
170
- expect(model.pxToBp(100).offset).toEqual(10)
171
- model.setNewView(1, 0)
172
- expect(model.pxToBp(100).offset).toEqual(100)
173
- model.setNewView(10, 0)
174
- expect(model.pxToBp(100).offset).toEqual(1000)
175
- })
176
-
177
- test('can instantiate a model that has multiple displayed regions', () => {
178
- const { Session, LinearGenomeModel } = initialize()
179
- const session = Session.create({
180
- configuration: {},
181
- })
182
- const model = session.setView(
183
- LinearGenomeModel.create({
184
- id: 'test2',
185
- type: 'LinearGenomeView',
186
- tracks: [{ name: 'foo track', type: 'BasicTrack' }],
187
- }),
188
- )
189
- model.setWidth(800)
190
- model.setDisplayedRegions([
191
- { assemblyName: 'volvox', start: 0, end: 10000, refName: 'ctgA' },
192
- { assemblyName: 'volvox', start: 0, end: 10000, refName: 'ctgB' },
193
- ])
194
- expect(model.maxBpPerPx).toBeCloseTo(27.777)
195
- model.setNewView(0.02, 0)
196
-
197
- expect(model.offsetPx).toEqual(0)
198
- model.moveTo({ index: 0, offset: 100 }, { index: 0, offset: 200 })
199
- expect(model.offsetPx).toEqual(800)
200
- model.moveTo({ index: 0, offset: 9950 }, { index: 1, offset: 50 })
201
- expect(model.offsetPx).toEqual(79401)
202
- })
203
-
204
- test('can instantiate a model that tests navTo/moveTo', async () => {
205
- const { Session, LinearGenomeModel } = initialize()
206
- const session = Session.create({
207
- configuration: {},
208
- })
209
- const width = 800
210
- const model = session.setView(
211
- LinearGenomeModel.create({
212
- id: 'test3',
213
- type: 'LinearGenomeView',
214
- tracks: [{ name: 'foo track', type: 'BasicTrack' }],
215
- }),
216
- )
217
- model.setWidth(width)
218
- model.setDisplayedRegions([
219
- { assemblyName: 'volvox', start: 0, end: 10000, refName: 'ctgA' },
220
- { assemblyName: 'volvox', start: 0, end: 10000, refName: 'ctgB' },
221
- ])
222
- expect(model.maxBpPerPx).toBeCloseTo(27.7777)
223
-
224
- model.navTo({ refName: 'ctgA', start: 0, end: 100 })
225
- expect(model.offsetPx).toBe(0)
226
- expect(model.bpPerPx).toBe(0.125)
227
-
228
- model.navTo({ refName: 'ctgA' })
229
- expect(model.offsetPx).toBe(0)
230
- expect(model.bpPerPx).toBe(12.5)
231
-
232
- model.navTo({ refName: 'contigA', start: 0, end: 100 })
233
- expect(model.offsetPx).toBe(0)
234
- expect(model.bpPerPx).toBe(0.125)
235
-
236
- expect(() => model.navTo({ refName: 'ctgA', start: 200, end: 100 })).toThrow(
237
- /start greater than end/,
238
- )
239
-
240
- expect(() => model.navTo({ refName: 'noExist', start: 0, end: 100 })).toThrow(
241
- /could not find a region/,
242
- )
243
-
244
- expect(() => model.navTo({ refName: 'ctgA', end: 20100 })).toThrow(
245
- /could not find a region/,
246
- )
247
-
248
- expect(() => model.navTo({ refName: 'ctgA', start: 20000 })).toThrow(
249
- /could not find a region/,
250
- )
251
-
252
- expect(() =>
253
- model.navTo({ refName: 'ctgA', start: 20000, end: 20100 }),
254
- ).toThrow(/could not find a region/)
255
-
256
- expect(() => model.navTo({ refName: 'ctgA', start: 0, end: 20000 })).toThrow(
257
- /could not find a region/,
258
- )
259
- })
260
-
261
- test('can navToMultiple', () => {
262
- const { Session, LinearGenomeModel } = initialize()
263
- const session = Session.create({
264
- configuration: {},
265
- })
266
- const width = 800
267
- const model = session.setView(
268
- LinearGenomeModel.create({
269
- id: 'testNavToMultiple',
270
- type: 'LinearGenomeView',
271
- }),
272
- )
273
- model.setWidth(width)
274
- model.setDisplayedRegions([
275
- { assemblyName: 'volvox', refName: 'ctgA', start: 0, end: 10000 },
276
- { assemblyName: 'volvox', refName: 'ctgB', start: 0, end: 10000 },
277
- { assemblyName: 'volvox', refName: 'ctgC', start: 0, end: 10000 },
278
- { assemblyName: 'volvox', refName: 'ctgA', start: 0, end: 10000 },
279
- { assemblyName: 'volvox', refName: 'ctgC', start: 0, end: 10000 },
280
- ])
281
-
282
- model.navToMultiple([{ refName: 'ctgA', start: 0, end: 10000 }])
283
- expect(model.offsetPx).toBe(0)
284
- expect(model.bpPerPx).toBe(12.5)
285
-
286
- model.navToMultiple([
287
- { refName: 'ctgA', start: 5000, end: 10000 },
288
- { refName: 'ctgB', start: 0, end: 5000 },
289
- ])
290
- expect(model.offsetPx).toBe(399)
291
- expect(model.bpPerPx).toBeCloseTo(12.531)
292
-
293
- model.navToMultiple([
294
- { refName: 'ctgA', start: 5000, end: 10000 },
295
- { refName: 'ctgB', start: 0, end: 10000 },
296
- { refName: 'ctgC', start: 0, end: 5000 },
297
- ])
298
- expect(model.offsetPx).toBe(199)
299
- expect(model.bpPerPx).toBeCloseTo(25.125)
300
-
301
- model.navToMultiple([
302
- { refName: 'ctgA', start: 5000, end: 10000 },
303
- { refName: 'ctgC', start: 0, end: 5000 },
304
- ])
305
- expect(model.offsetPx).toBe(199)
306
- expect(model.bpPerPx).toBeCloseTo(25.12562)
307
- })
308
-
309
- describe('Zoom to selected displayed regions', () => {
310
- const { Session, LinearGenomeModel } = initialize()
311
- let model: LGV
312
- beforeEach(() => {
313
- const session = Session.create({
314
- configuration: {},
315
- })
316
- const width = 800
317
- model = session.setView(
318
- LinearGenomeModel.create({
319
- id: 'testZoomToDisplayed',
320
- type: 'LinearGenomeView',
321
- }),
322
- )
323
- model.setWidth(width)
324
- model.setDisplayedRegions([
325
- { assemblyName: 'volvox', refName: 'ctgA', start: 5000, end: 20000 },
326
- { assemblyName: 'volvox', refName: 'ctgA', start: 30000, end: 40000 },
327
- { assemblyName: 'volvox', refName: 'ctgB', start: 0, end: 3000 },
328
- ])
329
- })
330
-
331
- it('can select whole region', () => {
332
- // should have no offset and largest bpPerPx
333
- expect(model.offsetPx).toBe(0)
334
- expect(model.bpPerPx).toEqual(1)
335
- // 'ctgA' 15000 bp+ 'ctgA' 10000 bp+ 'ctgB' 3000 bp = 28000 totalbp
336
- expect(model.totalBp).toEqual(28000)
337
-
338
- model.moveTo(
339
- {
340
- start: 5000,
341
- index: 0,
342
- end: 20000,
343
- coord: 5001,
344
- offset: 0,
345
- refName: 'ctgA',
346
- },
347
- {
348
- start: 0,
349
- index: 2,
350
- coord: 1,
351
- end: 3000,
352
- offset: 1,
353
- refName: 'ctgB',
354
- },
355
- )
356
-
357
- expect(model.offsetPx).toEqual(0)
358
- expect(model.bpPerPx).toBeCloseTo(31.408)
359
- })
360
-
361
- it('can select over one refSeq', () => {
362
- model.moveTo(
363
- {
364
- start: 5000,
365
- index: 0,
366
- end: 20000,
367
- coord: 5001,
368
- offset: 0,
369
- refName: 'ctgA',
370
- },
371
- {
372
- start: 5000,
373
- index: 0,
374
- coord: 10000,
375
- end: 20000,
376
- offset: 5000,
377
- refName: 'ctgA',
378
- },
379
- )
380
- expect(model.offsetPx).toEqual(0)
381
- // 10000 - 5000 = 5000 / 800 = 6.25
382
- expect(model.bpPerPx).toEqual(6.25)
383
- })
384
-
385
- it('can select one region with start or end outside of displayed region', () => {
386
- model.moveTo(
387
- {
388
- start: 5000,
389
- index: 0,
390
- end: 20000,
391
- coord: 4999,
392
- offset: -1,
393
- refName: 'ctgA',
394
- },
395
- {
396
- start: 5000,
397
- index: 0,
398
- end: 20000,
399
- coord: 19000,
400
- offset: 19000,
401
- refName: 'ctgA',
402
- },
403
- )
404
- // offsetPx is still 0 since we are starting from the first coord
405
- // needed Math.abs since it was giving negative-zero (-0)
406
- expect(Math.abs(model.offsetPx)).toEqual(0)
407
- // endOffset 19000 - (-1) = 19001 / 800 = zoomTo(23.75)
408
- expect(model.bpPerPx).toBeCloseTo(23.75)
409
- })
410
-
411
- it('can select over two regions in the same reference sequence', () => {
412
- model.setWidth(800)
413
- model.showAllRegions()
414
- expect(model.bpPerPx).toBeCloseTo(38.8888)
415
- // totalBp = 28000 / 1000 = 28 as maxBpPerPx
416
- model.moveTo(
417
- {
418
- start: 5000,
419
- index: 0,
420
- end: 20000,
421
- offset: 5000,
422
- refName: 'ctgA',
423
- },
424
- {
425
- start: 0,
426
- index: 2,
427
- end: 3000,
428
- offset: 2000,
429
- refName: 'ctgB',
430
- },
431
- )
432
- // 22000 / 792 (width - interRegionPadding) = 27.78
433
- expect(model.bpPerPx).toBeCloseTo(27.78, 0)
434
- // offset 5000 / bpPerPx (because that is the starting) = 180.5
435
- expect(model.offsetPx).toBe(181)
436
- })
437
-
438
- it('can navigate to overlapping regions with a region between', () => {
439
- model.setDisplayedRegions([
440
- { assemblyName: 'volvox', refName: 'ctgA', start: 5000, end: 20000 },
441
- { assemblyName: 'volvox', refName: 'ctgB', start: 0, end: 3000 },
442
- { assemblyName: 'volvox', refName: 'ctgA', start: 0, end: 35000 },
443
- ])
444
- model.setWidth(800)
445
- model.showAllRegions()
446
- // totalBp 15000 + 3000 + 35000 = 53000
447
- // then 53000 / (width*0.9) = 73.6111
448
- expect(model.bpPerPx).toBeCloseTo(73.61111)
449
- model.moveTo(
450
- {
451
- start: 5000,
452
- coord: 15000,
453
- index: 0,
454
- end: 20000,
455
- offset: 10000,
456
- refName: 'ctgA',
457
- },
458
- {
459
- start: 0,
460
- coord: 15000,
461
- index: 2,
462
- end: 35000,
463
- offset: 15000,
464
- refName: 'ctgA',
465
- },
466
- )
467
- expect(model.offsetPx).toBe(346)
468
- // 5000 + 3000 + 15000 / 792
469
- expect(model.bpPerPx).toBeCloseTo(29.04, 0)
470
- expect(model.bpPerPx).toBeLessThan(53)
471
- })
472
- })
473
-
474
- test('can instantiate a model that >2 regions', () => {
475
- const { Session, LinearGenomeModel } = initialize()
476
- const session = Session.create({
477
- configuration: {},
478
- })
479
- const width = 800
480
- const model = session.setView(
481
- LinearGenomeModel.create({
482
- id: 'test4',
483
- type: 'LinearGenomeView',
484
- tracks: [{ name: 'foo track', type: 'BasicTrack' }],
485
- }),
486
- )
487
- model.setWidth(width)
488
- model.setDisplayedRegions([
489
- { assemblyName: 'volvox', start: 0, end: 10000, refName: 'ctgA' },
490
- { assemblyName: 'volvox', start: 0, end: 10000, refName: 'ctgB' },
491
- { assemblyName: 'volvox', start: 0, end: 10000, refName: 'ctgC' },
492
- ])
493
- model.moveTo({ index: 0, offset: 100 }, { index: 2, offset: 100 })
494
- model.setNewView(1, 0)
495
-
496
- // extending in the minus gives us first displayed region
497
- expect(model.pxToBp(-5000).refName).toEqual('ctgA')
498
- expect(model.pxToBp(5000).refName).toEqual('ctgA')
499
- expect(model.pxToBp(15000).refName).toEqual('ctgB')
500
- expect(model.pxToBp(25000).refName).toEqual('ctgC')
501
- // extending past gives us the last displayed region
502
- expect(model.pxToBp(35000).refName).toEqual('ctgC')
503
-
504
- model.setDisplayName('Volvox view')
505
- expect(model.displayName).toBe('Volvox view')
506
- model.moveTo(
507
- { refName: 'ctgA', index: 0, offset: 0, start: 0, end: 10000 },
508
- { refName: 'ctgC', index: 2, offset: 0, start: 0, end: 10000 },
509
- )
510
- model.moveTo(
511
- { refName: 'ctgB', index: 1, offset: 0, start: 0, end: 10000 },
512
- { refName: 'ctgC', index: 2, offset: 0, start: 0, end: 10000 },
513
- )
514
- expect(model.offsetPx).toEqual(10000 / model.bpPerPx)
515
- expect(model.displayedRegionsTotalPx).toEqual(30000 / model.bpPerPx)
516
- model.showAllRegions()
517
- expect(model.offsetPx).toEqual(-40)
518
-
519
- expect(model.bpToPx({ refName: 'ctgA', coord: 100 })).toEqual({
520
- index: 0,
521
- offsetPx: Math.round(100 / model.bpPerPx),
522
- })
523
-
524
- expect(model.bpToPx({ refName: 'ctgB', coord: 100 })).toEqual({
525
- index: 1,
526
- offsetPx: Math.round(10100 / model.bpPerPx) + model.interRegionPaddingWidth,
527
- })
528
- })
529
-
530
- test('can perform bpToPx in a way that makes sense on things that happen outside', () => {
531
- const { Session, LinearGenomeModel } = initialize()
532
- const session = Session.create({
533
- configuration: {},
534
- })
535
- const width = 800
536
- const model = session.setView(
537
- LinearGenomeModel.create({
538
- id: 'test5',
539
- type: 'LinearGenomeView',
540
- tracks: [{ name: 'foo track', type: 'BasicTrack' }],
541
- }),
542
- )
543
- model.setWidth(width)
544
- model.setDisplayedRegions([
545
- {
546
- assemblyName: 'volvox',
547
- start: 1000,
548
- end: 2000,
549
- refName: 'ctgA',
550
- reversed: true,
551
- },
552
- ])
553
-
554
- expect(model.bpToPx({ refName: 'ctgA', coord: 500 })).toBe(undefined)
555
- expect(model.pxToBp(-1).coord).toEqual(2002)
556
- expect(model.pxToBp(100).offset).toEqual(100)
557
- expect(model.pxToBp(100).coord).toEqual(1901)
558
- // testing bpToPx and pxToBp when region is reversed
559
-
560
- // coordinate is out of bounds
561
- expect(model.bpToPx({ refName: 'ctgA', coord: 0 })).toEqual(undefined)
562
- expect(model.bpToPx({ refName: 'ctgA', coord: 2001 })).toEqual(undefined)
563
-
564
- // offset here should be 500 because coord 1500 - 1000 start = 500
565
- expect(model.bpToPx({ refName: 'ctgA', coord: 1500 })).toEqual({
566
- index: 0,
567
- offsetPx: 500,
568
- })
569
- expect(model.pxToBp(-1).oob).toEqual(true)
570
-
571
- model.centerAt(1500, 'ctgA', 0)
572
- expect(model.bpPerPx).toEqual(1)
573
- expect(model.offsetPx).toEqual(100)
574
-
575
- model.toggleHeader()
576
- expect(model.hideHeader).toEqual(true)
577
- model.toggleHeader()
578
- model.toggleHeaderOverview()
579
- expect(model.hideHeaderOverview).toEqual(true)
580
- model.toggleHeaderOverview()
581
- model.setError(new Error('pxToBp failed to map to a region'))
582
- expect(`${model.error}`).toEqual('Error: pxToBp failed to map to a region')
583
- })
584
- // determined objectively by looking at
585
- // http://localhost:3000/?config=test_data%2Fconfig_demo.json&session=share-Se2K5q_Jog&password=qT9on
586
- //
587
- // this test is important because interregionpadding blocks outside the current
588
- // view should not be taken into account
589
- test('can perform pxToBp on human genome things with ellided blocks (zoomed in)', () => {
590
- const { Session, LinearGenomeModel } = initialize()
591
- const session = Session.create({
592
- configuration: {},
593
- })
594
- const model = session.setView(
595
- LinearGenomeModel.create({
596
- id: 'test6',
597
- type: 'LinearGenomeView',
598
- tracks: [{ name: 'foo track', type: 'BasicTrack' }],
599
- }),
600
- )
601
- const width = 800
602
- model.setWidth(width)
603
- model.setDisplayedRegions(hg38Regions)
604
- model.setNewView(6359.273152497633, 503862)
605
- expect(model.pxToBp(0).refName).toBe('Y')
606
- expect(model.pxToBp(400).refName).toBe('Y')
607
- expect(model.pxToBp(800).refName).toBe('Y_KI270740v1_random')
608
- })
609
-
610
- // determined objectively from looking at http://localhost:3000/?config=test_data%2Fconfig_demo.json&session=share-TUJdqKI2c9&password=01tan
611
- //
612
- // this tests some places on hg38 when zoomed to whole genome, so inter-region
613
- // padding blocks and elided blocks matter
614
- test('can perform pxToBp on human genome things with ellided blocks (zoomed out)', () => {
615
- const { Session, LinearGenomeModel } = initialize()
616
- const session = Session.create({
617
- configuration: {},
618
- })
619
- const model = session.setView(
620
- LinearGenomeModel.create({
621
- id: 'test6',
622
- type: 'LinearGenomeView',
623
- tracks: [{ name: 'foo track', type: 'BasicTrack' }],
624
- }),
625
- )
626
- const width = 800
627
- model.setWidth(width)
628
- model.setDisplayedRegions(hg38Regions)
629
- model.setNewView(3209286.105, -225.5083315372467)
630
- // chr1 to the left
631
- expect(model.pxToBp(0).refName).toBe('1')
632
- expect(model.pxToBp(0).oob).toBeTruthy()
633
- // chr10 in the middle, tests a specific coord but should just be probably
634
- // somewhat around here
635
- expect(model.pxToBp(800).coord).toBe(111057351)
636
- expect(model.pxToBp(800).refName).toBe('10')
637
-
638
- // chrX after an ellided block, this tests a specific coord but should just be
639
- // probably somewhat around here
640
- expect(model.pxToBp(1228).coord).toBe(1075410)
641
- expect(model.pxToBp(1228).refName).toBe('Y')
642
-
643
- // chrY_random at the end
644
- expect(model.pxToBp(1500).refName).toBe('Y_KI270740v1_random')
645
- expect(model.pxToBp(1500).oob).toBeTruthy()
646
- })
647
-
648
- test('can showAllRegionsInAssembly', async () => {
649
- const { Session, LinearGenomeModel } = initialize()
650
- const session = Session.create({
651
- configuration: {},
652
- })
653
- const width = 800
654
- const model = session.setView(
655
- LinearGenomeModel.create({
656
- id: 'test4',
657
- type: 'LinearGenomeView',
658
- tracks: [{ name: 'foo track', type: 'BasicTrack' }],
659
- }),
660
- )
661
- model.setWidth(width)
662
- model.showAllRegionsInAssembly('volvox')
663
- expect(model.displayedRegions.map(reg => reg.refName)).toEqual([
664
- 'ctgA',
665
- 'ctgB',
666
- ])
667
- })
668
-
669
- describe('get sequence for selected displayed regions', () => {
670
- const { Session, LinearGenomeModel } = initialize()
671
- /* the start of all the results should be +1
672
- the sequence dialog then handles converting from 1-based closed to interbase
673
- */
674
- let model: LGV
675
- beforeEach(() => {
676
- const session = Session.create({
677
- configuration: {},
678
- })
679
- const width = 800
680
- model = session.setView(
681
- LinearGenomeModel.create({
682
- id: 'testGetSequenceSelectedRegions',
683
- type: 'LinearGenomeView',
684
- }),
685
- )
686
- model.setWidth(width)
687
- model.setDisplayedRegions([
688
- { assemblyName: 'volvox', refName: 'ctgA', start: 0, end: 50001 },
689
- { assemblyName: 'volvox', refName: 'ctgB', start: 0, end: 6079 },
690
- ])
691
- })
692
-
693
- it('can select whole region and handles both offsets being oob', () => {
694
- model.setDisplayedRegions([
695
- { assemblyName: 'volvox', refName: 'ctgA', start: 0, end: 800 },
696
- ])
697
- model.setOffsets(
698
- {
699
- refName: 'ctgA',
700
- index: 0,
701
- offset: -10,
702
- start: 0,
703
- end: 800,
704
- coord: -10,
705
- reversed: false,
706
- assemblyName: 'volvox',
707
- oob: true,
708
- },
709
- {
710
- refName: 'ctgA',
711
- index: 0,
712
- offset: 810,
713
- start: 0,
714
- end: 800,
715
- coord: 810,
716
- reversed: false,
717
- assemblyName: 'volvox',
718
- oob: true,
719
- },
720
- )
721
- const singleRegion = model.getSelectedRegions(
722
- model.leftOffset,
723
- model.rightOffset,
724
- )
725
- expect(singleRegion.length).toEqual(1)
726
- expect(singleRegion[0].start).toEqual(0)
727
- expect(singleRegion[0].end).toEqual(800)
728
- })
729
- it('handles when start or end offsets are out of bounds of displayed regions', () => {
730
- model.setOffsets(
731
- {
732
- refName: 'ctgA',
733
- start: 0,
734
- end: 50001,
735
- reversed: false,
736
- assemblyName: 'volvox',
737
- oob: true,
738
- coord: -8,
739
- offset: -8.77999706864357,
740
- index: 0,
741
- },
742
- {
743
- refName: 'ctgA',
744
- start: 0,
745
- end: 50001,
746
- reversed: false,
747
- assemblyName: 'volvox',
748
- oob: true,
749
- coord: -4,
750
- offset: -4.12999706864357,
751
- index: 0,
752
- },
753
- )
754
- const outOfBounds = model.getSelectedRegions(
755
- model.leftOffset,
756
- model.rightOffset,
757
- )
758
-
759
- expect(outOfBounds.length).toEqual(1)
760
- })
761
-
762
- it('selects multiple regions with a region in between', () => {
763
- model.setDisplayedRegions([
764
- { assemblyName: 'volvox', refName: 'ctgA', start: 0, end: 500 },
765
- { assemblyName: 'volvox', refName: 'ctgB', start: 0, end: 3000 },
766
- { assemblyName: 'volvox', refName: 'ctgA', start: 0, end: 200 },
767
- ])
768
- model.setWidth(800)
769
- model.showAllRegions()
770
-
771
- // created by console logging getSelectedRegion's arguments after manually
772
- // setting up this test case in the browser
773
- model.setOffsets(
774
- {
775
- refName: 'ctgA',
776
- start: 0,
777
- end: 500,
778
- reversed: false,
779
- assemblyName: 'volvox',
780
- oob: false,
781
- offset: 200,
782
- coord: 200,
783
- index: 0,
784
- },
785
- {
786
- refName: 'ctgA',
787
- start: 0,
788
- end: 200,
789
- reversed: false,
790
- assemblyName: 'volvox',
791
- oob: false,
792
- offset: 100,
793
- coord: 100,
794
- index: 2,
795
- },
796
- )
797
- const overlapping = model.getSelectedRegions(
798
- model.leftOffset,
799
- model.rightOffset,
800
- )
801
- expect(overlapping.length).toEqual(3)
802
- expect(overlapping[0].start).toEqual(200)
803
- expect(overlapping[0].end).toEqual(500)
804
- expect(overlapping[1].start).toEqual(0)
805
- expect(overlapping[1].end).toEqual(3000)
806
- expect(overlapping[2].start).toEqual(0)
807
- expect(overlapping[2].end).toEqual(110)
808
- })
809
-
810
- it('can select over two regions in diff reference sequence', () => {
811
- model.setDisplayedRegions([
812
- { assemblyName: 'volvox', refName: 'ctgA', start: 0, end: 50001 },
813
- { assemblyName: 'volvox', refName: 'ctgB', start: 0, end: 6079 },
814
- ])
815
- model.setOffsets(
816
- {
817
- refName: 'ctgA',
818
- index: 0,
819
- offset: 49998,
820
- start: 0,
821
- end: 50001,
822
- coord: 49999,
823
- reversed: false,
824
- assemblyName: 'volvox',
825
- oob: false,
826
- },
827
- {
828
- refName: 'ctgB',
829
- index: 1,
830
- offset: 9,
831
- start: 0,
832
- end: 6079,
833
- coord: 10,
834
- reversed: false,
835
- assemblyName: 'volvox',
836
- oob: false,
837
- },
838
- )
839
- const multipleRegions = model.getSelectedRegions(
840
- model.leftOffset,
841
- model.rightOffset,
842
- )
843
- expect(multipleRegions.length).toEqual(2)
844
- expect(multipleRegions[0].start).toEqual(49998)
845
- expect(multipleRegions[0].end).toEqual(50001)
846
- expect(multipleRegions[1].start).toEqual(0)
847
- expect(multipleRegions[1].end).toEqual(9)
848
- })
849
-
850
- it('can handle horizontally flipped regions', () => {
851
- model.setDisplayedRegions([
852
- {
853
- assemblyName: 'volvox',
854
- refName: 'ctgA',
855
- start: 0,
856
- end: 50001,
857
- reversed: true,
858
- },
859
- ])
860
- const hfRegion = model.getSelectedRegions(
861
- {
862
- refName: 'ctgA',
863
- start: 0,
864
- end: 50001,
865
- reversed: true,
866
- assemblyName: 'volvox',
867
- oob: false,
868
- offset: 1.03696711063385,
869
- coord: 50000,
870
- index: 0,
871
- },
872
- {
873
- refName: 'ctgA',
874
- start: 0,
875
- end: 50001,
876
- reversed: true,
877
- assemblyName: 'volvox',
878
- oob: false,
879
- offset: 3.93696711063385,
880
- coord: 49998,
881
- index: 0,
882
- },
883
- )
884
-
885
- expect(hfRegion.length).toEqual(1)
886
- expect(hfRegion[0].start).toEqual(49997)
887
- expect(hfRegion[0].end).toEqual(50000)
888
- })
889
- })
890
-
891
- test('navToLocString with human assembly', async () => {
892
- const { LinearGenomeModel } = initialize()
893
- const HumanAssembly = types
894
- .model({})
895
- .volatile(() => ({
896
- regions: hg38Regions,
897
- }))
898
- .views(() => ({
899
- getCanonicalRefName(refName: string) {
900
- return refName.replace('chr', '')
901
- },
902
- }))
903
- const AssemblyManager = types
904
- .model({
905
- assemblies: types.map(HumanAssembly),
906
- })
907
- .actions(self => ({
908
- isValidRefName(str: string) {
909
- return !str.includes(':')
910
- },
911
- get(str: string) {
912
- return self.assemblies.get(str)
913
- },
914
- waitForAssembly(str: string) {
915
- return self.assemblies.get(str)
916
- },
917
- }))
918
-
919
- const HumanSession = types.model({
920
- name: 'testSession',
921
- rpcManager: 'rpcManagerExists',
922
- configuration: types.map(types.string),
923
- assemblyManager: AssemblyManager,
924
- view: LinearGenomeModel,
925
- })
926
-
927
- const model = HumanSession.create({
928
- configuration: {},
929
- assemblyManager: {
930
- assemblies: {
931
- hg38: {
932
- // @ts-expect-error
933
- regions: hg38Regions,
934
- },
935
- },
936
- },
937
- view: {
938
- type: 'LinearGenomeView',
939
- },
940
- })
941
- const { view } = model
942
-
943
- view.setWidth(800)
944
- view.setDisplayedRegions(hg38Regions.slice(0, 1))
945
- const w = view.width
946
-
947
- await view.navToLocString('2')
948
- await waitFor(() => expect(view.bpPerPx).toBe(hg38Regions[1].end / w))
949
-
950
- await view.navToLocString('chr3')
951
- await waitFor(() => expect(view.bpPerPx).toBe(hg38Regions[2].end / w))
952
-
953
- await view.navToLocString('chr3:1,000,000,000-1,100,000,000')
954
- await waitFor(() => expect(view.bpPerPx).toBe(0.02))
955
- await waitFor(() => expect(view.offsetPx).toBe(9914777550))
956
- await view.navToLocString('chr3:-1,100,000,000..-1,000,000,000')
957
- })
958
-
959
- test('multi region', async () => {
960
- const { Session, LinearGenomeModel } = initialize()
961
- const model = Session.create({
962
- configuration: {},
963
- }).setView(
964
- LinearGenomeModel.create({
965
- type: 'LinearGenomeView',
966
- tracks: [{ name: 'foo track', type: 'BasicTrack' }],
967
- }),
968
- )
969
- model.setWidth(800)
970
- model.setDisplayedRegions(volvoxDisplayedRegions.slice(0, 1))
971
-
972
- await model.navToLocString('ctgA ctgB')
973
- await waitFor(() => expect(model.displayedRegions[0].refName).toBe('ctgA'))
974
- await waitFor(() => expect(model.displayedRegions[1].refName).toBe('ctgB'))
975
- })
976
-
977
- test('space separated locstring', async () => {
978
- const { Session, LinearGenomeModel } = initialize()
979
- const model = Session.create({
980
- configuration: {},
981
- }).setView(
982
- LinearGenomeModel.create({
983
- type: 'LinearGenomeView',
984
- tracks: [{ name: 'foo track', type: 'BasicTrack' }],
985
- }),
986
- )
987
- model.setWidth(800)
988
- model.setDisplayedRegions(volvoxDisplayedRegions.slice(0, 1))
989
-
990
- await model.navToLocString('ctgA 0 100')
991
- await waitFor(() => expect(model.offsetPx).toBe(0))
992
- await waitFor(() => expect(model.bpPerPx).toBe(0.125))
993
- })