jbrowse-plugin-protein3d 0.0.3 → 0.0.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 (189) hide show
  1. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js +3 -9
  2. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js.map +1 -1
  3. package/dist/AddHighlightModel/ProteinToGenomeClickHighlight.js +4 -3
  4. package/dist/AddHighlightModel/ProteinToGenomeClickHighlight.js.map +1 -1
  5. package/dist/AddHighlightModel/ProteinToGenomeHoverHighlight.d.ts +1 -2
  6. package/dist/AddHighlightModel/ProteinToGenomeHoverHighlight.js +4 -3
  7. package/dist/AddHighlightModel/ProteinToGenomeHoverHighlight.js.map +1 -1
  8. package/dist/AddHighlightModel/util.js +1 -1
  9. package/dist/AddHighlightModel/util.js.map +1 -1
  10. package/dist/AlphaFoldConfidenceAdapter/AlphaFoldConfidenceAdapter.d.ts +16 -0
  11. package/dist/AlphaFoldConfidenceAdapter/AlphaFoldConfidenceAdapter.js +43 -0
  12. package/dist/AlphaFoldConfidenceAdapter/AlphaFoldConfidenceAdapter.js.map +1 -0
  13. package/dist/AlphaFoldConfidenceAdapter/configSchema.d.ts +13 -0
  14. package/dist/AlphaFoldConfidenceAdapter/configSchema.js +16 -0
  15. package/dist/AlphaFoldConfidenceAdapter/configSchema.js.map +1 -0
  16. package/dist/AlphaFoldConfidenceAdapter/index.d.ts +2 -0
  17. package/dist/AlphaFoldConfidenceAdapter/index.js +11 -0
  18. package/dist/AlphaFoldConfidenceAdapter/index.js.map +1 -0
  19. package/dist/AlphaMissensePathogenicityAdapter/AlphaMissensePathogenicityAdapter.d.ts +30 -0
  20. package/dist/AlphaMissensePathogenicityAdapter/AlphaMissensePathogenicityAdapter.js +78 -0
  21. package/dist/AlphaMissensePathogenicityAdapter/AlphaMissensePathogenicityAdapter.js.map +1 -0
  22. package/dist/AlphaMissensePathogenicityAdapter/configSchema.d.ts +13 -0
  23. package/dist/AlphaMissensePathogenicityAdapter/configSchema.js +16 -0
  24. package/dist/AlphaMissensePathogenicityAdapter/configSchema.js.map +1 -0
  25. package/dist/AlphaMissensePathogenicityAdapter/index.d.ts +2 -0
  26. package/dist/AlphaMissensePathogenicityAdapter/index.js +11 -0
  27. package/dist/AlphaMissensePathogenicityAdapter/index.js.map +1 -0
  28. package/dist/LaunchProteinView/components/AlphaFoldDBSearch.js +161 -11
  29. package/dist/LaunchProteinView/components/AlphaFoldDBSearch.js.map +1 -1
  30. package/dist/LaunchProteinView/components/AlphaFoldDBSearchStatus.js +8 -6
  31. package/dist/LaunchProteinView/components/AlphaFoldDBSearchStatus.js.map +1 -1
  32. package/dist/LaunchProteinView/components/HelpButton.js +6 -2
  33. package/dist/LaunchProteinView/components/HelpButton.js.map +1 -1
  34. package/dist/LaunchProteinView/components/HelpDialog.js +3 -1
  35. package/dist/LaunchProteinView/components/HelpDialog.js.map +1 -1
  36. package/dist/LaunchProteinView/components/LaunchProteinViewDialog.js +6 -2
  37. package/dist/LaunchProteinView/components/LaunchProteinViewDialog.js.map +1 -1
  38. package/dist/LaunchProteinView/components/MSATable.js +3 -1
  39. package/dist/LaunchProteinView/components/MSATable.js.map +1 -1
  40. package/dist/LaunchProteinView/components/TranscriptSelector.js +3 -1
  41. package/dist/LaunchProteinView/components/TranscriptSelector.js.map +1 -1
  42. package/dist/LaunchProteinView/components/UserProvidedStructure.js +18 -11
  43. package/dist/LaunchProteinView/components/UserProvidedStructure.js.map +1 -1
  44. package/dist/LaunchProteinView/components/calculateProteinSequence.js +5 -3
  45. package/dist/LaunchProteinView/components/calculateProteinSequence.js.map +1 -1
  46. package/dist/LaunchProteinView/components/useLocalStructureFileSequence.d.ts +1 -1
  47. package/dist/LaunchProteinView/components/useLocalStructureFileSequence.js +29 -9
  48. package/dist/LaunchProteinView/components/useLocalStructureFileSequence.js.map +1 -1
  49. package/dist/LaunchProteinView/components/useRemoteStructureFileSequence.d.ts +1 -1
  50. package/dist/LaunchProteinView/components/useRemoteStructureFileSequence.js +25 -8
  51. package/dist/LaunchProteinView/components/useRemoteStructureFileSequence.js.map +1 -1
  52. package/dist/LaunchProteinView/components/util.js +1 -1
  53. package/dist/LaunchProteinView/index.js +7 -3
  54. package/dist/LaunchProteinView/index.js.map +1 -1
  55. package/dist/ProteinView/{loadStructureFromData.d.ts → addStructureFromData.d.ts} +2 -2
  56. package/dist/ProteinView/{loadStructureFromData.js → addStructureFromData.js} +3 -8
  57. package/dist/ProteinView/addStructureFromData.js.map +1 -0
  58. package/dist/ProteinView/{loadStructureFromURL.d.ts → addStructureFromURL.d.ts} +2 -2
  59. package/dist/ProteinView/{loadStructureFromURL.js → addStructureFromURL.js} +11 -9
  60. package/dist/ProteinView/addStructureFromURL.js.map +1 -0
  61. package/dist/ProteinView/clearSelection.js +1 -1
  62. package/dist/ProteinView/clearSelection.js.map +1 -1
  63. package/dist/ProteinView/components/ProteinAlignment.d.ts +2 -2
  64. package/dist/ProteinView/components/ProteinAlignment.js +37 -26
  65. package/dist/ProteinView/components/ProteinAlignment.js.map +1 -1
  66. package/dist/ProteinView/components/ProteinAlignmentHelpButton.d.ts +2 -2
  67. package/dist/ProteinView/components/ProteinAlignmentHelpButton.js +6 -4
  68. package/dist/ProteinView/components/ProteinAlignmentHelpButton.js.map +1 -1
  69. package/dist/ProteinView/components/ProteinAlignmentHelpDialog.js +6 -5
  70. package/dist/ProteinView/components/ProteinAlignmentHelpDialog.js.map +1 -1
  71. package/dist/ProteinView/components/ProteinView.js +18 -60
  72. package/dist/ProteinView/components/ProteinView.js.map +1 -1
  73. package/dist/ProteinView/components/{Header.js → ProteinViewHeader.js} +29 -12
  74. package/dist/ProteinView/components/ProteinViewHeader.js.map +1 -0
  75. package/dist/ProteinView/components/SplitString.d.ts +4 -4
  76. package/dist/ProteinView/components/SplitString.js +3 -3
  77. package/dist/ProteinView/components/SplitString.js.map +1 -1
  78. package/dist/ProteinView/genomeToProtein.d.ts +2 -2
  79. package/dist/ProteinView/genomeToProtein.js +4 -5
  80. package/dist/ProteinView/genomeToProtein.js.map +1 -1
  81. package/dist/ProteinView/highlightResidue.js +2 -2
  82. package/dist/ProteinView/highlightResidue.js.map +1 -1
  83. package/dist/ProteinView/launchRemotePairwiseAlignment.d.ts +2 -5
  84. package/dist/ProteinView/launchRemotePairwiseAlignment.js +7 -3
  85. package/dist/ProteinView/launchRemotePairwiseAlignment.js.map +1 -1
  86. package/dist/ProteinView/model.d.ts +496 -160
  87. package/dist/ProteinView/model.js +61 -246
  88. package/dist/ProteinView/model.js.map +1 -1
  89. package/dist/ProteinView/proteinToGenomeMapping.d.ts +6 -6
  90. package/dist/ProteinView/proteinToGenomeMapping.js +29 -28
  91. package/dist/ProteinView/proteinToGenomeMapping.js.map +1 -1
  92. package/dist/ProteinView/selectResidue.js +1 -1
  93. package/dist/ProteinView/selectResidue.js.map +1 -1
  94. package/dist/ProteinView/structureModel.d.ts +183 -0
  95. package/dist/ProteinView/structureModel.js +407 -0
  96. package/dist/ProteinView/structureModel.js.map +1 -0
  97. package/dist/ProteinView/useProteinView.d.ts +1 -4
  98. package/dist/ProteinView/useProteinView.js +3 -15
  99. package/dist/ProteinView/useProteinView.js.map +1 -1
  100. package/dist/ProteinView/util.d.ts +3 -3
  101. package/dist/ProteinView/util.js +8 -6
  102. package/dist/ProteinView/util.js.map +1 -1
  103. package/dist/UniProtVariationAdapter/UniProtVariationAdapter.d.ts +15 -0
  104. package/dist/UniProtVariationAdapter/UniProtVariationAdapter.js +55 -0
  105. package/dist/UniProtVariationAdapter/UniProtVariationAdapter.js.map +1 -0
  106. package/dist/UniProtVariationAdapter/configSchema.d.ts +17 -0
  107. package/dist/UniProtVariationAdapter/configSchema.js +20 -0
  108. package/dist/UniProtVariationAdapter/configSchema.js.map +1 -0
  109. package/dist/UniProtVariationAdapter/index.d.ts +2 -0
  110. package/dist/UniProtVariationAdapter/index.js +11 -0
  111. package/dist/UniProtVariationAdapter/index.js.map +1 -0
  112. package/dist/genomeToTranscriptMapping.d.ts +2 -2
  113. package/dist/genomeToTranscriptMapping.js +3 -3
  114. package/dist/genomeToTranscriptMapping.js.map +1 -1
  115. package/dist/index.js +6 -0
  116. package/dist/index.js.map +1 -1
  117. package/dist/jbrowse-plugin-protein3d.umd.production.min.js +1467 -1482
  118. package/dist/jbrowse-plugin-protein3d.umd.production.min.js.map +4 -4
  119. package/dist/mappings.d.ts +12 -10
  120. package/dist/mappings.js +7 -7
  121. package/dist/mappings.js.map +1 -1
  122. package/dist/mappings.test.js +7 -5
  123. package/dist/mappings.test.js.map +1 -1
  124. package/dist/test_data/gene.d.ts +577 -64
  125. package/dist/test_data/gene.js +1 -1
  126. package/dist/test_data/gene.js.map +1 -1
  127. package/package.json +16 -15
  128. package/src/AddHighlightModel/GenomeMouseoverHighlight.tsx +4 -17
  129. package/src/AddHighlightModel/ProteinToGenomeClickHighlight.tsx +17 -14
  130. package/src/AddHighlightModel/ProteinToGenomeHoverHighlight.tsx +18 -17
  131. package/src/AddHighlightModel/util.ts +1 -1
  132. package/src/AlphaFoldConfidenceAdapter/AlphaFoldConfidenceAdapter.ts +63 -0
  133. package/src/AlphaFoldConfidenceAdapter/configSchema.ts +21 -0
  134. package/src/AlphaFoldConfidenceAdapter/index.ts +19 -0
  135. package/src/AlphaMissensePathogenicityAdapter/AlphaMissensePathogenicityAdapter.ts +109 -0
  136. package/src/AlphaMissensePathogenicityAdapter/configSchema.ts +21 -0
  137. package/src/AlphaMissensePathogenicityAdapter/index.ts +19 -0
  138. package/src/LaunchProteinView/components/AlphaFoldDBSearch.tsx +172 -10
  139. package/src/LaunchProteinView/components/AlphaFoldDBSearchStatus.tsx +8 -6
  140. package/src/LaunchProteinView/components/HelpButton.tsx +10 -2
  141. package/src/LaunchProteinView/components/HelpDialog.tsx +6 -1
  142. package/src/LaunchProteinView/components/LaunchProteinViewDialog.tsx +9 -2
  143. package/src/LaunchProteinView/components/MSATable.tsx +3 -1
  144. package/src/LaunchProteinView/components/TranscriptSelector.tsx +9 -7
  145. package/src/LaunchProteinView/components/UserProvidedStructure.tsx +17 -12
  146. package/src/LaunchProteinView/components/calculateProteinSequence.ts +6 -4
  147. package/src/LaunchProteinView/components/useLocalStructureFileSequence.ts +28 -9
  148. package/src/LaunchProteinView/components/useRemoteStructureFileSequence.ts +23 -8
  149. package/src/LaunchProteinView/components/util.ts +1 -1
  150. package/src/LaunchProteinView/index.ts +36 -26
  151. package/src/ProteinView/{loadStructureFromData.ts → addStructureFromData.ts} +2 -8
  152. package/src/ProteinView/{loadStructureFromURL.ts → addStructureFromURL.ts} +11 -11
  153. package/src/ProteinView/clearSelection.ts +1 -1
  154. package/src/ProteinView/components/ProteinAlignment.tsx +51 -35
  155. package/src/ProteinView/components/ProteinAlignmentHelpButton.tsx +4 -4
  156. package/src/ProteinView/components/ProteinAlignmentHelpDialog.tsx +15 -11
  157. package/src/ProteinView/components/ProteinView.tsx +22 -82
  158. package/src/ProteinView/components/{Header.tsx → ProteinViewHeader.tsx} +44 -23
  159. package/src/ProteinView/components/SplitString.tsx +8 -8
  160. package/src/ProteinView/genomeToProtein.ts +5 -9
  161. package/src/ProteinView/highlightResidue.ts +2 -2
  162. package/src/ProteinView/launchRemotePairwiseAlignment.ts +6 -3
  163. package/src/ProteinView/model.ts +74 -287
  164. package/src/ProteinView/proteinToGenomeMapping.ts +40 -38
  165. package/src/ProteinView/selectResidue.ts +1 -1
  166. package/src/ProteinView/structureModel.ts +512 -0
  167. package/src/ProteinView/useProteinView.ts +2 -19
  168. package/src/ProteinView/util.ts +20 -9
  169. package/src/UniProtVariationAdapter/UniProtVariationAdapter.ts +99 -0
  170. package/src/UniProtVariationAdapter/configSchema.ts +25 -0
  171. package/src/UniProtVariationAdapter/index.ts +17 -0
  172. package/src/__snapshots__/mappings.test.ts.snap +224 -224
  173. package/src/genomeToTranscriptMapping.ts +9 -9
  174. package/src/index.ts +6 -0
  175. package/src/mappings.test.ts +7 -5
  176. package/src/mappings.ts +25 -23
  177. package/src/test_data/gene.ts +3 -3
  178. package/dist/ProteinView/components/Header.js.map +0 -1
  179. package/dist/ProteinView/loadStructureFromData.js.map +0 -1
  180. package/dist/ProteinView/loadStructureFromURL.js.map +0 -1
  181. package/dist/ProteinView/useProteinViewClickBehavior.d.ts +0 -8
  182. package/dist/ProteinView/useProteinViewClickBehavior.js +0 -34
  183. package/dist/ProteinView/useProteinViewClickBehavior.js.map +0 -1
  184. package/dist/ProteinView/useProteinViewHoverBehavior.d.ts +0 -6
  185. package/dist/ProteinView/useProteinViewHoverBehavior.js +0 -31
  186. package/dist/ProteinView/useProteinViewHoverBehavior.js.map +0 -1
  187. package/src/ProteinView/useProteinViewClickBehavior.ts +0 -48
  188. package/src/ProteinView/useProteinViewHoverBehavior.ts +0 -44
  189. /package/dist/ProteinView/components/{Header.d.ts → ProteinViewHeader.d.ts} +0 -0
@@ -15,18 +15,20 @@ export function getMolstarStructureSelection({ structure, selectedResidue, }) {
15
15
  'group-by': Q.struct.atomProperty.macromolecular.residueKey(),
16
16
  }), structure);
17
17
  }
18
- export function toStr(r) {
18
+ export function toStr({ chain, code, structureSeqPos, }) {
19
19
  return [
20
- `Position: ${r.structureSeqPos}`,
21
- r.code
22
- ? `Letter: ${r.code} (${proteinAbbreviationMapping[r.code]?.singleLetterCode})`
20
+ structureSeqPos === undefined ? '' : `Position: ${structureSeqPos}`,
21
+ code
22
+ ? `Letter: ${code} (${proteinAbbreviationMapping[code]?.singleLetterCode})`
23
23
  : '',
24
- r.chain ? `Chain: ${r.chain}` : '',
24
+ chain ? `Chain: ${chain}` : '',
25
25
  ]
26
26
  .filter(f => !!f)
27
27
  .join(', ');
28
28
  }
29
29
  export function invertMap(arg) {
30
- return Object.fromEntries(Object.entries(arg).map(([a, b]) => [b, a]));
30
+ return Object.fromEntries(Object.entries(arg)
31
+ .map(([a, b]) => [b, +a])
32
+ .filter(f => f[0] !== undefined));
31
33
  }
32
34
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/ProteinView/util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAEzE,MAAM,UAAU,YAAY,CAAC,OAAgB;IAI3C,OAAO,CACL,CAAC,CAAC,OAAO;QACT,OAAO,OAAO,IAAI,QAAQ;QAC1B,cAAc,IAAI,OAAO;QACzB,eAAe,IAAI,OAAO,CAC3B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,EAC3C,SAAS,EACT,eAAe,GAIhB;IACC,OAAO,MAAM,CAAC,qBAAqB,CACjC,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;QAC5B,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,EAAE;YACnD,eAAe;SAChB,CAAC;QACF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,EAAE;KAC9D,CAAC,EACJ,SAAS,CACV,CAAA;AACH,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAIrB;IACC,OAAO;QACL,aAAa,CAAC,CAAC,eAAe,EAAE;QAChC,CAAC,CAAC,IAAI;YACJ,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,KAAK,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG;YAC/E,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;KACnC;SACE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAChB,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAuC;IAC/D,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACxE,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/ProteinView/util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAEzE,MAAM,UAAU,YAAY,CAAC,OAAgB;IAO3C,OAAO,CACL,CAAC,CAAC,OAAO;QACT,OAAO,OAAO,IAAI,QAAQ;QAC1B,cAAc,IAAI,OAAO;QACzB,eAAe,IAAI,OAAO,CAC3B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,EAC3C,SAAS,EACT,eAAe,GAIhB;IACC,OAAO,MAAM,CAAC,qBAAqB,CACjC,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;QAC5B,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,YAAY,EAAE;YACnD,eAAe;SAChB,CAAC;QACF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,EAAE;KAC9D,CAAC,EACJ,SAAS,CACV,CAAA;AACH,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EACpB,KAAK,EACL,IAAI,EACJ,eAAe,GAKhB;IACC,OAAO;QACL,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,eAAe,EAAE;QACnE,IAAI;YACF,CAAC,CAAC,WAAW,IAAI,KAAK,0BAA0B,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG;YAC3E,CAAC,CAAC,EAAE;QACN,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;KAC/B;SACE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAChB,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAA2B;IACnD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;SAChB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CACnC,CAAA;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
2
+ import { Region, Feature } from '@jbrowse/core/util';
3
+ export default class UniProtVariationAdapter extends BaseFeatureDataAdapter {
4
+ static capabilities: string[];
5
+ feats: Promise<{
6
+ uniqueId: string;
7
+ start: number;
8
+ end: number;
9
+ }[]> | undefined;
10
+ private loadDataP;
11
+ private loadData;
12
+ getRefNames(_opts?: BaseOptions): Promise<never[]>;
13
+ getFeatures(query: Region, opts?: BaseOptions): import("rxjs").Observable<Feature>;
14
+ freeResources(): void;
15
+ }
@@ -0,0 +1,55 @@
1
+ import { BaseFeatureDataAdapter, } from '@jbrowse/core/data_adapters/BaseAdapter';
2
+ import { openLocation } from '@jbrowse/core/util/io';
3
+ import { ObservableCreate } from '@jbrowse/core/util/rxjs';
4
+ import { doesIntersect2, SimpleFeature, } from '@jbrowse/core/util';
5
+ export default class UniProtVariationAdapter extends BaseFeatureDataAdapter {
6
+ static capabilities = ['getFeatures', 'getRefNames'];
7
+ feats;
8
+ async loadDataP() {
9
+ const { features } = JSON.parse(await openLocation(this.getConf('location')).readFile('utf8'));
10
+ const scoreField = this.getConf('scoreField');
11
+ return features.map(({ begin, end, ...rest }, idx) => ({
12
+ ...rest,
13
+ uniqueId: `feat-${idx}`,
14
+ start: +begin,
15
+ end: +end + 1,
16
+ score: scoreField === 'population_frequency'
17
+ ? rest.populationFrequencies?.[0]?.frequency
18
+ : scoreField === 'variant_impact_score'
19
+ ? rest.predictions?.[0]?.score
20
+ : undefined,
21
+ description: rest.descriptions?.map(d => d.value).join(','),
22
+ name: [
23
+ rest.mutatedType
24
+ ? `${rest.wildType}->${rest.mutatedType}`
25
+ : `${rest.wildType}->del`,
26
+ ],
27
+ }));
28
+ }
29
+ async loadData(_opts = {}) {
30
+ if (!this.feats) {
31
+ this.feats = this.loadDataP().catch((e) => {
32
+ this.feats = undefined;
33
+ throw e;
34
+ });
35
+ }
36
+ return this.feats;
37
+ }
38
+ async getRefNames(_opts = {}) {
39
+ return [];
40
+ }
41
+ getFeatures(query, opts = {}) {
42
+ return ObservableCreate(async (observer) => {
43
+ const { start, end, refName } = query;
44
+ const data = await this.loadData();
45
+ for (const f of data) {
46
+ if (doesIntersect2(f.start, f.end, start, end)) {
47
+ observer.next(new SimpleFeature({ ...f, refName }));
48
+ }
49
+ }
50
+ observer.complete();
51
+ }, opts.signal);
52
+ }
53
+ freeResources() { }
54
+ }
55
+ //# sourceMappingURL=UniProtVariationAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniProtVariationAdapter.js","sourceRoot":"","sources":["../../src/UniProtVariationAdapter/UniProtVariationAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ declare const UniProtVariationAdapter: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
2
+ /**
3
+ * #slot
4
+ */
5
+ location: {
6
+ type: string;
7
+ defaultValue: {
8
+ uri: string;
9
+ locationType: string;
10
+ };
11
+ };
12
+ scoreField: {
13
+ type: string;
14
+ defaultValue: string;
15
+ };
16
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
17
+ export default UniProtVariationAdapter;
@@ -0,0 +1,20 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
+ /**
3
+ * #config UniProtVariationAdapter
4
+ */
5
+ function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
6
+ const UniProtVariationAdapter = ConfigurationSchema('UniProtVariationAdapter', {
7
+ /**
8
+ * #slot
9
+ */
10
+ location: {
11
+ type: 'fileLocation',
12
+ defaultValue: { uri: '/path/to/my.bed.gz', locationType: 'UriLocation' },
13
+ },
14
+ scoreField: {
15
+ type: 'string',
16
+ defaultValue: '',
17
+ },
18
+ }, { explicitlyTyped: true });
19
+ export default UniProtVariationAdapter;
20
+ //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/UniProtVariationAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE;;GAEG;AACH,SAAS,CAAC,KAAI,CAAC,CAAC,wDAAwD;AAExE,MAAM,uBAAuB,GAAG,mBAAmB,CACjD,yBAAyB,EACzB;IACE;;OAEG;IACH,QAAQ,EAAE;QACR,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE;KACzE;IACD,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,EAAE;KACjB;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA;AACD,eAAe,uBAAuB,CAAA"}
@@ -0,0 +1,2 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ export default function UniProtVariationAdapterF(pluginManager: PluginManager): void;
@@ -0,0 +1,11 @@
1
+ import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType';
2
+ import configSchema from './configSchema';
3
+ export default function UniProtVariationAdapterF(pluginManager) {
4
+ pluginManager.addAdapterType(() => new AdapterType({
5
+ name: 'UniProtVariationAdapter',
6
+ displayName: 'UniProtVariation adapter',
7
+ configSchema,
8
+ getAdapterClass: () => import('./UniProtVariationAdapter').then(r => r.default),
9
+ }));
10
+ }
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/UniProtVariationAdapter/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,iDAAiD,CAAA;AAEzE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,aAA4B;IAC3E,aAAa,CAAC,cAAc,CAC1B,GAAG,EAAE,CACH,IAAI,WAAW,CAAC;QACd,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,0BAA0B;QACvC,YAAY;QACZ,eAAe,EAAE,GAAG,EAAE,CACpB,MAAM,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KAC3D,CAAC,CACL,CAAA;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Feature } from '@jbrowse/core/util';
2
2
  export declare function genomeToTranscriptMapping(feature: Feature): {
3
- g2p: Record<number, number | undefined>;
4
- p2g: Record<number, number | undefined>;
3
+ g2p: Record<number, number>;
4
+ p2g: Record<number, number>;
5
5
  refName: string;
6
6
  strand: number;
7
7
  };
@@ -9,9 +9,9 @@ export function genomeToTranscriptMapping(feature) {
9
9
  const g2p = {};
10
10
  const p2g = {};
11
11
  let proteinCounter = 0;
12
- if (strand !== -1) {
12
+ if (strand === -1) {
13
13
  for (const f of cds) {
14
- for (let genomePos = f.get('start'); genomePos < f.get('end'); genomePos++) {
14
+ for (let genomePos = f.get('end'); genomePos > f.get('start'); genomePos--) {
15
15
  const proteinPos = Math.floor(proteinCounter++ / 3);
16
16
  g2p[genomePos] = proteinPos;
17
17
  if (!p2g[proteinPos]) {
@@ -22,7 +22,7 @@ export function genomeToTranscriptMapping(feature) {
22
22
  }
23
23
  else {
24
24
  for (const f of cds) {
25
- for (let genomePos = f.get('end'); genomePos > f.get('start'); genomePos--) {
25
+ for (let genomePos = f.get('start'); genomePos < f.get('end'); genomePos++) {
26
26
  const proteinPos = Math.floor(proteinCounter++ / 3);
27
27
  g2p[genomePos] = proteinPos;
28
28
  if (!p2g[proteinPos]) {
@@ -1 +1 @@
1
- {"version":3,"file":"genomeToTranscriptMapping.js","sourceRoot":"","sources":["../src/genomeToTranscriptMapping.ts"],"names":[],"mappings":"AAEA,yCAAyC;AACzC,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAW,CAAA;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;IACrC,MAAM,GAAG,GAAG,IAAI;SACb,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC;SACpC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC7D,MAAM,GAAG,GAAG,EAAwC,CAAA;IACpD,MAAM,GAAG,GAAG,EAAwC,CAAA;IAEpD,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,KACE,IAAI,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAC9B,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EACxB,SAAS,EAAE,EACX,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAA;gBACnD,GAAG,CAAC,SAAS,CAAC,GAAG,UAAU,CAAA;gBAC3B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBACrB,GAAG,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,KACE,IAAI,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAC5B,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAC1B,SAAS,EAAE,EACX,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAA;gBACnD,GAAG,CAAC,SAAS,CAAC,GAAG,UAAU,CAAA;gBAC3B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBACrB,GAAG,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AACtC,CAAC"}
1
+ {"version":3,"file":"genomeToTranscriptMapping.js","sourceRoot":"","sources":["../src/genomeToTranscriptMapping.ts"],"names":[],"mappings":"AAEA,yCAAyC;AACzC,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAW,CAAA;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;IACrC,MAAM,GAAG,GAAG,IAAI;SACb,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC;SACpC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC7D,MAAM,GAAG,GAAG,EAA4B,CAAA;IACxC,MAAM,GAAG,GAAG,EAA4B,CAAA;IAExC,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,KACE,IAAI,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAC5B,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAC1B,SAAS,EAAE,EACX,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAA;gBACnD,GAAG,CAAC,SAAS,CAAC,GAAG,UAAU,CAAA;gBAC3B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBACrB,GAAG,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,KACE,IAAI,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAC9B,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EACxB,SAAS,EAAE,EACX,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAA;gBACnD,GAAG,CAAC,SAAS,CAAC,GAAG,UAAU,CAAA;gBAC3B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBACrB,GAAG,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AACtC,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,9 @@ import { version } from '../package.json';
4
4
  import ProteinViewF from './ProteinView';
5
5
  import LaunchProteinViewF from './LaunchProteinView';
6
6
  import AddHighlightModelF from './AddHighlightModel';
7
+ import AlphaFoldConfidenceAdapterF from './AlphaFoldConfidenceAdapter';
8
+ import UniProtVariationAdapterF from './UniProtVariationAdapter';
9
+ import AlphaMissensePathogenicityAdapterF from './AlphaMissensePathogenicityAdapter';
7
10
  export default class ProteinViewer extends Plugin {
8
11
  name = 'ProteinViewer';
9
12
  version = version;
@@ -11,6 +14,9 @@ export default class ProteinViewer extends Plugin {
11
14
  ProteinViewF(pluginManager);
12
15
  LaunchProteinViewF(pluginManager);
13
16
  AddHighlightModelF(pluginManager);
17
+ AlphaFoldConfidenceAdapterF(pluginManager);
18
+ AlphaMissensePathogenicityAdapterF(pluginManager);
19
+ UniProtVariationAdapterF(pluginManager);
14
20
  }
15
21
  configure(_pluginManager) { }
16
22
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAA;AAGzC,SAAS;AACT,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,kBAAkB,MAAM,qBAAqB,CAAA;AACpD,OAAO,kBAAkB,MAAM,qBAAqB,CAAA;AAEpD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,MAAM;IAC/C,IAAI,GAAG,eAAe,CAAA;IACtB,OAAO,GAAG,OAAO,CAAA;IAEjB,OAAO,CAAC,aAA4B;QAClC,YAAY,CAAC,aAAa,CAAC,CAAA;QAC3B,kBAAkB,CAAC,aAAa,CAAC,CAAA;QACjC,kBAAkB,CAAC,aAAa,CAAC,CAAA;IACnC,CAAC;IAED,SAAS,CAAC,cAA6B,IAAG,CAAC;CAC5C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAA;AAGzC,SAAS;AACT,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,kBAAkB,MAAM,qBAAqB,CAAA;AACpD,OAAO,kBAAkB,MAAM,qBAAqB,CAAA;AACpD,OAAO,2BAA2B,MAAM,8BAA8B,CAAA;AACtE,OAAO,wBAAwB,MAAM,2BAA2B,CAAA;AAChE,OAAO,kCAAkC,MAAM,qCAAqC,CAAA;AAEpF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,MAAM;IAC/C,IAAI,GAAG,eAAe,CAAA;IACtB,OAAO,GAAG,OAAO,CAAA;IAEjB,OAAO,CAAC,aAA4B;QAClC,YAAY,CAAC,aAAa,CAAC,CAAA;QAC3B,kBAAkB,CAAC,aAAa,CAAC,CAAA;QACjC,kBAAkB,CAAC,aAAa,CAAC,CAAA;QACjC,2BAA2B,CAAC,aAAa,CAAC,CAAA;QAC1C,kCAAkC,CAAC,aAAa,CAAC,CAAA;QACjD,wBAAwB,CAAC,aAAa,CAAC,CAAA;IACzC,CAAC;IAED,SAAS,CAAC,cAA6B,IAAG,CAAC;CAC5C"}