jbrowse-plugin-msaview 2.4.2 → 2.4.4

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 (72) hide show
  1. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.js +3 -4
  2. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.js.map +1 -1
  3. package/dist/LaunchMsaView/components/LaunchPanelContent.d.ts +5 -0
  4. package/dist/LaunchMsaView/components/LaunchPanelContent.js +16 -0
  5. package/dist/LaunchMsaView/components/LaunchPanelContent.js.map +1 -0
  6. package/dist/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.js +22 -25
  7. package/dist/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.js.map +1 -1
  8. package/dist/LaunchMsaView/components/NCBIBlastQuery/CachedBlastResults.js +12 -24
  9. package/dist/LaunchMsaView/components/NCBIBlastQuery/CachedBlastResults.js.map +1 -1
  10. package/dist/LaunchMsaView/components/NCBIBlastQuery/MsaAlgorithmSelect.d.ts +7 -0
  11. package/dist/LaunchMsaView/components/NCBIBlastQuery/MsaAlgorithmSelect.js +10 -0
  12. package/dist/LaunchMsaView/components/NCBIBlastQuery/MsaAlgorithmSelect.js.map +1 -0
  13. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.js +23 -32
  14. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.js.map +1 -1
  15. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.js +9 -15
  16. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.js.map +1 -1
  17. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastMethodSelector.d.ts +3 -2
  18. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastMethodSelector.js.map +1 -1
  19. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastPanel.d.ts +25 -0
  20. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastPanel.js.map +1 -1
  21. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastRIDPanel.js +22 -32
  22. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastRIDPanel.js.map +1 -1
  23. package/dist/LaunchMsaView/components/NCBIBlastQuery/useCachedBlastResults.js +2 -9
  24. package/dist/LaunchMsaView/components/NCBIBlastQuery/useCachedBlastResults.js.map +1 -1
  25. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js +30 -29
  26. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js.map +1 -1
  27. package/dist/LaunchMsaView/components/PreLoadedMSA/fetchMSAData.js +8 -6
  28. package/dist/LaunchMsaView/components/PreLoadedMSA/fetchMSAData.js.map +1 -1
  29. package/dist/LaunchMsaView/components/SubmitCancelActions.d.ts +8 -0
  30. package/dist/LaunchMsaView/components/SubmitCancelActions.js +12 -0
  31. package/dist/LaunchMsaView/components/SubmitCancelActions.js.map +1 -0
  32. package/dist/LaunchMsaView/components/TranscriptSelector.d.ts +2 -2
  33. package/dist/LaunchMsaView/components/TranscriptSelector.js +2 -2
  34. package/dist/LaunchMsaView/components/TranscriptSelector.js.map +1 -1
  35. package/dist/LaunchMsaView/components/useSWRFeatureSequence.js +3 -13
  36. package/dist/LaunchMsaView/components/useSWRFeatureSequence.js.map +1 -1
  37. package/dist/LaunchMsaView/components/useTranscriptSelection.js +10 -12
  38. package/dist/LaunchMsaView/components/useTranscriptSelection.js.map +1 -1
  39. package/dist/LaunchMsaView/util.d.ts +4 -1
  40. package/dist/LaunchMsaView/util.js +29 -24
  41. package/dist/LaunchMsaView/util.js.map +1 -1
  42. package/dist/MsaViewPanel/model.d.ts +1 -0
  43. package/dist/jbrowse-plugin-msaview.umd.production.min.js +26 -25
  44. package/dist/jbrowse-plugin-msaview.umd.production.min.js.map +4 -4
  45. package/dist/{LaunchMsaView/components/PreLoadedMSA/consts.d.ts → utils/swrConfig.d.ts} +1 -1
  46. package/dist/{LaunchMsaView/components/PreLoadedMSA/consts.js → utils/swrConfig.js} +2 -2
  47. package/dist/utils/swrConfig.js.map +1 -0
  48. package/dist/version.d.ts +1 -1
  49. package/dist/version.js +1 -1
  50. package/package.json +10 -10
  51. package/src/LaunchMsaView/components/LaunchMsaViewDialog.tsx +9 -6
  52. package/src/LaunchMsaView/components/LaunchPanelContent.tsx +27 -0
  53. package/src/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.tsx +28 -60
  54. package/src/LaunchMsaView/components/NCBIBlastQuery/CachedBlastResults.tsx +21 -33
  55. package/src/LaunchMsaView/components/NCBIBlastQuery/MsaAlgorithmSelect.tsx +37 -0
  56. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.tsx +29 -75
  57. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.tsx +10 -31
  58. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastMethodSelector.tsx +5 -3
  59. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastPanel.tsx +5 -2
  60. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastRIDPanel.tsx +28 -78
  61. package/src/LaunchMsaView/components/NCBIBlastQuery/useCachedBlastResults.ts +2 -10
  62. package/src/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.tsx +34 -57
  63. package/src/LaunchMsaView/components/PreLoadedMSA/fetchMSAData.ts +17 -8
  64. package/src/LaunchMsaView/components/SubmitCancelActions.tsx +41 -0
  65. package/src/LaunchMsaView/components/TranscriptSelector.tsx +3 -3
  66. package/src/LaunchMsaView/components/useSWRFeatureSequence.ts +6 -15
  67. package/src/LaunchMsaView/components/useTranscriptSelection.ts +13 -15
  68. package/src/LaunchMsaView/util.ts +35 -25
  69. package/src/MsaViewPanel/util.ts +3 -3
  70. package/src/{LaunchMsaView/components/PreLoadedMSA/consts.ts → utils/swrConfig.ts} +1 -1
  71. package/src/version.ts +1 -1
  72. package/dist/LaunchMsaView/components/PreLoadedMSA/consts.js.map +0 -1
@@ -1,20 +1,17 @@
1
1
  import React, { useState } from 'react';
2
- import { ErrorMessage } from '@jbrowse/core/ui';
3
- import { getContainingView } from '@jbrowse/core/util';
4
- import { Button, DialogActions, DialogContent, MenuItem, Typography, } from '@mui/material';
2
+ import { Typography } from '@mui/material';
5
3
  import { observer } from 'mobx-react';
6
4
  import { makeStyles } from 'tss-react/mui';
5
+ import MsaAlgorithmSelect from './MsaAlgorithmSelect';
7
6
  import { blastLaunchView } from './blastLaunchView';
8
- import { msaAlgorithms } from './consts';
9
7
  import ExternalLink from '../../../components/ExternalLink';
10
8
  import TextField2 from '../../../components/TextField2';
11
- import { getGeneDisplayName, getTranscriptDisplayName } from '../../util';
9
+ import { getBlastViewTitle, getLinearGenomeView } from '../../util';
10
+ import LaunchPanelContent from '../LaunchPanelContent';
11
+ import SubmitCancelActions from '../SubmitCancelActions';
12
12
  import TranscriptSelector from '../TranscriptSelector';
13
13
  import { useTranscriptSelection } from '../useTranscriptSelection';
14
14
  const useStyles = makeStyles()({
15
- dialogContent: {
16
- width: '80em',
17
- },
18
15
  marginBottom: {
19
16
  marginBottom: 16,
20
17
  },
@@ -27,39 +24,34 @@ const useStyles = makeStyles()({
27
24
  });
28
25
  const NCBIBlastRIDPanel = observer(function ({ handleClose, feature, model, children, baseUrl, }) {
29
26
  const { classes } = useStyles();
30
- const view = getContainingView(model);
27
+ const view = getLinearGenomeView(model);
31
28
  const [launchViewError, setLaunchViewError] = useState();
32
29
  const [rid, setRid] = useState('');
33
30
  const [selectedMsaAlgorithm, setSelectedMsaAlgorithm] = useState('clustalo');
34
- const { options, selectedId, setSelectedId, selectedTranscript, proteinSequence, error: proteinSequenceError, } = useTranscriptSelection({ feature, view });
35
- const e = proteinSequenceError ?? launchViewError;
31
+ const transcriptSelection = useTranscriptSelection({ feature, view });
32
+ const { selectedTranscript, proteinSequence } = transcriptSelection;
33
+ const e = transcriptSelection.error ?? launchViewError;
36
34
  const trimmedRid = rid.trim();
37
35
  return (React.createElement(React.Fragment, null,
38
- React.createElement(DialogContent, { className: classes.dialogContent },
36
+ React.createElement(LaunchPanelContent, { error: e },
39
37
  children,
40
- e ? React.createElement(ErrorMessage, { error: e }) : null,
41
38
  React.createElement(Typography, { variant: "body2", className: classes.marginBottom }, "Enter the RID (Request ID) from a previously submitted NCBI BLAST query. You can find the RID in the BLAST results page URL or at the top of the results page. RIDs are typically valid for 24-36 hours after submission."),
42
39
  React.createElement(TextField2, { variant: "outlined", label: "BLAST RID", placeholder: "e.g., ABC12345", fullWidth: true, className: classes.marginBottom, value: rid, onChange: event => {
43
40
  setRid(event.target.value);
44
41
  } }),
45
42
  trimmedRid ? (React.createElement(Typography, { variant: "body2", className: classes.marginBottom },
46
43
  React.createElement(ExternalLink, { href: `${baseUrl}?CMD=Get&RID=${trimmedRid}` }, "View BLAST results on NCBI"))) : null,
47
- React.createElement(TextField2, { variant: "outlined", label: "MSA Algorithm", className: classes.ridField, select: true, value: selectedMsaAlgorithm, onChange: event => {
48
- setSelectedMsaAlgorithm(event.target.value);
49
- } }, msaAlgorithms.map(val => (React.createElement(MenuItem, { value: val, key: val }, val)))),
50
- React.createElement(TranscriptSelector, { feature: feature, options: options, selectedId: selectedId, selectedTranscript: selectedTranscript, onTranscriptChange: setSelectedId, proteinSequence: proteinSequence }),
44
+ React.createElement(MsaAlgorithmSelect, { className: classes.ridField, value: selectedMsaAlgorithm, onChange: setSelectedMsaAlgorithm }),
45
+ React.createElement(TranscriptSelector, { feature: feature, ...transcriptSelection }),
51
46
  React.createElement(Typography, { className: classes.infoText }, "This will fetch the BLAST results for the provided RID and run them through a multiple sequence alignment. The protein sequence from the selected transcript will be added as the query sequence in the MSA.")),
52
- React.createElement(DialogActions, null,
53
- React.createElement(Button, { color: "primary", variant: "contained", onClick: () => {
54
- try {
55
- if (!selectedTranscript || !trimmedRid) {
56
- return;
57
- }
47
+ React.createElement(SubmitCancelActions, { submitDisabled: !proteinSequence || !trimmedRid, onSubmit: () => {
48
+ try {
49
+ if (selectedTranscript && trimmedRid) {
58
50
  setLaunchViewError(undefined);
59
51
  blastLaunchView({
60
52
  feature: selectedTranscript,
61
53
  view,
62
- newViewTitle: `BLAST - ${getGeneDisplayName(feature)} - ${getTranscriptDisplayName(selectedTranscript)}`,
54
+ newViewTitle: getBlastViewTitle(feature, selectedTranscript),
63
55
  blastParams: {
64
56
  baseUrl,
65
57
  blastProgram: 'blastp',
@@ -72,14 +64,12 @@ const NCBIBlastRIDPanel = observer(function ({ handleClose, feature, model, chil
72
64
  });
73
65
  handleClose();
74
66
  }
75
- catch (e) {
76
- console.error(e);
77
- setLaunchViewError(e);
78
- }
79
- }, disabled: !proteinSequence || !trimmedRid }, "Submit"),
80
- React.createElement(Button, { color: "secondary", variant: "contained", onClick: () => {
81
- handleClose();
82
- } }, "Cancel"))));
67
+ }
68
+ catch (e) {
69
+ console.error(e);
70
+ setLaunchViewError(e);
71
+ }
72
+ }, onCancel: handleClose })));
83
73
  });
84
74
  export default NCBIBlastRIDPanel;
85
75
  //# sourceMappingURL=NCBIBlastRIDPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NCBIBlastRIDPanel.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastRIDPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NCBIBlastRIDPanel.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastRIDPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,18 +1,11 @@
1
1
  import useSWR from 'swr';
2
2
  import { clearAllCachedResults, deleteCachedResult, getAllCachedResults, } from '../../../utils/blastCache';
3
- const swrConfig = {
4
- revalidateOnFocus: false,
5
- revalidateOnReconnect: false,
6
- revalidateIfStale: false,
7
- refreshWhenHidden: false,
8
- refreshWhenOffline: false,
9
- shouldRetryOnError: false,
10
- };
3
+ import { staticSwrConfig } from '../../../utils/swrConfig';
11
4
  export function useCachedBlastResults(geneIds) {
12
5
  const { data: results, error, mutate, } = useSWR(`cached-blast-${geneIds.join(',')}`, async () => {
13
6
  const cached = await getAllCachedResults();
14
7
  return cached.filter(r => r.geneId && geneIds.includes(r.geneId));
15
- }, swrConfig);
8
+ }, staticSwrConfig);
16
9
  const handleDelete = async (id) => {
17
10
  await deleteCachedResult(id);
18
11
  await mutate(results => results?.filter(result => result.id !== id) ?? [], false);
@@ -1 +1 @@
1
- {"version":3,"file":"useCachedBlastResults.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/NCBIBlastQuery/useCachedBlastResults.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,KAAK,CAAA;AAExB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAElC,MAAM,SAAS,GAAG;IAChB,iBAAiB,EAAE,KAAK;IACxB,qBAAqB,EAAE,KAAK;IAC5B,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,KAAK;IACxB,kBAAkB,EAAE,KAAK;IACzB,kBAAkB,EAAE,KAAK;CAC1B,CAAA;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAiB;IACrD,MAAM,EACJ,IAAI,EAAE,OAAO,EACb,KAAK,EACL,MAAM,GACP,GAAG,MAAM,CACR,gBAAgB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EACnC,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAA;QAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IACnE,CAAC,EACD,SAAS,CACV,CAAA;IAED,MAAM,YAAY,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;QACxC,MAAM,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,MAAM,CACV,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EAC5D,KAAK,CACN,CAAA;IACH,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,MAAM,qBAAqB,EAAE,CAAA;QAC7B,MAAM,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,OAAO;QACL,OAAO,EAAE,OAAO,IAAI,EAAE;QACtB,KAAK;QACL,SAAS,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK;QAC7B,YAAY;QACZ,cAAc;KACf,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"useCachedBlastResults.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/NCBIBlastQuery/useCachedBlastResults.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,KAAK,CAAA;AAExB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,MAAM,UAAU,qBAAqB,CAAC,OAAiB;IACrD,MAAM,EACJ,IAAI,EAAE,OAAO,EACb,KAAK,EACL,MAAM,GACP,GAAG,MAAM,CACR,gBAAgB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EACnC,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAA;QAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IACnE,CAAC,EACD,eAAe,CAChB,CAAA;IAED,MAAM,YAAY,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;QACxC,MAAM,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,MAAM,CACV,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EAC5D,KAAK,CACN,CAAA;IACH,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,MAAM,qBAAqB,EAAE,CAAA;QAC7B,MAAM,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,OAAO;QACL,OAAO,EAAE,OAAO,IAAI,EAAE;QACtB,KAAK;QACL,SAAS,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK;QAC7B,YAAY;QACZ,cAAc;KACf,CAAA;AACH,CAAC"}
@@ -1,29 +1,28 @@
1
1
  import React, { useState } from 'react';
2
- import { ErrorMessage, LoadingEllipses, SanitizedHTML } from '@jbrowse/core/ui';
3
- import { getContainingView, getEnv, getSession } from '@jbrowse/core/util';
4
- import { Button, DialogActions, DialogContent, MenuItem } from '@mui/material';
2
+ import { LoadingEllipses, SanitizedHTML } from '@jbrowse/core/ui';
3
+ import { getEnv, getSession } from '@jbrowse/core/util';
4
+ import { MenuItem } from '@mui/material';
5
5
  import { observer } from 'mobx-react';
6
6
  import useSWR from 'swr';
7
7
  import { makeStyles } from 'tss-react/mui';
8
8
  import TextField2 from '../../../components/TextField2';
9
- import { getGeneDisplayName } from '../../util';
9
+ import { staticSwrConfig } from '../../../utils/swrConfig';
10
+ import { getGeneDisplayName, getLinearGenomeView } from '../../util';
11
+ import LaunchPanelContent from '../LaunchPanelContent';
12
+ import SubmitCancelActions from '../SubmitCancelActions';
10
13
  import TranscriptSelector from '../TranscriptSelector';
11
14
  import { useTranscriptSelection } from '../useTranscriptSelection';
12
- import { swrFlags } from './consts';
13
15
  import { fetchMSA, fetchMSAList } from './fetchMSAData';
14
16
  import { preCalculatedLaunchView } from './preCalculatedLaunchView';
15
17
  import { readMsaDatasets } from './types';
16
18
  const useStyles = makeStyles()({
17
- dialogContent: {
18
- width: '80em',
19
- },
20
19
  selectedContainer: {
21
20
  marginTop: 50,
22
21
  },
23
22
  });
24
23
  const PreLoadedMSA = observer(function ({ model, feature, handleClose, }) {
25
24
  const session = getSession(model);
26
- const view = getContainingView(model);
25
+ const view = getLinearGenomeView(model);
27
26
  const { classes } = useStyles();
28
27
  const { pluginManager } = getEnv(model);
29
28
  const { assemblyNames } = view;
@@ -31,19 +30,26 @@ const PreLoadedMSA = observer(function ({ model, feature, handleClose, }) {
31
30
  const datasets = readMsaDatasets(session.jbrowse);
32
31
  const [selectedDatasetId, setSelectedDatasetId] = useState(datasets?.[0]?.datasetId);
33
32
  const selectedDataset = datasets?.find(d => d.datasetId === selectedDatasetId);
34
- const { data: msaList, isLoading: msaListLoading, error: msaListFetchError, } = useSWR(selectedDataset ? `${selectedDataset.datasetId}-msa-list` : null, () => fetchMSAList({ config: selectedDataset.adapter, pluginManager }), swrFlags);
35
- const { options: transcripts, selectedId, setSelectedId, selectedTranscript, proteinSequence, error: proteinSequenceError, } = useTranscriptSelection({ feature, view, validIds: msaList });
33
+ const { data: msaList, isLoading: msaListLoading, error: msaListFetchError, } = useSWR(selectedDataset ? `${selectedDataset.datasetId}-msa-list` : null, () => fetchMSAList({ config: selectedDataset.adapter, pluginManager }), staticSwrConfig);
34
+ const transcriptSelection = useTranscriptSelection({
35
+ feature,
36
+ view,
37
+ validIds: msaList,
38
+ });
39
+ const { selectedId, selectedTranscript } = transcriptSelection;
36
40
  const { data: msaData, isLoading: msaDataLoading, error: msaDataFetchError, } = useSWR(selectedId && selectedDataset && msaList
37
41
  ? `${selectedDataset.datasetId}-${selectedId}-${msaList.length}-msa`
38
42
  : null, () => fetchMSA({
39
43
  msaId: selectedId,
40
44
  config: selectedDataset.adapter,
41
45
  pluginManager,
42
- }), swrFlags);
43
- const e = msaListFetchError ?? msaDataFetchError ?? proteinSequenceError ?? viewError;
46
+ }), staticSwrConfig);
47
+ const e = msaListFetchError ??
48
+ msaDataFetchError ??
49
+ transcriptSelection.error ??
50
+ viewError;
44
51
  return (React.createElement(React.Fragment, null,
45
- React.createElement(DialogContent, { className: classes.dialogContent },
46
- e ? React.createElement(ErrorMessage, { error: e }) : null,
52
+ React.createElement(LaunchPanelContent, { error: e },
47
53
  React.createElement(TextField2, { select: true, label: "Select MSA dataset", value: selectedDatasetId, onChange: event => {
48
54
  setSelectedDatasetId(event.target.value);
49
55
  } }, datasets?.map(d => (React.createElement(MenuItem, { key: d.datasetId, value: d.datasetId }, d.name)))),
@@ -52,13 +58,10 @@ const PreLoadedMSA = observer(function ({ model, feature, handleClose, }) {
52
58
  msaListLoading ? (React.createElement(LoadingEllipses, { variant: "h6", message: `Loading available MSAs for (${selectedDataset.name})` })) : null,
53
59
  msaList ? (React.createElement("div", null,
54
60
  React.createElement(SanitizedHTML, { html: selectedDataset.description }),
55
- React.createElement(TranscriptSelector, { feature: feature, options: transcripts, selectedId: selectedId, selectedTranscript: selectedTranscript, onTranscriptChange: setSelectedId, proteinSequence: proteinSequence, validIds: msaList }))) : null)) : null),
56
- React.createElement(DialogActions, null,
57
- React.createElement(Button, { color: "primary", variant: "contained", disabled: !selectedTranscript || !msaData?.length, onClick: () => {
58
- try {
59
- if (!selectedTranscript || !msaData) {
60
- return;
61
- }
61
+ React.createElement(TranscriptSelector, { feature: feature, ...transcriptSelection }))) : null)) : null),
62
+ React.createElement(SubmitCancelActions, { submitDisabled: !selectedTranscript || !msaData?.length, onSubmit: () => {
63
+ try {
64
+ if (selectedTranscript && msaData) {
62
65
  const querySeqName = `${selectedId}_${assemblyNames[0]}`;
63
66
  preCalculatedLaunchView({
64
67
  session,
@@ -74,13 +77,11 @@ const PreLoadedMSA = observer(function ({ model, feature, handleClose, }) {
74
77
  });
75
78
  handleClose();
76
79
  }
77
- catch (e) {
78
- setViewError(e);
79
- }
80
- } }, "Submit"),
81
- React.createElement(Button, { color: "secondary", variant: "contained", onClick: () => {
82
- handleClose();
83
- } }, "Cancel"))));
80
+ }
81
+ catch (e) {
82
+ setViewError(e);
83
+ }
84
+ }, onCancel: handleClose })));
84
85
  });
85
86
  export default PreLoadedMSA;
86
87
  //# sourceMappingURL=PreLoadedMSADataPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PreLoadedMSADataPanel.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PreLoadedMSADataPanel.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache';
2
- export async function fetchMSAList({ config, pluginManager, }) {
2
+ async function getMsaAdapter(pluginManager, config) {
3
3
  const result = await getAdapter(pluginManager, 'msa', config);
4
- // @ts-expect-error
5
- return result.dataAdapter.getMSAList();
4
+ return result.dataAdapter;
5
+ }
6
+ export async function fetchMSAList({ config, pluginManager, }) {
7
+ const adapter = await getMsaAdapter(pluginManager, config);
8
+ return adapter.getMSAList();
6
9
  }
7
10
  export async function fetchMSA({ config, pluginManager, msaId, }) {
8
- const result = await getAdapter(pluginManager, 'msa', config);
9
- // @ts-expect-error
10
- return result.dataAdapter.getMSA(msaId);
11
+ const adapter = await getMsaAdapter(pluginManager, config);
12
+ return adapter.getMSA(msaId);
11
13
  }
12
14
  //# sourceMappingURL=fetchMSAData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchMSAData.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/PreLoadedMSA/fetchMSAData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAA;AAMzE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,MAAM,EACN,aAAa,GAId;IACC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAE7D,mBAAmB;IACnB,OAAO,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAAA;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAC7B,MAAM,EACN,aAAa,EACb,KAAK,GAKN;IACC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAE7D,mBAAmB;IACnB,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACzC,CAAC"}
1
+ {"version":3,"file":"fetchMSAData.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/PreLoadedMSA/fetchMSAData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAA;AAWzE,KAAK,UAAU,aAAa,CAC1B,aAA4B,EAC5B,MAA6B;IAE7B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAC7D,OAAO,MAAM,CAAC,WAAwC,CAAA;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,MAAM,EACN,aAAa,GAId;IACC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAC1D,OAAO,OAAO,CAAC,UAAU,EAAE,CAAA;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAC7B,MAAM,EACN,aAAa,EACb,KAAK,GAKN;IACC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAC1D,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export default function SubmitCancelActions({ onSubmit, onCancel, submitDisabled, submitLabel, cancelLabel, }: {
3
+ onSubmit: () => void;
4
+ onCancel: () => void;
5
+ submitDisabled?: boolean;
6
+ submitLabel?: string;
7
+ cancelLabel?: string;
8
+ }): React.JSX.Element;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { Button, DialogActions } from '@mui/material';
3
+ export default function SubmitCancelActions({ onSubmit, onCancel, submitDisabled, submitLabel = 'Submit', cancelLabel = 'Cancel', }) {
4
+ return (React.createElement(DialogActions, null,
5
+ React.createElement(Button, { color: "primary", variant: "contained", disabled: submitDisabled, onClick: () => {
6
+ onSubmit();
7
+ } }, submitLabel),
8
+ React.createElement(Button, { color: "secondary", variant: "contained", onClick: () => {
9
+ onCancel();
10
+ } }, cancelLabel)));
11
+ }
12
+ //# sourceMappingURL=SubmitCancelActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubmitCancelActions.js","sourceRoot":"","sources":["../../../src/LaunchMsaView/components/SubmitCancelActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAErD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,WAAW,GAAG,QAAQ,EACtB,WAAW,GAAG,QAAQ,GAOvB;IACC,OAAO,CACL,oBAAC,aAAa;QACZ,oBAAC,MAAM,IACL,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,WAAW,EACnB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,GAAG,EAAE;gBACZ,QAAQ,EAAE,CAAA;YACZ,CAAC,IAEA,WAAW,CACL;QACT,oBAAC,MAAM,IACL,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,GAAG,EAAE;gBACZ,QAAQ,EAAE,CAAA;YACZ,CAAC,IAEA,WAAW,CACL,CACK,CACjB,CAAA;AACH,CAAC"}
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
2
  import type { Feature } from '@jbrowse/core/util';
3
- export default function TranscriptSelector({ feature, options, selectedId, selectedTranscript, onTranscriptChange, proteinSequence, validIds, }: {
3
+ export default function TranscriptSelector({ feature, options, selectedId, selectedTranscript, setSelectedId, proteinSequence, validIds, }: {
4
4
  feature: Feature;
5
5
  options: Feature[];
6
6
  selectedId: string;
7
7
  selectedTranscript: Feature | undefined;
8
- onTranscriptChange: (transcriptId: string) => void;
8
+ setSelectedId: (transcriptId: string) => void;
9
9
  proteinSequence: string | undefined;
10
10
  validIds?: string[];
11
11
  }): React.JSX.Element;
@@ -15,13 +15,13 @@ const useStyles = makeStyles()({
15
15
  marginLeft: 20,
16
16
  },
17
17
  });
18
- export default function TranscriptSelector({ feature, options, selectedId, selectedTranscript, onTranscriptChange, proteinSequence, validIds, }) {
18
+ export default function TranscriptSelector({ feature, options, selectedId, selectedTranscript, setSelectedId, proteinSequence, validIds, }) {
19
19
  const { classes } = useStyles();
20
20
  const [showSequence, setShowSequence] = useState(false);
21
21
  return (React.createElement(React.Fragment, null,
22
22
  React.createElement("div", { className: classes.flex },
23
23
  React.createElement(TextField, { variant: "outlined", label: `Choose isoform of ${getGeneDisplayName(feature)}`, select: true, className: classes.minWidth, value: selectedId, onChange: event => {
24
- onTranscriptChange(event.target.value);
24
+ setSelectedId(event.target.value);
25
25
  } }, options.map(val => {
26
26
  const inSet = validIds
27
27
  ? validIds.some(id => featureMatchesId(val, id))
@@ -1 +1 @@
1
- {"version":3,"file":"TranscriptSelector.js","sourceRoot":"","sources":["../../../src/LaunchMsaView/components/TranscriptSelector.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TranscriptSelector.js","sourceRoot":"","sources":["../../../src/LaunchMsaView/components/TranscriptSelector.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { getSession } from '@jbrowse/core/util';
2
2
  import useSWR from 'swr';
3
3
  import { fetchSeq } from './fetchSeq';
4
+ import { staticSwrConfig } from '../../utils/swrConfig';
4
5
  async function featureSequenceFetcher({ feature, assemblyName, view, }) {
5
6
  const session = getSession(view);
6
7
  const { start, end, refName } = feature.toJSON();
@@ -15,19 +16,8 @@ async function featureSequenceFetcher({ feature, assemblyName, view, }) {
15
16
  }
16
17
  export function useSWRFeatureSequence({ view, feature, }) {
17
18
  const assemblyName = view?.assemblyNames?.[0];
18
- const { data, error } = useSWR(
19
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
20
- feature && assemblyName && view
21
- ? [feature.id(), assemblyName, 'feature-sequence']
22
- : null, () => featureSequenceFetcher({
23
- feature: feature,
24
- assemblyName: assemblyName,
25
- view: view,
26
- }), {
27
- revalidateOnFocus: false,
28
- revalidateOnReconnect: false,
29
- revalidateIfStale: false,
30
- });
19
+ const args = feature && assemblyName ? { feature, assemblyName, view } : undefined;
20
+ const { data, error } = useSWR(args ? [args.feature.id(), args.assemblyName, 'feature-sequence'] : null, () => featureSequenceFetcher(args), staticSwrConfig);
31
21
  return {
32
22
  sequence: data,
33
23
  error,
@@ -1 +1 @@
1
- {"version":3,"file":"useSWRFeatureSequence.js","sourceRoot":"","sources":["../../../src/LaunchMsaView/components/useSWRFeatureSequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,MAAM,MAAM,KAAK,CAAA;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,KAAK,UAAU,sBAAsB,CAAC,EACpC,OAAO,EACP,YAAY,EACZ,IAAI,GAKL;IACC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,EAI7C,CAAA;IACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC;QACzB,KAAK;QACL,GAAG;QACH,OAAO;QACP,YAAY;QACZ,OAAO;KACR,CAAC,CAAA;IACF,OAAO,EAAE,GAAG,EAAE,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EACpC,IAAI,EACJ,OAAO,GAIR;IACC,MAAM,YAAY,GAAG,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM;IAC5B,uEAAuE;IACvE,OAAO,IAAI,YAAY,IAAI,IAAI;QAC7B,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,kBAAkB,CAAC;QAClD,CAAC,CAAC,IAAI,EACR,GAAG,EAAE,CACH,sBAAsB,CAAC;QACrB,OAAO,EAAE,OAAQ;QACjB,YAAY,EAAE,YAAa;QAC3B,IAAI,EAAE,IAAK;KACZ,CAAC,EACJ;QACE,iBAAiB,EAAE,KAAK;QACxB,qBAAqB,EAAE,KAAK;QAC5B,iBAAiB,EAAE,KAAK;KACzB,CACF,CAAA;IAED,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,KAAK;KACN,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"useSWRFeatureSequence.js","sourceRoot":"","sources":["../../../src/LaunchMsaView/components/useSWRFeatureSequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,MAAM,MAAM,KAAK,CAAA;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAIvD,KAAK,UAAU,sBAAsB,CAAC,EACpC,OAAO,EACP,YAAY,EACZ,IAAI,GAKL;IACC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,EAI7C,CAAA;IACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC;QACzB,KAAK;QACL,GAAG;QACH,OAAO;QACP,YAAY;QACZ,OAAO;KACR,CAAC,CAAA;IACF,OAAO,EAAE,GAAG,EAAE,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EACpC,IAAI,EACJ,OAAO,GAIR;IACC,MAAM,YAAY,GAAG,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7C,MAAM,IAAI,GACR,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACvE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,EACxE,GAAG,EAAE,CAAC,sBAAsB,CAAC,IAAK,CAAC,EACnC,eAAe,CAChB,CAAA;IAED,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,KAAK;KACN,CAAA;AACH,CAAC"}
@@ -1,24 +1,22 @@
1
1
  import { useMemo, useState } from 'react';
2
2
  import { featureMatchesId, getId, getSortedTranscriptFeatures } from '../util';
3
3
  import { useFeatureSequence } from './useFeatureSequence';
4
- function featureInValidIds(feature, validIds) {
5
- return validIds.some(id => featureMatchesId(feature, id));
6
- }
7
4
  function findValidSelection(currentId, options, validIds) {
8
- if (!validIds || validIds.length === 0) {
9
- return undefined;
10
- }
11
- const currentFeature = options.find(opt => getId(opt) === currentId);
12
- if (!currentFeature || featureInValidIds(currentFeature, validIds)) {
13
- return undefined;
5
+ if (validIds && validIds.length > 0) {
6
+ const currentFeature = options.find(opt => getId(opt) === currentId);
7
+ const currentIsValid = currentFeature &&
8
+ validIds.some(id => featureMatchesId(currentFeature, id));
9
+ if (currentFeature && !currentIsValid) {
10
+ const validOption = options.find(opt => validIds.some(id => featureMatchesId(opt, id)));
11
+ return validOption ? getId(validOption) : undefined;
12
+ }
14
13
  }
15
- const validOption = options.find(opt => featureInValidIds(opt, validIds));
16
- return validOption ? getId(validOption) : undefined;
14
+ return undefined;
17
15
  }
18
16
  export function useTranscriptSelection({ feature, view, validIds, }) {
19
17
  const options = useMemo(() => getSortedTranscriptFeatures(feature), [feature]);
20
18
  const [selectedId, setSelectedId] = useState(() => getId(options[0]));
21
- const validatedSelectedId = findValidSelection(selectedId, options, validIds) || selectedId;
19
+ const validatedSelectedId = findValidSelection(selectedId, options, validIds) ?? selectedId;
22
20
  const selectedTranscript = options.find(val => getId(val) === validatedSelectedId);
23
21
  const { proteinSequence, error } = useFeatureSequence({
24
22
  view,
@@ -1 +1 @@
1
- {"version":3,"file":"useTranscriptSelection.js","sourceRoot":"","sources":["../../../src/LaunchMsaView/components/useTranscriptSelection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAIzD,SAAS,iBAAiB,CAAC,OAAgB,EAAE,QAAkB;IAC7D,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED,SAAS,kBAAkB,CACzB,SAAiB,EACjB,OAAkB,EAClB,QAA8B;IAE9B,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAA;IACpE,IAAI,CAAC,cAAc,IAAI,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,CAAC;QACnE,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;IACzE,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EACrC,OAAO,EACP,IAAI,EACJ,QAAQ,GAKT;IACC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,MAAM,mBAAmB,GACvB,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,UAAU,CAAA;IACjE,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CACrC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,mBAAmB,CAC1C,CAAA;IACD,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC;QACpD,IAAI;QACJ,OAAO,EAAE,kBAAkB;KAC5B,CAAC,CAAA;IAEF,OAAO;QACL,OAAO;QACP,UAAU,EAAE,mBAAmB;QAC/B,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,KAAK;QACL,QAAQ;KACT,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"useTranscriptSelection.js","sourceRoot":"","sources":["../../../src/LaunchMsaView/components/useTranscriptSelection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAIzD,SAAS,kBAAkB,CACzB,SAAiB,EACjB,OAAkB,EAClB,QAA8B;IAE9B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAA;QACpE,MAAM,cAAc,GAClB,cAAc;YACd,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAA;QAC3D,IAAI,cAAc,IAAI,CAAC,cAAc,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAC/C,CAAA;YACD,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACrD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EACrC,OAAO,EACP,IAAI,EACJ,QAAQ,GAKT;IACC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,MAAM,mBAAmB,GACvB,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,UAAU,CAAA;IACjE,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CACrC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,mBAAmB,CAC1C,CAAA;IACD,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC;QACpD,IAAI;QACJ,OAAO,EAAE,kBAAkB;KAC5B,CAAC,CAAA;IAEF,OAAO;QACL,OAAO;QACP,UAAU,EAAE,mBAAmB;QAC/B,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,KAAK;QACL,QAAQ;KACT,CAAA;AACH,CAAC"}
@@ -1,4 +1,6 @@
1
- import type { Feature } from '@jbrowse/core/util';
1
+ import type { AbstractTrackModel, Feature } from '@jbrowse/core/util';
2
+ import type { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view';
3
+ export declare function getLinearGenomeView(model: AbstractTrackModel): LinearGenomeViewModel;
2
4
  export declare function getTranscriptFeatures(feature: Feature): Feature[];
3
5
  export declare function getTranscriptLength(feature: Feature): {
4
6
  len: number;
@@ -9,6 +11,7 @@ export declare function getMatchableIds(val?: Feature): string[];
9
11
  export declare function featureMatchesId(feature: Feature, id: string): boolean;
10
12
  export declare function getTranscriptDisplayName(val?: Feature): string;
11
13
  export declare function getGeneDisplayName(val?: Feature): string;
14
+ export declare function getBlastViewTitle(feature: Feature, transcript: Feature): string;
12
15
  export declare function getSortedTranscriptFeatures(feature: Feature): Feature[];
13
16
  export declare function cleanProteinSequence(seq: string): string;
14
17
  export declare function getGeneIdentifiers(feature: Feature): string[];
@@ -1,4 +1,13 @@
1
- import { sum } from '@jbrowse/core/util';
1
+ import { getContainingView, sum } from '@jbrowse/core/util';
2
+ export function getLinearGenomeView(model) {
3
+ return getContainingView(model);
4
+ }
5
+ function uniqueDefined(vals) {
6
+ return [...new Set(vals.filter((v) => !!v))];
7
+ }
8
+ function joinDefined(sep, parts) {
9
+ return parts.filter((p) => !!p).join(sep);
10
+ }
2
11
  export function getTranscriptFeatures(feature) {
3
12
  // check if we are looking at a 'two-level' or 'three-level' feature by
4
13
  // finding exon/CDS subfeatures. we want to select from transcript names
@@ -28,34 +37,31 @@ export function getId(val) {
28
37
  return val?.id() ?? '';
29
38
  }
30
39
  export function getMatchableIds(val) {
31
- if (!val) {
32
- return [];
33
- }
34
- const ids = [
35
- val.id(),
36
- val.get('name'),
37
- val.get('id'),
38
- val.get('transcript_id'),
39
- ].filter((id) => !!id);
40
- return [...new Set(ids)];
40
+ return val
41
+ ? uniqueDefined([
42
+ val.id(),
43
+ val.get('name'),
44
+ val.get('id'),
45
+ val.get('transcript_id'),
46
+ ])
47
+ : [];
41
48
  }
42
49
  export function featureMatchesId(feature, id) {
43
50
  return getMatchableIds(feature).includes(id);
44
51
  }
45
52
  export function getTranscriptDisplayName(val) {
46
- return val === undefined
47
- ? ''
48
- : [val.get('name'), val.get('id')].filter(f => !!f).join(' ');
53
+ return val ? joinDefined(' ', [val.get('name'), val.get('id')]) : '';
49
54
  }
50
55
  export function getGeneDisplayName(val) {
51
- return val === undefined
52
- ? ''
53
- : [
56
+ return val
57
+ ? joinDefined(' ', [
54
58
  val.get('gene_name') ?? val.get('name'),
55
- val.get('id') ? `(${val.get('id')})` : '',
56
- ]
57
- .filter(f => !!f)
58
- .join(' ');
59
+ val.get('id') ? `(${val.get('id')})` : undefined,
60
+ ])
61
+ : '';
62
+ }
63
+ export function getBlastViewTitle(feature, transcript) {
64
+ return `BLAST - ${getGeneDisplayName(feature)} - ${getTranscriptDisplayName(transcript)}`;
59
65
  }
60
66
  export function getSortedTranscriptFeatures(feature) {
61
67
  const transcripts = getTranscriptFeatures(feature);
@@ -65,13 +71,12 @@ export function cleanProteinSequence(seq) {
65
71
  return seq.replaceAll('*', '').replaceAll('&', '');
66
72
  }
67
73
  export function getGeneIdentifiers(feature) {
68
- const ids = [
74
+ return uniqueDefined([
69
75
  feature.id(),
70
76
  feature.get('id'),
71
77
  feature.get('name'),
72
78
  feature.get('gene_id'),
73
79
  feature.get('gene_name'),
74
- ].filter((id) => !!id);
75
- return [...new Set(ids)];
80
+ ]);
76
81
  }
77
82
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/LaunchMsaView/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/LaunchMsaView/util.ts"],"names":[],"mappings":"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"}
@@ -631,6 +631,7 @@ export default function stateModelFactory(): import("@jbrowse/mobx-state-tree").
631
631
  readonly transcriptToMsaMap: {
632
632
  g2p: Record<number, number>;
633
633
  p2g: Record<number, number>;
634
+ p2gCodon: Record<number, number[]>;
634
635
  refName: string;
635
636
  strand: number;
636
637
  } | undefined;