@datagrok/bio 2.27.2 → 2.27.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 (57) hide show
  1. package/CLAUDE.md +50 -0
  2. package/agents/package-knowledge.yaml +53 -0
  3. package/dist/455.js +1 -1
  4. package/dist/455.js.map +1 -1
  5. package/dist/682.js +1 -1
  6. package/dist/682.js.map +1 -1
  7. package/dist/705.js +1 -1
  8. package/dist/705.js.map +1 -1
  9. package/dist/909.js +2 -0
  10. package/dist/909.js.map +1 -0
  11. package/dist/immunum_bg.wasm +0 -0
  12. package/dist/package-test.js +3 -3
  13. package/dist/package-test.js.map +1 -1
  14. package/dist/package.js +3 -3
  15. package/dist/package.js.map +1 -1
  16. package/package.json +4 -2
  17. package/src/demo/bio01b-hierarchical-clustering-and-activity-cliffs.ts +24 -11
  18. package/src/package-api.ts +15 -1
  19. package/src/package-test.ts +1 -0
  20. package/src/package.g.ts +12 -1
  21. package/src/package.ts +22 -4
  22. package/src/tests/antibody-numbering-tests.ts +190 -0
  23. package/src/tests/detectors-tests.ts +5 -1
  24. package/src/tests/splitters-test.ts +8 -4
  25. package/src/tests/to-atomic-level-tests.ts +144 -0
  26. package/src/utils/annotations/numbering-ui.ts +34 -90
  27. package/src/utils/antibody-numbering/immunum-client.ts +45 -0
  28. package/src/utils/antibody-numbering/immunum-glue.js +275 -0
  29. package/src/utils/antibody-numbering/immunum.worker.ts +159 -0
  30. package/src/utils/antibody-numbering/number-antibody.ts +105 -0
  31. package/src/utils/antibody-numbering/types.ts +48 -0
  32. package/src/utils/seq-helper/seq-handler.ts +25 -9
  33. package/test-console-output-1.log +582 -485
  34. package/test-record-1.mp4 +0 -0
  35. package/webpack.config.js +13 -0
  36. package/dist/282.js +0 -2
  37. package/dist/282.js.map +0 -1
  38. package/dist/287.js +0 -2
  39. package/dist/287.js.map +0 -1
  40. package/dist/422.js +0 -2
  41. package/dist/422.js.map +0 -1
  42. package/dist/767.js +0 -2
  43. package/dist/767.js.map +0 -1
  44. package/src/utils/antibody-numbering (WIP)/alignment.ts +0 -578
  45. package/src/utils/antibody-numbering (WIP)/annotator.ts +0 -120
  46. package/src/utils/antibody-numbering (WIP)/data/blosum62.ts +0 -55
  47. package/src/utils/antibody-numbering (WIP)/data/consensus-aho.ts +0 -155
  48. package/src/utils/antibody-numbering (WIP)/data/consensus-imgt.ts +0 -162
  49. package/src/utils/antibody-numbering (WIP)/data/consensus-kabat.ts +0 -157
  50. package/src/utils/antibody-numbering (WIP)/data/consensus-martin.ts +0 -152
  51. package/src/utils/antibody-numbering (WIP)/data/consensus.ts +0 -36
  52. package/src/utils/antibody-numbering (WIP)/data/regions.ts +0 -63
  53. package/src/utils/antibody-numbering (WIP)/index.ts +0 -31
  54. package/src/utils/antibody-numbering (WIP)/testdata.ts +0 -5356
  55. package/src/utils/antibody-numbering (WIP)/types.ts +0 -69
  56. /package/dist/{8473fcbfb6e85ca6c852.wasm → wasmCluster.wasm} +0 -0
  57. /package/dist/{9a8fbf37666e32487835.wasm → wasmDbscan.wasm} +0 -0
@@ -1,152 +0,0 @@
1
- /**
2
- * Martin (enhanced Chothia) consensus profiles.
3
- */
4
-
5
- export const MARTIN_H: [number, string[]][] = [
6
- [1, ['Q', 'E', 'D']], [2, ['V', 'Q']], [3, ['Q', 'K', 'H', 'S', 'T']], [4, ['L', 'V']],
7
- [5, ['V', 'Q', 'L', 'E', 'K', 'T']], [6, ['E', 'Q', 'A']], [7, ['S', 'P', 'W']],
8
- [8, ['G', 'E']], [9, ['G', 'A', 'P', 'S']], [10, ['G', 'E', 'D', 'V']],
9
- [11, ['L', 'V']], [12, ['V', 'K', 'L']], [13, ['K', 'Q', 'R']], [14, ['P', 'A']],
10
- [15, ['G', 'S', 'T']], [16, ['G', 'A', 'E', 'Q', 'R', 'S', 'D']], [17, ['S', 'T']],
11
- [18, ['L', 'V']], [19, ['R', 'K', 'S', 'T']], [20, ['L', 'I', 'V', 'M']],
12
- [21, ['S', 'T']], [22, ['C']], [23, ['A', 'K', 'T', 'V', 'S']],
13
- [24, ['A', 'V', 'T', 'G', 'I']], [25, ['S', 'T', 'Y']],
14
- [26, []], [27, []], [28, []], [29, []], [30, []], [31, []], [32, []],
15
- [33, ['A', 'G', 'W', 'Y', 'D', 'L', 'S', 'T', 'V', 'F']],
16
- [34, ['M', 'I', 'W', 'V', 'L']], [35, ['A', 'G', 'H', 'N', 'S', 'T', 'Y']],
17
- [36, ['W']], [37, ['V', 'I', 'F']], [38, ['R', 'K']], [39, ['Q']],
18
- [40, ['A', 'P', 'R', 'S', 'T', 'M', 'V']], [41, ['P', 'A', 'H']],
19
- [42, ['G', 'E', 'S']], [43, ['K', 'Q', 'R', 'N']],
20
- [44, ['G', 'A', 'R', 'S']], [45, ['L']], [46, ['E', 'Q']],
21
- [47, ['W', 'Y', 'F', 'L']], [48, ['I', 'V', 'K', 'M']], [49, ['A', 'G', 'S']],
22
- [50, ['A', 'G', 'S', 'D', 'E', 'N', 'T', 'V', 'I', 'L', 'K', 'R', 'Q', 'P', 'F', 'W', 'Y', 'M', 'H', 'C']], [51, ['A', 'G', 'S', 'D', 'E', 'N', 'T', 'V', 'I', 'L', 'K', 'R', 'Q', 'P', 'F', 'W', 'Y', 'M', 'H', 'C']], [52, []], [53, []],
23
- [54, ['S', 'I', 'T', 'D', 'G', 'R', 'N', 'L', 'A', 'Y', 'F', 'E']],
24
- [55, ['G', 'S', 'R', 'D', 'W', 'A', 'Y', 'F', 'V', 'N', 'T', 'E', 'L', 'H']],
25
- [56, ['S', 'E', 'D', 'I', 'R', 'G', 'Y', 'T', 'V', 'N', 'A', 'H', 'K']],
26
- [57, ['T', 'A', 'I', 'K', 'N', 'P', 'S']],
27
- [58, ['Y', 'N', 'K', 'D', 'E', 'F', 'G', 'H', 'R', 'S', 'T']], [59, ['Y', 'F']],
28
- [60, ['A', 'N', 'S', 'P', 'T', 'V', 'G']], [61, ['D', 'E', 'Q', 'A', 'S', 'P']],
29
- [62, ['S', 'K', 'A', 'W']], [63, ['F', 'V', 'L', 'A']], [64, ['K', 'Q', 'R', 'E']],
30
- [65, ['G', 'S', 'D', 'N']], [66, ['R', 'K', 'Q']],
31
- [67, ['F', 'V', 'A', 'L', 'I']], [68, ['T', 'S', 'I']],
32
- [69, ['I', 'L', 'M', 'V', 'F']], [70, ['S', 'T', 'N']],
33
- [71, ['R', 'V', 'A', 'K', 'L', 'P', 'T']], [72, ['D', 'N', 'E']],
34
- [73, ['N', 'S', 'D', 'K', 'T']], [74, ['T', 'Q', 'S', 'I', 'M']],
35
- [75, ['L', 'A', 'V', 'F']], [76, ['Y', 'S', 'F', 'H', 'T', 'V']],
36
- [77, ['L', 'M']], [78, ['Q', 'E', 'K', 'D', 'T']],
37
- [79, ['L', 'M', 'I', 'V', 'W']],
38
- [80, ['S', 'N', 'D', 'T', 'R', 'A', 'H', 'K']], [81, ['S', 'N', 'R', 'T', 'A', 'K', 'G']],
39
- [82, ['L', 'M', 'V', 'P']], [83, ['R', 'T', 'K']],
40
- [84, ['A', 'S', 'T', 'V', 'P']], [85, ['E', 'A', 'D', 'G', 'S', 'V']],
41
- [86, ['D']], [87, ['T', 'S']], [88, ['A', 'G']],
42
- [89, ['V', 'T', 'I', 'L', 'M']], [90, ['Y']], [91, ['Y', 'F']], [92, ['C']],
43
- [93, ['A', 'T', 'V']], [94, ['R', 'K', 'S', 'T', 'A', 'G']],
44
- [95, []], [96, []], [97, []], [98, []], [99, []], [100, []], [101, []],
45
- [102, ['Y', 'V', 'I', 'L', 'F', 'P', 'H', 'S']],
46
- [103, ['W']], [104, ['G']], [105, ['Q', 'P', 'R', 'K', 'A', 'T']],
47
- [106, ['G']], [107, ['T', 'V', 'A', 'I']], [108, ['L', 'T', 'M', 'S', 'Q', 'P']],
48
- [109, ['V', 'L', 'I']], [110, ['T', 'I', 'V']], [111, ['V']],
49
- [112, ['S', 'T']], [113, ['S', 'A']],
50
- ];
51
-
52
- export const MARTIN_K: [number, string[]][] = [
53
- [1, ['D', 'E', 'Q', 'N', 'A']], [2, ['I', 'V', 'L']], [3, ['V', 'Q', 'L', 'E', 'K']],
54
- [4, ['M', 'L', 'V', 'I']], [5, ['T', 'S']], [6, ['Q']],
55
- [7, ['S', 'T', 'A', 'I']], [8, ['P', 'Q', 'T', 'A', 'H']],
56
- [9, ['S', 'G', 'L', 'A', 'D', 'K', 'F', 'P', 'V']], [10, ['S', 'T', 'F', 'I']],
57
- [11, ['L', 'M', 'N', 'Q', 'V']], [12, ['T', 'S', 'A', 'P', 'Y']],
58
- [13, ['V', 'L', 'A', 'T', 'M']], [14, ['T', 'S', 'A']],
59
- [15, ['A', 'P', 'I', 'V', 'L']], [16, ['G']],
60
- [17, ['E', 'Q', 'D', 'G', 'T']], [18, ['K', 'R', 'P', 'T', 'Q', 'S']],
61
- [19, ['V', 'A', 'I']], [20, ['T', 'S']], [21, ['M', 'L', 'I', 'F']],
62
- [22, ['S', 'T', 'N']], [23, ['C']],
63
- [24, ['K', 'R', 'Q', 'S']], [25, ['S', 'A', 'T', 'C']], [26, ['S', 'T', 'G']],
64
- [27, ['Q', 'G', 'E', 'S', 'K', 'H']], [28, ['S', 'N', 'D', 'E', 'R', 'T', 'G']],
65
- [29, []], [30, []], [31, []], [32, []],
66
- [33, ['L', 'M', 'I', 'V', 'F']],
67
- [34, ['T', 'A', 'N', 'H', 'E', 'G', 'Q', 'Y', 'S', 'D']],
68
- [35, ['W']], [36, ['Y', 'L', 'F']], [37, ['Q', 'L', 'R']],
69
- [38, ['Q', 'H', 'E']], [39, ['K', 'R']],
70
- [40, ['P', 'Q', 'S', 'T']], [41, ['G', 'E', 'D', 'H', 'N']],
71
- [42, ['Q', 'K', 'S', 'T', 'G', 'E', 'R']], [43, ['P', 'A', 'S', 'T', 'V']],
72
- [44, ['P', 'I', 'V']], [45, ['K', 'R', 'Q', 'E', 'I', 'T']],
73
- [46, ['L', 'R', 'T', 'P', 'V', 'A']], [47, ['L', 'W']],
74
- [48, ['I', 'V', 'M']], [49, ['Y', 'K', 'H', 'S', 'F']],
75
- [50, ['W', 'G', 'L', 'K', 'N', 'A', 'D', 'Y', 'S', 'E', 'T', 'R', 'Q', 'F', 'V']],
76
- [51, ['A', 'V', 'T', 'S', 'M', 'G', 'I']], [52, ['S', 'K', 'T', 'N']],
77
- [53, ['T', 'S', 'K', 'N', 'I', 'D', 'R', 'Y', 'Q', 'F']], [54, ['R', 'L', 'S']],
78
- [55, ['E', 'A', 'D', 'Q', 'F', 'R', 'Y', 'H', 'I', 'K', 'P', 'G', 'V']],
79
- [56, ['S', 'T', 'D', 'P', 'A', 'E']], [57, ['G']], [58, ['V', 'I']],
80
- [59, ['P', 'S', 'A']],
81
- [60, ['D', 'S', 'A', 'V', 'K', 'G']], [61, ['R']], [62, ['F']],
82
- [63, ['T', 'S', 'I', 'K', 'R']], [64, ['G', 'S', 'A']],
83
- [65, ['S', 'G', 'R']], [66, ['G', 'R']], [67, ['S', 'Y']],
84
- [68, ['G', 'R', 'A']], [69, ['T', 'R', 'S', 'Q']],
85
- [70, ['D', 'E', 'Q', 'S', 'H', 'Y', 'A']], [71, ['F', 'Y']],
86
- [72, ['T', 'S']], [73, ['L', 'F']], [74, ['T', 'K', 'N', 'S', 'R']],
87
- [75, ['I', 'V']], [76, ['N', 'S', 'H', 'T', 'D']],
88
- [77, ['S', 'R', 'P', 'N', 'G', 'D', 'T']], [78, ['V', 'L', 'M']],
89
- [79, ['Q', 'E', 'K']], [80, ['A', 'P', 'E', 'S', 'T', 'Q', 'C', 'Y']],
90
- [81, ['E', 'D']], [82, ['D']],
91
- [83, ['L', 'F', 'V', 'T', 'A', 'I', 'S', 'M']], [84, ['A', 'G']],
92
- [85, ['V', 'T', 'S', 'E', 'D', 'L', 'I', 'M']], [86, ['Y', 'F']],
93
- [87, ['Y', 'F', 'H']], [88, ['C']],
94
- [89, ['Q', 'W', 'F', 'L', 'H', 'M', 'G', 'A', 'K', 'S', 'V']],
95
- [90, ['N', 'Q', 'H', 'G']],
96
- [91, ['D', 'Y', 'G', 'F', 'I', 'S', 'W', 'R', 'T', 'A', 'N', 'H']],
97
- [92, []], [93, []], [94, []], [95, []],
98
- [96, ['L', 'Y', 'W', 'F', 'P', 'R', 'A', 'S', 'I', 'V', 'E', 'H', 'T']],
99
- [97, ['T', 'V', 'I', 'A', 'S', 'F', 'L']], [98, ['F']],
100
- [99, ['G']], [100, ['A', 'Q', 'S', 'G', 'P']], [101, ['G']],
101
- [102, ['T']], [103, ['K', 'R', 'E']], [104, ['L', 'V']],
102
- [105, ['E', 'V', 'D']], [106, ['L', 'I', 'V']], [107, ['K', 'R']],
103
- ];
104
-
105
- export const MARTIN_L: [number, string[]][] = [
106
- [1, ['Q', 'S']], [2, ['S', 'Y', 'P', 'A', 'L', 'F']], [3, ['A', 'V', 'E']],
107
- [4, ['L', 'V']], [5, ['T']], [6, ['Q']], [7, ['P', 'E', 'S']],
108
- [8, ['A', 'P', 'S', 'R']], [9, ['S', 'A']], [10, []],
109
- [11, ['V', 'L', 'A']], [12, ['S', 'T']],
110
- [13, ['G', 'V', 'A', 'T', 'K', 'E', 'F']], [14, ['S', 'A', 'T']],
111
- [15, ['P', 'L']], [16, ['G']], [17, ['Q', 'E', 'K', 'A']],
112
- [18, ['S', 'T', 'K', 'R']], [19, ['I', 'A', 'V']],
113
- [20, ['T', 'R', 'S', 'K']], [21, ['I', 'L']], [22, ['S', 'T']], [23, ['C']],
114
- [24, ['T', 'G', 'Q', 'S', 'A', 'N', 'R']], [25, ['G', 'S', 'L', 'R']],
115
- [26, ['T', 'N', 'D', 'S']],
116
- [27, ['Q', 'T', 'N', 'S', 'K', 'A', 'R']], [28, ['S', 'I', 'L', 'N', 'G', 'Q']],
117
- [29, ['S', 'D', 'G', 'N', 'A', 'R', 'H']],
118
- [30, []], [31, ['N', 'K', 'D', 'R', 'Y']],
119
- [32, ['F', 'S', 'L', 'A', 'Y', 'T', 'D', 'G', 'N']],
120
- [33, ['V', 'A', 'I']], [34, ['S', 'H', 'Q', 'C', 'N', 'Y', 'E']],
121
- [35, ['W']], [36, ['Y', 'F', 'V']], [37, ['Q']],
122
- [38, ['Q', 'H', 'E']], [39, ['H', 'K', 'R', 'L', 'F', 'V', 'Q']],
123
- [40, ['P', 'A', 'S']], [41, ['G', 'D', 'L']],
124
- [42, ['K', 'Q', 'T', 'R', 'H', 'S', 'A', 'M']], [43, ['A', 'S', 'L', 'P', 'G']],
125
- [44, ['P', 'F']], [45, ['K', 'V', 'S', 'R', 'T', 'I']],
126
- [46, ['L', 'V', 'G', 'Y', 'T']], [47, ['I', 'V', 'M', 'L']],
127
- [48, ['I', 'V', 'L', 'M']], [49, ['F', 'Y', 'G', 'S', 'E']],
128
- [50, ['D', 'A', 'N', 'E', 'Q', 'Y', 'G', 'V', 'R', 'L', 'K']],
129
- [51, ['V', 'D', 'N', 'T', 'K']], [52, ['T', 'S', 'Q', 'N', 'D', 'K']],
130
- [53, ['N', 'D', 'K', 'Q', 'E', 'S', 'H']], [54, ['R', 'T']],
131
- [55, ['P', 'A', 'G']], [56, ['S', 'P', 'D']], [57, ['G']],
132
- [58, ['I', 'V']], [59, ['S', 'P']],
133
- [60, ['N', 'E', 'A', 'D']], [61, ['R']], [62, ['F']], [63, ['S']],
134
- [64, ['G']], [65, ['S']], [66, ['K', 'N', 'P', 'L', 'I', 'S']],
135
- [67, ['S', 'D', 'I']], [68, ['G', 'A']],
136
- [69, ['N', 'T', 'D', 'S', 'A']], [70, ['T', 'K', 'S', 'R']],
137
- [71, ['A', 'R']], [72, ['S', 'T', 'A', 'Y']], [73, ['L']],
138
- [74, ['T', 'G', 'A', 'S']], [75, ['I', 'V']], [76, ['S', 'T']],
139
- [77, ['G', 'R', 'S', 'N']], [78, ['L', 'V', 'T', 'A', 'I']],
140
- [79, ['Q', 'E', 'R']], [80, ['A', 'S', 'P', 'T']],
141
- [81, ['E', 'G', 'M', 'D']], [82, ['D']], [83, ['E']],
142
- [84, ['A', 'G']], [85, ['D', 'I', 'E']], [86, ['Y']],
143
- [87, ['Y', 'F', 'I']], [88, ['C']],
144
- [89, ['A', 'Q', 'C', 'H', 'G', 'S']], [90, ['A', 'V', 'L', 'S', 'T', 'M']],
145
- [91, ['Y', 'W', 'L', 'R', 'G']],
146
- [92, []], [93, []], [94, []], [95, []],
147
- [96, ['L', 'V', 'W', 'R', 'P', 'Y', 'S', 'F', 'A']],
148
- [97, ['L', 'T', 'V', 'I', 'A', 'F', 'S']], [98, ['F']],
149
- [99, ['G']], [100, ['G', 'T', 'S']], [101, ['G']],
150
- [102, ['T']], [103, ['K', 'T', 'R', 'Q']], [104, ['V', 'L']],
151
- [105, ['T']], [106, ['V']], [107, ['L', 'K']],
152
- ];
@@ -1,36 +0,0 @@
1
- /**
2
- * Central consensus profile registry.
3
- * Maps (scheme, chainType) -> profile data.
4
- */
5
- import type { Scheme, ChainType } from '../types';
6
- import { IMGT_H, IMGT_K, IMGT_L, CTERM_H, CTERM_K, CTERM_L } from './consensus-imgt';
7
- import { KABAT_H, KABAT_K, KABAT_L } from './consensus-kabat';
8
- import { MARTIN_H, MARTIN_K, MARTIN_L } from './consensus-martin';
9
- import { AHO_H, AHO_K, AHO_L } from './consensus-aho';
10
-
11
- export type ProfileData = [number, string[]][];
12
-
13
- /** Get the consensus profile for a given scheme and chain type */
14
- export function getConsensusProfile(scheme: Scheme, chain: ChainType): ProfileData {
15
- const key = `${scheme}_${chain}`;
16
- const profiles: Record<string, ProfileData> = {
17
- imgt_H: IMGT_H, imgt_K: IMGT_K, imgt_L: IMGT_L,
18
- kabat_H: KABAT_H, kabat_K: KABAT_K, kabat_L: KABAT_L,
19
- chothia_H: MARTIN_H, chothia_K: MARTIN_K, chothia_L: MARTIN_L,
20
- aho_H: AHO_H, aho_K: AHO_K, aho_L: AHO_L,
21
- };
22
- return profiles[key] ?? IMGT_H;
23
- }
24
-
25
- /** Get the C-terminal finder profile for a chain type */
26
- export function getCtermProfile(chain: ChainType): ProfileData {
27
- const profiles: Record<ChainType, ProfileData> = {
28
- H: CTERM_H, K: CTERM_K, L: CTERM_L,
29
- };
30
- return profiles[chain];
31
- }
32
-
33
- export { IMGT_H, IMGT_K, IMGT_L, CTERM_H, CTERM_K, CTERM_L };
34
- export { KABAT_H, KABAT_K, KABAT_L };
35
- export { MARTIN_H, MARTIN_K, MARTIN_L };
36
- export { AHO_H, AHO_K, AHO_L };
@@ -1,63 +0,0 @@
1
- /**
2
- * Region definitions per scheme, keyed by chain group.
3
- * Each region: [name, startPosition, endPosition].
4
- * Mirrors the Python number_antibody.py definitions.
5
- */
6
- import type { Scheme, ChainGroup } from '../types';
7
-
8
- export type RegionDef = [name: string, start: number, end: number];
9
-
10
- const IMGT_REGIONS: Record<ChainGroup, RegionDef[]> = {
11
- Heavy: [
12
- ['FR1', 1, 26], ['CDR1', 27, 38], ['FR2', 39, 55],
13
- ['CDR2', 56, 65], ['FR3', 66, 104], ['CDR3', 105, 117], ['FR4', 118, 128],
14
- ],
15
- Light: [
16
- ['FR1', 1, 26], ['CDR1', 27, 38], ['FR2', 39, 55],
17
- ['CDR2', 56, 65], ['FR3', 66, 104], ['CDR3', 105, 117], ['FR4', 118, 127],
18
- ],
19
- };
20
-
21
- const KABAT_REGIONS: Record<ChainGroup, RegionDef[]> = {
22
- Heavy: [
23
- ['FR1', 1, 30], ['CDR1', 31, 35], ['FR2', 36, 49],
24
- ['CDR2', 50, 65], ['FR3', 66, 94], ['CDR3', 95, 102], ['FR4', 103, 113],
25
- ],
26
- Light: [
27
- ['FR1', 1, 23], ['CDR1', 24, 34], ['FR2', 35, 49],
28
- ['CDR2', 50, 56], ['FR3', 57, 88], ['CDR3', 89, 97], ['FR4', 98, 107],
29
- ],
30
- };
31
-
32
- const CHOTHIA_REGIONS: Record<ChainGroup, RegionDef[]> = {
33
- Heavy: [
34
- ['FR1', 1, 25], ['CDR1', 26, 32], ['FR2', 33, 51],
35
- ['CDR2', 52, 56], ['FR3', 57, 94], ['CDR3', 95, 102], ['FR4', 103, 113],
36
- ],
37
- Light: [
38
- ['FR1', 1, 25], ['CDR1', 26, 32], ['FR2', 33, 49],
39
- ['CDR2', 50, 52], ['FR3', 53, 90], ['CDR3', 91, 96], ['FR4', 97, 107],
40
- ],
41
- };
42
-
43
- const AHO_REGIONS: Record<ChainGroup, RegionDef[]> = {
44
- Heavy: [
45
- ['FR1', 1, 24], ['CDR1', 25, 40], ['FR2', 41, 55],
46
- ['CDR2', 56, 78], ['FR3', 79, 108], ['CDR3', 109, 138], ['FR4', 139, 149],
47
- ],
48
- Light: [
49
- ['FR1', 1, 24], ['CDR1', 25, 40], ['FR2', 41, 55],
50
- ['CDR2', 56, 78], ['FR3', 79, 108], ['CDR3', 109, 138], ['FR4', 139, 149],
51
- ],
52
- };
53
-
54
- const SCHEME_REGIONS: Record<Scheme, Record<ChainGroup, RegionDef[]>> = {
55
- imgt: IMGT_REGIONS,
56
- kabat: KABAT_REGIONS,
57
- chothia: CHOTHIA_REGIONS,
58
- aho: AHO_REGIONS,
59
- };
60
-
61
- export function getRegions(scheme: Scheme, chainGroup: ChainGroup): RegionDef[] {
62
- return SCHEME_REGIONS[scheme]?.[chainGroup] ?? IMGT_REGIONS.Heavy;
63
- }
@@ -1,31 +0,0 @@
1
- /**
2
- * antibody-numbering - Browser-compatible antibody sequence numbering library.
3
- *
4
- * Assigns antibody numbering (IMGT/Kabat/Chothia/AHo) to amino acid sequences
5
- * using profile-based alignment against consensus sequences.
6
- *
7
- * @example
8
- * ```ts
9
- * import { numberSequence } from 'antibody-numbering';
10
- *
11
- * const result = numberSequence(
12
- * 'QVQLVQSGAEVKKPGASVKVSCKASGYTFTGYYMHWVRQAPGQGLEWMGWINPNSGGTNYAQKFQGRVTMTRDTSISTAYMELSRLRSDDTAVYYCAR',
13
- * 'imgt'
14
- * );
15
- *
16
- * console.log(result.chainType); // 'Heavy'
17
- * console.log(result.numberingDetail); // [{ position: '1', aa: 'Q' }, ...]
18
- * console.log(result.annotations); // [{ name: 'FR1', ... }, ...]
19
- * ```
20
- */
21
-
22
- export { numberSequence, numberSequences, extractSequence } from './annotator';
23
- export type {
24
- Scheme,
25
- ChainType,
26
- ChainGroup,
27
- NumberingResult,
28
- NumberingEntry,
29
- RegionAnnotation,
30
- AlignmentResult,
31
- } from './types';