p2s_mapper 1.4.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.md +220 -39
  2. package/dist/alignmentQuality.d.ts +5 -5
  3. package/dist/alphaFoldModels.d.ts +4 -4
  4. package/dist/alphaFoldModels.js +4 -4
  5. package/dist/chooseMappedEntity.d.ts +11 -13
  6. package/dist/chooseMappedEntity.js +9 -12
  7. package/dist/chooseMappedEntity.js.map +1 -1
  8. package/dist/coordinates.d.ts +19 -19
  9. package/dist/coordinates.js.map +1 -1
  10. package/dist/dbIds.d.ts +1 -2
  11. package/dist/extractPerResidueConfidence.d.ts +1 -2
  12. package/dist/extractStructureSequences.d.ts +26 -34
  13. package/dist/extractStructureSequences.js +2 -2
  14. package/dist/extractStructureSequences.js.map +1 -1
  15. package/dist/fetchUtils.d.ts +7 -7
  16. package/dist/fetchUtils.js +26 -8
  17. package/dist/fetchUtils.js.map +1 -1
  18. package/dist/index.d.ts +1 -3
  19. package/dist/index.js +2 -4
  20. package/dist/index.js.map +1 -1
  21. package/dist/isoformRanking.d.ts +4 -1
  22. package/dist/mappings.d.ts +9 -12
  23. package/dist/mappings.js +4 -5
  24. package/dist/mappings.js.map +1 -1
  25. package/dist/pairwiseAlignment.d.ts +5 -4
  26. package/dist/pairwiseAlignment.js +9 -7
  27. package/dist/pairwiseAlignment.js.map +1 -1
  28. package/dist/pdbEntry.d.ts +32 -0
  29. package/dist/pdbEntry.js +182 -0
  30. package/dist/pdbEntry.js.map +1 -0
  31. package/dist/pdbUniProtMapping.d.ts +14 -39
  32. package/dist/pdbUniProtMapping.js +22 -140
  33. package/dist/pdbUniProtMapping.js.map +1 -1
  34. package/dist/structureFormat.d.ts +11 -18
  35. package/dist/structureFormat.js +4 -6
  36. package/dist/structureFormat.js.map +1 -1
  37. package/dist/structureSources.d.ts +37 -13
  38. package/dist/structureSources.js +144 -57
  39. package/dist/structureSources.js.map +1 -1
  40. package/dist/structureUrls.d.ts +13 -16
  41. package/dist/structureUrls.js +25 -23
  42. package/dist/structureUrls.js.map +1 -1
  43. package/dist/types.d.ts +2 -5
  44. package/dist/types.js +2 -5
  45. package/dist/types.js.map +1 -1
  46. package/dist/uniProtSearch.js +3 -8
  47. package/dist/uniProtSearch.js.map +1 -1
  48. package/esm/alignmentQuality.d.ts +5 -5
  49. package/esm/alphaFoldModels.d.ts +4 -4
  50. package/esm/alphaFoldModels.js +4 -4
  51. package/esm/chooseMappedEntity.d.ts +11 -13
  52. package/esm/chooseMappedEntity.js +9 -12
  53. package/esm/chooseMappedEntity.js.map +1 -1
  54. package/esm/coordinates.d.ts +19 -19
  55. package/esm/coordinates.js.map +1 -1
  56. package/esm/dbIds.d.ts +1 -2
  57. package/esm/extractPerResidueConfidence.d.ts +1 -2
  58. package/esm/extractStructureSequences.d.ts +26 -34
  59. package/esm/extractStructureSequences.js +2 -2
  60. package/esm/extractStructureSequences.js.map +1 -1
  61. package/esm/fetchUtils.d.ts +7 -7
  62. package/esm/fetchUtils.js +26 -8
  63. package/esm/fetchUtils.js.map +1 -1
  64. package/esm/index.d.ts +1 -3
  65. package/esm/index.js +2 -4
  66. package/esm/index.js.map +1 -1
  67. package/esm/isoformRanking.d.ts +4 -1
  68. package/esm/mappings.d.ts +9 -12
  69. package/esm/mappings.js +4 -5
  70. package/esm/mappings.js.map +1 -1
  71. package/esm/pairwiseAlignment.d.ts +5 -4
  72. package/esm/pairwiseAlignment.js +7 -5
  73. package/esm/pairwiseAlignment.js.map +1 -1
  74. package/esm/pdbEntry.d.ts +32 -0
  75. package/esm/pdbEntry.js +174 -0
  76. package/esm/pdbEntry.js.map +1 -0
  77. package/esm/pdbUniProtMapping.d.ts +14 -39
  78. package/esm/pdbUniProtMapping.js +22 -137
  79. package/esm/pdbUniProtMapping.js.map +1 -1
  80. package/esm/structureFormat.d.ts +11 -18
  81. package/esm/structureFormat.js +4 -6
  82. package/esm/structureFormat.js.map +1 -1
  83. package/esm/structureSources.d.ts +37 -13
  84. package/esm/structureSources.js +139 -55
  85. package/esm/structureSources.js.map +1 -1
  86. package/esm/structureUrls.d.ts +13 -16
  87. package/esm/structureUrls.js +23 -23
  88. package/esm/structureUrls.js.map +1 -1
  89. package/esm/types.d.ts +2 -5
  90. package/esm/types.js +2 -5
  91. package/esm/types.js.map +1 -1
  92. package/esm/uniProtSearch.js +3 -8
  93. package/esm/uniProtSearch.js.map +1 -1
  94. package/package.json +3 -2
  95. package/src/alignmentQuality.ts +5 -5
  96. package/src/alphaFoldModels.ts +4 -4
  97. package/src/chooseMappedEntity.ts +12 -15
  98. package/src/coordinates.ts +14 -17
  99. package/src/dbIds.ts +1 -1
  100. package/src/extractPerResidueConfidence.ts +1 -1
  101. package/src/extractStructureSequences.ts +26 -33
  102. package/src/fetchUtils.ts +30 -8
  103. package/src/index.ts +2 -4
  104. package/src/isoformRanking.ts +4 -4
  105. package/src/mappings.ts +9 -12
  106. package/src/pairwiseAlignment.ts +12 -9
  107. package/src/pdbEntry.ts +240 -0
  108. package/src/pdbUniProtMapping.ts +25 -164
  109. package/src/structureFormat.ts +11 -18
  110. package/src/structureSources.ts +194 -70
  111. package/src/structureUrls.ts +25 -23
  112. package/src/types.ts +2 -5
  113. package/src/uniProtSearch.ts +3 -8
  114. package/dist/pdbeBestStructures.d.ts +0 -23
  115. package/dist/pdbeBestStructures.js +0 -79
  116. package/dist/pdbeBestStructures.js.map +0 -1
  117. package/dist/pdbeEntryMolecules.d.ts +0 -7
  118. package/dist/pdbeEntryMolecules.js +0 -39
  119. package/dist/pdbeEntryMolecules.js.map +0 -1
  120. package/dist/siftsNumbering.d.ts +0 -23
  121. package/dist/siftsNumbering.js +0 -44
  122. package/dist/siftsNumbering.js.map +0 -1
  123. package/esm/pdbeBestStructures.d.ts +0 -23
  124. package/esm/pdbeBestStructures.js +0 -73
  125. package/esm/pdbeBestStructures.js.map +0 -1
  126. package/esm/pdbeEntryMolecules.d.ts +0 -7
  127. package/esm/pdbeEntryMolecules.js +0 -35
  128. package/esm/pdbeEntryMolecules.js.map +0 -1
  129. package/esm/siftsNumbering.d.ts +0 -23
  130. package/esm/siftsNumbering.js +0 -40
  131. package/esm/siftsNumbering.js.map +0 -1
  132. package/src/pdbeBestStructures.ts +0 -94
  133. package/src/pdbeEntryMolecules.ts +0 -37
  134. package/src/siftsNumbering.ts +0 -61
@@ -1,6 +1,6 @@
1
1
  import type { PairwiseAlignment } from './mappings.ts';
2
2
  import type { AlignmentAlgorithm } from './types.ts';
3
- interface AlignmentResult {
3
+ export interface AlignmentResult {
4
4
  alignedSeq1: string;
5
5
  alignedSeq2: string;
6
6
  score: number;
@@ -27,9 +27,10 @@ export declare function needlemanWunsch(seq1: string, seq2: string, gapOpen?: nu
27
27
  export declare function smithWaterman(seq1: string, seq2: string, gapOpen?: number, gapExtend?: number): AlignmentResult;
28
28
  /** The score of a sequence aligned to itself with no gaps. */
29
29
  export declare function selfScore(seq: string): number;
30
- export declare function scoredAlignment(seq1: string, seq2: string, algorithm: AlignmentAlgorithm): {
30
+ export declare function scoredAlignment(transcript: string, structure: string, algorithm: AlignmentAlgorithm): {
31
31
  alignment: PairwiseAlignment;
32
32
  score: number;
33
33
  };
34
- export declare function runLocalAlignment(seq1: string, seq2: string, algorithm: AlignmentAlgorithm): PairwiseAlignment;
35
- export {};
34
+ export declare function alignSequences(transcript: string, structure: string, algorithm: AlignmentAlgorithm): PairwiseAlignment;
35
+ /** @deprecated renamed to `alignSequences`, which runs either algorithm */
36
+ export declare const runLocalAlignment: typeof alignSequences;
@@ -307,10 +307,10 @@ export function selfScore(seq) {
307
307
  }
308
308
  return score;
309
309
  }
310
- export function scoredAlignment(seq1, seq2, algorithm) {
310
+ export function scoredAlignment(transcript, structure, algorithm) {
311
311
  const { alignedSeq1, alignedSeq2, score } = algorithm === 'smith_waterman'
312
- ? smithWaterman(seq1, seq2)
313
- : needlemanWunsch(seq1, seq2);
312
+ ? smithWaterman(transcript, structure)
313
+ : needlemanWunsch(transcript, structure);
314
314
  return {
315
315
  alignment: {
316
316
  consensus: buildConsensus(alignedSeq1, alignedSeq2),
@@ -322,7 +322,9 @@ export function scoredAlignment(seq1, seq2, algorithm) {
322
322
  score,
323
323
  };
324
324
  }
325
- export function runLocalAlignment(seq1, seq2, algorithm) {
326
- return scoredAlignment(seq1, seq2, algorithm).alignment;
325
+ export function alignSequences(transcript, structure, algorithm) {
326
+ return scoredAlignment(transcript, structure, algorithm).alignment;
327
327
  }
328
+ /** @deprecated renamed to `alignSequences`, which runs either algorithm */
329
+ export const runLocalAlignment = alignSequences;
328
330
  //# sourceMappingURL=pairwiseAlignment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pairwiseAlignment.js","sourceRoot":"","sources":["../src/pairwiseAlignment.ts"],"names":[],"mappings":"AAGA,iEAAiE;AACjE,kBAAkB;AAClB,MAAM,WAAW,GAAG,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,CAAA;AACrH,kBAAkB;AAClB,MAAM,YAAY,GAAG;IACrB,iGAAiG;IAC/F,CAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAE,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAE,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAE,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAA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"}
1
+ {"version":3,"file":"pairwiseAlignment.js","sourceRoot":"","sources":["../src/pairwiseAlignment.ts"],"names":[],"mappings":"AAGA,iEAAiE;AACjE,kBAAkB;AAClB,MAAM,WAAW,GAAG,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,CAAA;AACrH,kBAAkB;AAClB,MAAM,YAAY,GAAG;IACrB,iGAAiG;IAC/F,CAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAE,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAE,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAE,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;IACtG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAA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"}
@@ -0,0 +1,32 @@
1
+ import type { FetchOptions } from './fetchUtils.ts';
2
+ import type { UniProtStructureMapping } from './pdbUniProtMapping.ts';
3
+ export declare const RCSB_DATA_GRAPHQL_URL = "https://data.rcsb.org/graphql";
4
+ export interface PdbEntry {
5
+ /** every UniProt accession the entry's entities align to */
6
+ mappings: UniProtStructureMapping[];
7
+ /** one sequence per protein entity, in entity order; nucleic acids left
8
+ * out, since A, C, G, T and U are amino-acid letters too */
9
+ proteinSequences: string[];
10
+ }
11
+ export declare function pdbEntryQuery(pdbId: string): string;
12
+ /**
13
+ * A GraphQL request. The server answers 200 whatever happened, so a failure
14
+ * is read from the body's `errors`, and counts as a 400: the server
15
+ * understood the query and declined it, so asking again gets the same answer.
16
+ */
17
+ export declare function graphqlFetch(url: string, query: string, variables: Record<string, unknown> | undefined, opts?: FetchOptions): Promise<unknown>;
18
+ /**
19
+ * The entry, retried twice: one failed request would otherwise leave a fusion
20
+ * construct mapped onto its partner for the whole session. An id RCSB has no
21
+ * entry for is a 404, which is not retried, since that answer cannot change.
22
+ */
23
+ export declare function fetchPdbEntry(pdbId: string, opts?: FetchOptions): Promise<PdbEntry>;
24
+ /** The entry's UniProt alignment alone. */
25
+ export declare function fetchUniProtStructureMappings(pdbId: string, opts?: FetchOptions): Promise<UniProtStructureMapping[]>;
26
+ /**
27
+ * Parses the `data` of `pdbEntryQuery`. Undefined when RCSB has no such
28
+ * entry; an entry nothing aligns to UniProt (DNA alone, say) parses to no
29
+ * mappings. An unparseable alignment is skipped rather than failing the
30
+ * entry, so a chimera with one malformed region still maps its other chains.
31
+ */
32
+ export declare function parsePdbEntry(data: unknown): PdbEntry | undefined;
@@ -0,0 +1,174 @@
1
+ // What RCSB knows about one PDB entry that a mapping needs, in one GraphQL
2
+ // call: each polymer entity's sequence, its author chains, and its alignment
3
+ // to UniProt. The alignment is what SIFTS publishes per chain, numbered the
4
+ // same way (`entity_beg_seq_id` is label_seq_id, 1-based into the SEQRES),
5
+ // and agreed with PDBe's SIFTS on every residue of 23 entries checked
6
+ // (2026-10-11, 1TUP, 2RH1, 4HHB, 7K00 among them), in a tenth of the time.
7
+ import { HttpError, isDefinitiveFailure, jsonfetch, timeout, } from "./fetchUtils.js";
8
+ export const RCSB_DATA_GRAPHQL_URL = 'https://data.rcsb.org/graphql';
9
+ export function pdbEntryQuery(pdbId) {
10
+ return `{ entry(entry_id: "${pdbId.toUpperCase()}") { polymer_entities {
11
+ rcsb_id
12
+ entity_poly { type pdbx_seq_one_letter_code_can }
13
+ rcsb_polymer_entity_container_identifiers { auth_asym_ids }
14
+ rcsb_polymer_entity_align {
15
+ reference_database_name reference_database_accession
16
+ aligned_regions { entity_beg_seq_id ref_beg_seq_id length }
17
+ }
18
+ uniprots { rcsb_id rcsb_uniprot_entry_name }
19
+ } } }`;
20
+ }
21
+ const RETRY_DELAYS_MS = [1000, 3000];
22
+ // bounded, since a view reports itself loading until the entry answers
23
+ const TIMEOUT_MS = 20_000;
24
+ /**
25
+ * A GraphQL request. The server answers 200 whatever happened, so a failure
26
+ * is read from the body's `errors`, and counts as a 400: the server
27
+ * understood the query and declined it, so asking again gets the same answer.
28
+ */
29
+ export async function graphqlFetch(url, query, variables, opts) {
30
+ const json = await jsonfetch(url, {
31
+ ...opts,
32
+ method: 'POST',
33
+ headers: { 'Content-Type': 'application/json' },
34
+ body: JSON.stringify({ query, variables }),
35
+ });
36
+ const errors = isRecord(json) ? json.errors : undefined;
37
+ if (Array.isArray(errors) && errors.length > 0) {
38
+ const first = errors[0];
39
+ const message = isRecord(first) && typeof first.message === 'string'
40
+ ? first.message
41
+ : 'unknown error';
42
+ throw new HttpError(`${new URL(url).host}: ${message}`, 400);
43
+ }
44
+ return isRecord(json) ? json.data : undefined;
45
+ }
46
+ /**
47
+ * The entry, retried twice: one failed request would otherwise leave a fusion
48
+ * construct mapped onto its partner for the whole session. An id RCSB has no
49
+ * entry for is a 404, which is not retried, since that answer cannot change.
50
+ */
51
+ export async function fetchPdbEntry(pdbId, opts) {
52
+ const { signal: caller, ...rest } = opts ?? {};
53
+ const signal = caller ?? undefined;
54
+ const deadline = () => signal
55
+ ? AbortSignal.any([signal, AbortSignal.timeout(TIMEOUT_MS)])
56
+ : AbortSignal.timeout(TIMEOUT_MS);
57
+ for (let attempt = 0;; attempt++) {
58
+ try {
59
+ const entry = parsePdbEntry(await graphqlFetch(RCSB_DATA_GRAPHQL_URL, pdbEntryQuery(pdbId), undefined, { ...rest, signal: deadline() }));
60
+ if (!entry) {
61
+ throw new HttpError(`RCSB has no entry ${pdbId.toUpperCase()}`, 404);
62
+ }
63
+ return entry;
64
+ }
65
+ catch (e) {
66
+ const delay = RETRY_DELAYS_MS[attempt];
67
+ // the caller's own abort is not a failure to retry either
68
+ if (delay === undefined || isDefinitiveFailure(e) || signal?.aborted) {
69
+ throw e;
70
+ }
71
+ await timeout(delay, signal);
72
+ }
73
+ }
74
+ }
75
+ /** The entry's UniProt alignment alone. */
76
+ export async function fetchUniProtStructureMappings(pdbId, opts) {
77
+ return (await fetchPdbEntry(pdbId, opts)).mappings;
78
+ }
79
+ function isRecord(value) {
80
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
81
+ }
82
+ function finiteNumber(value) {
83
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
84
+ }
85
+ function strings(value) {
86
+ return Array.isArray(value)
87
+ ? value.filter((v) => typeof v === 'string')
88
+ : [];
89
+ }
90
+ /**
91
+ * Parses the `data` of `pdbEntryQuery`. Undefined when RCSB has no such
92
+ * entry; an entry nothing aligns to UniProt (DNA alone, say) parses to no
93
+ * mappings. An unparseable alignment is skipped rather than failing the
94
+ * entry, so a chimera with one malformed region still maps its other chains.
95
+ */
96
+ export function parsePdbEntry(data) {
97
+ const entry = isRecord(data) ? data.entry : undefined;
98
+ if (!isRecord(entry)) {
99
+ return undefined;
100
+ }
101
+ const entities = Array.isArray(entry.polymer_entities)
102
+ ? entry.polymer_entities.filter(isRecord)
103
+ : [];
104
+ const byAccession = new Map();
105
+ const proteinSequences = [];
106
+ for (const entity of entities.toSorted((a, b) => entityNumber(a.rcsb_id) - entityNumber(b.rcsb_id))) {
107
+ const entityId = String(entityNumber(entity.rcsb_id));
108
+ const poly = isRecord(entity.entity_poly) ? entity.entity_poly : undefined;
109
+ const sequence = poly?.pdbx_seq_one_letter_code_can;
110
+ if (typeof poly?.type === 'string' &&
111
+ poly.type.startsWith('polypeptide') &&
112
+ typeof sequence === 'string' &&
113
+ sequence.length > 0) {
114
+ proteinSequences.push(sequence);
115
+ }
116
+ const ids = entity.rcsb_polymer_entity_container_identifiers;
117
+ const chains = strings(isRecord(ids) ? ids.auth_asym_ids : undefined);
118
+ const names = new Map((Array.isArray(entity.uniprots) ? entity.uniprots : [])
119
+ .filter(isRecord)
120
+ .map(u => [u.rcsb_id, strings(u.rcsb_uniprot_entry_name)[0]]));
121
+ for (const align of Array.isArray(entity.rcsb_polymer_entity_align)
122
+ ? entity.rcsb_polymer_entity_align.filter(isRecord)
123
+ : []) {
124
+ const accession = align.reference_database_accession;
125
+ if (align.reference_database_name !== 'UniProt' ||
126
+ typeof accession !== 'string') {
127
+ continue;
128
+ }
129
+ const segments = (Array.isArray(align.aligned_regions) ? align.aligned_regions : []).flatMap(region => parseSegments(region, entityId, chains));
130
+ if (segments.length === 0) {
131
+ continue;
132
+ }
133
+ const mapping = byAccession.get(accession) ?? {
134
+ accession,
135
+ name: names.get(accession),
136
+ segments: [],
137
+ };
138
+ mapping.segments.push(...segments);
139
+ byAccession.set(accession, mapping);
140
+ }
141
+ }
142
+ return { mappings: [...byAccession.values()], proteinSequences };
143
+ }
144
+ function entityNumber(rcsbId) {
145
+ return typeof rcsbId === 'string' ? Number(rcsbId.split('_')[1]) : NaN;
146
+ }
147
+ /** One segment per chain carrying the entity, so a PDB-format file, whose
148
+ * entities Mol* numbers per chain, still matches by chain. */
149
+ function parseSegments(region, entityId, chains) {
150
+ if (!isRecord(region)) {
151
+ return [];
152
+ }
153
+ const entityBeg = finiteNumber(region.entity_beg_seq_id);
154
+ const refBeg = finiteNumber(region.ref_beg_seq_id);
155
+ const length = finiteNumber(region.length);
156
+ if (entityBeg === undefined ||
157
+ refBeg === undefined ||
158
+ length === undefined ||
159
+ length < 1) {
160
+ return [];
161
+ }
162
+ const segment = {
163
+ entityId,
164
+ unpStart: refBeg,
165
+ unpEnd: refBeg + length - 1,
166
+ // SEQRES/label_seq_id is 1-based, structure positions are 0-based
167
+ structStart: entityBeg - 1,
168
+ structEnd: entityBeg + length - 2,
169
+ };
170
+ return chains.length === 0
171
+ ? [segment]
172
+ : chains.map(chainId => ({ ...segment, chainId }));
173
+ }
174
+ //# sourceMappingURL=pdbEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdbEntry.js","sourceRoot":"","sources":["../src/pdbEntry.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,14 @@
1
- import type { FetchOptions } from './fetchUtils.ts';
2
1
  /** One contiguous UniProt <-> structure correspondence for a single entity.
3
2
  * `unp*` are 1-based UniProt positions; `struct*` are 0-based inclusive
4
- * structure-sequence positions, this plugin's native coordinate. */
3
+ * structure-sequence positions, this package's native coordinate. */
5
4
  export interface UniProtStructureSegment {
6
5
  entityId: string;
7
- /** author chain id, when the response names it */
6
+ /** author chain id, when the source names it */
8
7
  chainId?: string;
9
8
  unpStart: number;
10
9
  unpEnd: number;
11
10
  structStart: number;
12
11
  structEnd: number;
13
- /** the endpoints' author residue numbers, the numbering a paper cites and a
14
- * Mol* hover shows; absent when the response omits them */
15
- authorStart?: number;
16
- authorEnd?: number;
17
12
  }
18
13
  export interface UniProtStructureMapping {
19
14
  accession: string;
@@ -27,46 +22,26 @@ export interface UniProtStructureMapping {
27
22
  * the feature instead of drawing it somewhere misleading.
28
23
  */
29
24
  export type MapUniProtPosition = (uniprotPos: number) => number | undefined;
30
- export declare function pdbeSiftsUrl(pdbId: string): string;
31
- /**
32
- * SIFTS for an entry, retried twice: one failed request would otherwise leave a
33
- * fusion construct mapped onto its partner for the whole session.
34
- *
35
- * A 4xx is not retried. PDBe answers 404 for an entry it has no UniProt
36
- * mapping for at all — a DNA-only or obsolete entry — and that answer cannot
37
- * change, so the retries only postponed it: measured 2026-09-16, `1hhb` and
38
- * `1bna` each took three requests and ~4.8s to say so, which a caller shows as
39
- * four and a half seconds of "resolving" for a structure that will never
40
- * resolve.
41
- */
42
- export declare function fetchUniProtStructureMappings(pdbId: string, opts?: FetchOptions): Promise<UniProtStructureMapping[]>;
43
- /**
44
- * Parses a PDBe `mappings/uniprot/{pdbId}` response into one entry per UniProt
45
- * accession. Unparseable segments are skipped rather than failing the whole
46
- * response — a chimera with one malformed segment still maps its other chains.
47
- * The response is keyed by pdb id, so the single entry is taken whatever its key.
48
- */
49
- export declare function parseUniProtStructureMappings(json: unknown): UniProtStructureMapping[];
50
- /** The entity a SIFTS segment is matched against: its mmCIF id and the author
25
+ /** The entity a segment is matched against: its mmCIF id and the author
51
26
  * chains carrying it. */
52
27
  export interface SegmentEntity {
53
28
  entityId: string;
54
29
  chains: readonly string[];
55
30
  }
56
31
  /**
57
- * Picks the UniProt entry that describes a given entity, with its segments
58
- * narrowed to that entity. Only the entity the plugin has mapped to the
59
- * transcript is relevant — a heteromer maps each of its chains to a different
60
- * accession, and using the wrong one would silently annotate the wrong protein.
61
- * When several accessions cover the same entity (a chimeric construct) the one
62
- * contributing the most residues wins.
32
+ * Picks the UniProt entry for a given entity, with its segments narrowed to
33
+ * that entity. Pass the entity mapped to the transcript: a heteromer's chains
34
+ * align to different accessions, and the wrong one would annotate the wrong
35
+ * protein. When several accessions cover one entity (a chimeric construct), the
36
+ * one covering the most residues wins.
63
37
  */
64
38
  export declare function chooseUniProtMappingForEntity(mappings: UniProtStructureMapping[], entity: SegmentEntity | undefined): UniProtStructureMapping | undefined;
65
39
  /**
66
- * Mapped structure positions that SIFTS assigns to a protein other than the
67
- * transcript's, on a chain that fuses two. Local alignment bridges a fusion
68
- * boundary, and on every GPCR fusion construct checked it scattered receptor
69
- * residues onto the partner, 33 of them onto T4 lysozyme in 2RH1.
40
+ * Mapped structure positions the entry's UniProt alignment assigns to a
41
+ * protein other than the transcript's, on a chain that fuses two. Local
42
+ * alignment bridges a fusion boundary, and on every GPCR fusion construct
43
+ * checked it scattered receptor residues onto the partner, 33 of them onto T4
44
+ * lysozyme in 2RH1.
70
45
  *
71
46
  * `mapped` is each mapped structure position and whether its pair is
72
47
  * identical. The transcript's own accession is the one whose covered positions
@@ -75,7 +50,7 @@ export declare function chooseUniProtMappingForEntity(mappings: UniProtStructure
75
50
  * fused to CDK2 covers 11 positions against 224 chance hits on the kinase, and
76
51
  * counting unmapped the peptide. Unless that accession reaches half identity
77
52
  * the transcript is taken to be neither protein, and nothing is unmapped.
78
- * Residues SIFTS assigns to no accession, such as tags, stay mapped.
53
+ * Residues assigned to no accession, such as tags, stay mapped.
79
54
  */
80
55
  export declare function fusionPartnerPositions(mappings: UniProtStructureMapping[], entity: SegmentEntity | undefined, mapped: ReadonlyMap<number, boolean>): Set<number>;
81
56
  /** 1-based UniProt position -> 0-based structure position, for an AlphaFold