jbrowse-plugin-msaview 2.3.8 → 2.4.1

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 (128) hide show
  1. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js +4 -15
  2. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js.map +1 -1
  3. package/dist/AddHighlightModel/MsaToGenomeHighlight.js +11 -13
  4. package/dist/AddHighlightModel/MsaToGenomeHighlight.js.map +1 -1
  5. package/dist/AddHighlightModel/util.d.ts +6 -0
  6. package/dist/AddHighlightModel/util.js +6 -0
  7. package/dist/AddHighlightModel/util.js.map +1 -1
  8. package/dist/BgzipFastaMsaAdapter/BgzipFastaMsaAdapter.d.ts +2 -0
  9. package/dist/BgzipFastaMsaAdapter/BgzipFastaMsaAdapter.js +8 -4
  10. package/dist/BgzipFastaMsaAdapter/BgzipFastaMsaAdapter.js.map +1 -1
  11. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.js +3 -8
  12. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.js.map +1 -1
  13. package/dist/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.js +7 -10
  14. package/dist/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.js.map +1 -1
  15. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.js +2 -5
  16. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.js.map +1 -1
  17. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.js +0 -3
  18. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.js.map +1 -1
  19. package/dist/LaunchMsaView/components/NCBIBlastQuery/blastLaunchView.d.ts +4 -4
  20. package/dist/LaunchMsaView/components/NCBIBlastQuery/blastLaunchView.js +2 -2
  21. package/dist/LaunchMsaView/components/NCBIBlastQuery/blastLaunchView.js.map +1 -1
  22. package/dist/LaunchMsaView/components/NCBIBlastQuery/consts.d.ts +4 -0
  23. package/dist/LaunchMsaView/components/NCBIBlastQuery/consts.js +2 -0
  24. package/dist/LaunchMsaView/components/NCBIBlastQuery/consts.js.map +1 -1
  25. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js +10 -21
  26. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js.map +1 -1
  27. package/dist/LaunchMsaView/components/PreLoadedMSA/types.d.ts +1 -0
  28. package/dist/LaunchMsaView/components/PreLoadedMSA/types.js +4 -1
  29. package/dist/LaunchMsaView/components/PreLoadedMSA/types.js.map +1 -1
  30. package/dist/LaunchMsaView/components/types.d.ts +0 -3
  31. package/dist/LaunchMsaView/components/useFeatureSequence.d.ts +4 -4
  32. package/dist/LaunchMsaView/components/useFeatureSequence.js +2 -4
  33. package/dist/LaunchMsaView/components/useFeatureSequence.js.map +1 -1
  34. package/dist/LaunchMsaView/components/useSWRFeatureSequence.d.ts +4 -5
  35. package/dist/LaunchMsaView/components/useSWRFeatureSequence.js +11 -30
  36. package/dist/LaunchMsaView/components/useSWRFeatureSequence.js.map +1 -1
  37. package/dist/MsaViewPanel/afterCreateAutoruns.js +13 -17
  38. package/dist/MsaViewPanel/afterCreateAutoruns.js.map +1 -1
  39. package/dist/MsaViewPanel/components/ConnectStructureDialog.js +2 -2
  40. package/dist/MsaViewPanel/components/ConnectStructureDialog.js.map +1 -1
  41. package/dist/MsaViewPanel/components/LoadingBLAST.js +2 -3
  42. package/dist/MsaViewPanel/components/LoadingBLAST.js.map +1 -1
  43. package/dist/MsaViewPanel/model.d.ts +9 -11
  44. package/dist/MsaViewPanel/model.js +22 -23
  45. package/dist/MsaViewPanel/model.js.map +1 -1
  46. package/dist/MsaViewPanel/msaDataStore.d.ts +0 -1
  47. package/dist/MsaViewPanel/msaDataStore.js +0 -9
  48. package/dist/MsaViewPanel/msaDataStore.js.map +1 -1
  49. package/dist/MsaViewPanel/structureConnection.d.ts +6 -4
  50. package/dist/MsaViewPanel/structureConnection.js +6 -6
  51. package/dist/MsaViewPanel/structureConnection.js.map +1 -1
  52. package/dist/MsaViewPanel/structureConnection.test.js +1 -19
  53. package/dist/MsaViewPanel/structureConnection.test.js.map +1 -1
  54. package/dist/MsaViewPanel/util.d.ts +11 -0
  55. package/dist/MsaViewPanel/util.js +11 -3
  56. package/dist/MsaViewPanel/util.js.map +1 -1
  57. package/dist/jbrowse-plugin-msaview.umd.production.min.js +25 -27
  58. package/dist/jbrowse-plugin-msaview.umd.production.min.js.map +4 -4
  59. package/dist/utils/blastCache.d.ts +7 -13
  60. package/dist/utils/blastCache.js +0 -12
  61. package/dist/utils/blastCache.js.map +1 -1
  62. package/dist/utils/msa.d.ts +2 -1
  63. package/dist/utils/msa.js +0 -3
  64. package/dist/utils/msa.js.map +1 -1
  65. package/dist/utils/ncbiBlast.d.ts +3 -2
  66. package/dist/utils/ncbiBlast.js +7 -7
  67. package/dist/utils/ncbiBlast.js.map +1 -1
  68. package/dist/utils/taxonomyNames.js +9 -7
  69. package/dist/utils/taxonomyNames.js.map +1 -1
  70. package/dist/version.d.ts +1 -1
  71. package/dist/version.js +1 -1
  72. package/package.json +22 -20
  73. package/src/AddHighlightModel/GenomeMouseoverHighlight.tsx +8 -25
  74. package/src/AddHighlightModel/MsaToGenomeHighlight.tsx +16 -16
  75. package/src/AddHighlightModel/util.ts +11 -0
  76. package/src/BgzipFastaMsaAdapter/BgzipFastaMsaAdapter.ts +10 -4
  77. package/src/LaunchMsaView/components/LaunchMsaViewDialog.tsx +3 -16
  78. package/src/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.tsx +8 -12
  79. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.tsx +6 -15
  80. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.tsx +0 -9
  81. package/src/LaunchMsaView/components/NCBIBlastQuery/blastLaunchView.ts +6 -6
  82. package/src/LaunchMsaView/components/NCBIBlastQuery/consts.ts +7 -0
  83. package/src/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.tsx +12 -27
  84. package/src/LaunchMsaView/components/PreLoadedMSA/types.ts +6 -0
  85. package/src/LaunchMsaView/components/types.ts +0 -3
  86. package/src/LaunchMsaView/components/useFeatureSequence.ts +1 -7
  87. package/src/LaunchMsaView/components/useSWRFeatureSequence.ts +10 -37
  88. package/src/MsaViewPanel/afterCreateAutoruns.ts +15 -17
  89. package/src/MsaViewPanel/components/ConnectStructureDialog.tsx +2 -2
  90. package/src/MsaViewPanel/components/LoadingBLAST.tsx +4 -3
  91. package/src/MsaViewPanel/model.ts +33 -33
  92. package/src/MsaViewPanel/msaDataStore.ts +0 -9
  93. package/src/MsaViewPanel/structureConnection.test.ts +0 -21
  94. package/src/MsaViewPanel/structureConnection.ts +7 -7
  95. package/src/MsaViewPanel/util.ts +27 -2
  96. package/src/utils/blastCache.ts +14 -37
  97. package/src/utils/msa.ts +5 -6
  98. package/src/utils/ncbiBlast.ts +18 -11
  99. package/src/utils/taxonomyNames.ts +13 -6
  100. package/src/version.ts +1 -1
  101. package/dist/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.d.ts +0 -8
  102. package/dist/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.js +0 -70
  103. package/dist/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.js.map +0 -1
  104. package/dist/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeLaunchView.d.ts +0 -13
  105. package/dist/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeLaunchView.js +0 -12
  106. package/dist/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeLaunchView.js.map +0 -1
  107. package/dist/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeUtils.d.ts +0 -6
  108. package/dist/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeUtils.js +0 -25
  109. package/dist/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeUtils.js.map +0 -1
  110. package/dist/LaunchMsaView/components/EnsemblGeneTree/gatherSequencesFromTree.d.ts +0 -2
  111. package/dist/LaunchMsaView/components/EnsemblGeneTree/gatherSequencesFromTree.js +0 -20
  112. package/dist/LaunchMsaView/components/EnsemblGeneTree/gatherSequencesFromTree.js.map +0 -1
  113. package/dist/LaunchMsaView/components/EnsemblGeneTree/types.d.ts +0 -24
  114. package/dist/LaunchMsaView/components/EnsemblGeneTree/types.js +0 -2
  115. package/dist/LaunchMsaView/components/EnsemblGeneTree/types.js.map +0 -1
  116. package/dist/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.d.ts +0 -10
  117. package/dist/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.js +0 -11
  118. package/dist/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.js.map +0 -1
  119. package/dist/LaunchMsaView/components/EnsemblGeneTree/util.d.ts +0 -1
  120. package/dist/LaunchMsaView/components/EnsemblGeneTree/util.js +0 -2
  121. package/dist/LaunchMsaView/components/EnsemblGeneTree/util.js.map +0 -1
  122. package/src/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.tsx +0 -123
  123. package/src/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeLaunchView.ts +0 -30
  124. package/src/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeUtils.ts +0 -47
  125. package/src/LaunchMsaView/components/EnsemblGeneTree/gatherSequencesFromTree.ts +0 -22
  126. package/src/LaunchMsaView/components/EnsemblGeneTree/types.ts +0 -28
  127. package/src/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.ts +0 -17
  128. package/src/LaunchMsaView/components/EnsemblGeneTree/util.ts +0 -6
@@ -1,123 +0,0 @@
1
- import React, { useState } from 'react'
2
-
3
- import { ErrorMessage, LoadingEllipses } from '@jbrowse/core/ui'
4
- import { getContainingView, getSession } from '@jbrowse/core/util'
5
- import { Button, DialogActions, DialogContent, Link } from '@mui/material'
6
- import { observer } from 'mobx-react'
7
- import { makeStyles } from 'tss-react/mui'
8
-
9
- import { ensemblGeneTreeLaunchView } from './ensemblGeneTreeLaunchView'
10
- import { useGeneTree } from './useGeneTree'
11
- import { getGeneDisplayName } from '../../util'
12
- import TranscriptSelector from '../TranscriptSelector'
13
- import { useTranscriptSelection } from '../useTranscriptSelection'
14
-
15
- import type { AbstractTrackModel, Feature } from '@jbrowse/core/util'
16
- import type { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view'
17
-
18
- const useStyles = makeStyles()({
19
- dialogContent: {
20
- width: '80em',
21
- display: 'flex',
22
- flexDirection: 'column',
23
- gap: 16,
24
- },
25
- })
26
-
27
- const EnsemblGeneTree = observer(function ({
28
- model,
29
- feature,
30
- handleClose,
31
- }: {
32
- model: AbstractTrackModel
33
- feature: Feature
34
- handleClose: () => void
35
- }) {
36
- const session = getSession(model)
37
- const view = getContainingView(model) as LinearGenomeViewModel
38
- const { classes } = useStyles()
39
- const [launchViewError, setLaunchViewError] = useState<unknown>()
40
- const {
41
- options,
42
- selectedId,
43
- setSelectedId,
44
- selectedTranscript,
45
- proteinSequence,
46
- error: featureSequenceError,
47
- } = useTranscriptSelection({ feature, view })
48
- const { treeData, isTreeLoading, treeError } = useGeneTree(selectedId)
49
-
50
- const loadingMessage = isTreeLoading
51
- ? 'Loading tree data from Ensembl GeneTree'
52
- : undefined
53
- const e = treeError ?? launchViewError ?? featureSequenceError
54
-
55
- return (
56
- <>
57
- <DialogContent className={classes.dialogContent}>
58
- {e ? <ErrorMessage error={e} /> : null}
59
- {loadingMessage ? <LoadingEllipses message={loadingMessage} /> : null}
60
- {treeData ? (
61
- <div>
62
- <div>Found Ensembl Compara GeneTree: {treeData.geneTreeId}</div>
63
- <Link
64
- target="_blank"
65
- href={`https://useast.ensembl.org/Multi/GeneTree/Image?gt=${treeData.geneTreeId}`}
66
- >
67
- See {treeData.geneTreeId} at Ensembl
68
- </Link>
69
- </div>
70
- ) : null}
71
-
72
- <TranscriptSelector
73
- feature={feature}
74
- options={options}
75
- selectedId={selectedId}
76
- selectedTranscript={selectedTranscript}
77
- onTranscriptChange={setSelectedId}
78
- proteinSequence={proteinSequence}
79
- />
80
- </DialogContent>
81
-
82
- <DialogActions>
83
- <Button
84
- color="primary"
85
- variant="contained"
86
- onClick={() => {
87
- try {
88
- if (!treeData) {
89
- return
90
- }
91
- setLaunchViewError(undefined)
92
-
93
- ensemblGeneTreeLaunchView({
94
- feature,
95
- view,
96
- session,
97
- newViewTitle: getGeneDisplayName(feature),
98
- data: treeData,
99
- })
100
- handleClose()
101
- } catch (e) {
102
- console.error(e)
103
- setLaunchViewError(e)
104
- }
105
- }}
106
- >
107
- Submit
108
- </Button>
109
- <Button
110
- color="secondary"
111
- variant="contained"
112
- onClick={() => {
113
- handleClose()
114
- }}
115
- >
116
- Cancel
117
- </Button>
118
- </DialogActions>
119
- </>
120
- )
121
- })
122
-
123
- export default EnsemblGeneTree
@@ -1,30 +0,0 @@
1
- import type { AbstractSessionModel, Feature } from '@jbrowse/core/util'
2
- import type { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view'
3
-
4
- export function ensemblGeneTreeLaunchView({
5
- session,
6
- newViewTitle,
7
- view,
8
- feature,
9
- data,
10
- }: {
11
- session: AbstractSessionModel
12
- newViewTitle: string
13
- view: LinearGenomeViewModel
14
- feature: Feature
15
- data: {
16
- tree: string
17
- msa: string
18
- treeMetadata: string
19
- }
20
- }) {
21
- session.addView('MsaView', {
22
- type: 'MsaView',
23
- displayName: newViewTitle,
24
- colWidth: 10,
25
- rowHeight: 12,
26
- data,
27
- connectedViewId: view.id,
28
- connectedFeature: feature.toJSON(),
29
- })
30
- }
@@ -1,47 +0,0 @@
1
- import { gatherSequencesFromTree } from './gatherSequencesFromTree'
2
- import { fetchWithLocalStorageCache, jsonfetch, textfetch } from './util'
3
-
4
- import type { TreeNode } from './types'
5
-
6
- const base = 'https://rest.ensembl.org'
7
-
8
- export async function geneTreeFetcher(id2: string) {
9
- const id = id2.replace(/\..*/, '')
10
- const { species } = await fetchWithLocalStorageCache(`${id}-ensembl`, () =>
11
- jsonfetch<{ species: string }>(
12
- `${base}/lookup/id/${id}?content-type=application/json`,
13
- ),
14
- )
15
- const treeBase = `${base}/genetree/member/id/${species}/${id}`
16
- const geneTreeResult = await fetchWithLocalStorageCache(`${id}-msa`, () =>
17
- jsonfetch<{ tree: TreeNode; id: string }>(
18
- `${treeBase}?content-type=application/json;aligned=1;sequence=pep`,
19
- ),
20
- )
21
-
22
- // we query again to get newick format tree. could probably extract from json
23
- // as alternative
24
- const tree = await fetchWithLocalStorageCache<string>(`${id}-tree`, () =>
25
- textfetch(`${treeBase}?nh_format=simple;content-type=text/x-nh`),
26
- )
27
-
28
- const res = gatherSequencesFromTree(geneTreeResult.tree)
29
- return {
30
- geneTreeId: geneTreeResult.id,
31
- tree,
32
- msa: res.map(r => `>${r.id}\n${r.seq}`).join('\n'),
33
- treeMetadata: JSON.stringify(
34
- Object.fromEntries(
35
- res.map(
36
- r =>
37
- [
38
- r.id,
39
- {
40
- genome: r.species,
41
- },
42
- ] as const,
43
- ),
44
- ),
45
- ),
46
- }
47
- }
@@ -1,22 +0,0 @@
1
- import type { TreeNode, TreeRow } from './types'
2
-
3
- export function gatherSequencesFromTree(tree: TreeNode, arr: TreeRow[] = []) {
4
- if (tree.children) {
5
- for (const child of tree.children) {
6
- if (child.sequence) {
7
- const id = child.sequence.id[0]?.accession
8
- if (id) {
9
- arr.push({
10
- id,
11
- seq: child.sequence.mol_seq.seq,
12
- species:
13
- child.taxonomy.common_name || child.taxonomy.scientific_name,
14
- genomicLocString: child.sequence.mol_seq.location,
15
- })
16
- }
17
- }
18
- gatherSequencesFromTree(child, arr)
19
- }
20
- }
21
- return arr
22
- }
@@ -1,28 +0,0 @@
1
- export interface TreeNodeSequence {
2
- mol_seq: {
3
- seq: string
4
- location?: string
5
- }
6
- id: {
7
- accession: string
8
- }[]
9
- }
10
-
11
- export interface TreeNodeTaxonomy {
12
- common_name: string
13
- scientific_name: string
14
- }
15
-
16
- // This is a self-referential tree data structure
17
- export interface TreeNode {
18
- children?: TreeNode[]
19
- sequence?: TreeNodeSequence
20
- taxonomy: TreeNodeTaxonomy
21
- }
22
-
23
- export interface TreeRow {
24
- id: string
25
- seq: string
26
- species: string
27
- genomicLocString?: string
28
- }
@@ -1,17 +0,0 @@
1
- import useSWR from 'swr'
2
-
3
- import { geneTreeFetcher } from './ensemblGeneTreeUtils'
4
-
5
- export function useGeneTree(geneId: string) {
6
- const { data, error, isLoading } = useSWR(
7
- () => (geneId ? ['geneTree', geneId] : null),
8
- ([, geneId]) => geneTreeFetcher(geneId),
9
- {
10
- revalidateOnFocus: false,
11
- revalidateOnReconnect: false,
12
- revalidateIfStale: false,
13
- },
14
- )
15
-
16
- return { treeData: data, isTreeLoading: isLoading, treeError: error }
17
- }
@@ -1,6 +0,0 @@
1
- export {
2
- fetchWithLocalStorageCache,
3
- jsonfetch,
4
- textfetch,
5
- unzipfetch,
6
- } from '../../../utils/fetch'