@datagrok-libraries/bio 5.62.1 → 5.63.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/package.json +3 -2
  2. package/src/utils/annotation-track.d.ts +42 -0
  3. package/src/utils/annotation-track.d.ts.map +1 -0
  4. package/src/utils/annotation-track.js +159 -0
  5. package/src/utils/annotation-track.js.map +1 -0
  6. package/src/utils/cell-renderer-annotations.d.ts +48 -0
  7. package/src/utils/cell-renderer-annotations.d.ts.map +1 -0
  8. package/src/utils/cell-renderer-annotations.js +280 -0
  9. package/src/utils/cell-renderer-annotations.js.map +1 -0
  10. package/src/utils/cell-renderer-monomer-placer.d.ts +3 -0
  11. package/src/utils/cell-renderer-monomer-placer.d.ts.map +1 -1
  12. package/src/utils/cell-renderer-monomer-placer.js +42 -0
  13. package/src/utils/cell-renderer-monomer-placer.js.map +1 -1
  14. package/src/utils/macromolecule/annotations.d.ts +89 -0
  15. package/src/utils/macromolecule/annotations.d.ts.map +1 -0
  16. package/src/utils/macromolecule/annotations.js +48 -0
  17. package/src/utils/macromolecule/annotations.js.map +1 -0
  18. package/src/utils/macromolecule/consts.d.ts +4 -1
  19. package/src/utils/macromolecule/consts.d.ts.map +1 -1
  20. package/src/utils/macromolecule/consts.js +3 -0
  21. package/src/utils/macromolecule/consts.js.map +1 -1
  22. package/src/utils/macromolecule/numbering-schemes.d.ts +37 -0
  23. package/src/utils/macromolecule/numbering-schemes.d.ts.map +1 -0
  24. package/src/utils/macromolecule/numbering-schemes.js +149 -0
  25. package/src/utils/macromolecule/numbering-schemes.js.map +1 -0
  26. package/src/utils/sequence-column-input.d.ts +10 -0
  27. package/src/utils/sequence-column-input.d.ts.map +1 -0
  28. package/src/utils/sequence-column-input.js +9 -0
  29. package/src/utils/sequence-column-input.js.map +1 -0
  30. package/src/utils/sequence-position-scroller.d.ts.map +1 -1
  31. package/src/utils/sequence-position-scroller.js +74 -38
  32. package/src/utils/sequence-position-scroller.js.map +1 -1
@@ -8,6 +8,7 @@ import { getMonomerLibHelper } from '../types/monomer-library';
8
8
  import { errInfo } from './err-info';
9
9
  import { DrawStyle, printLeftOrCentered, TAGS as mmcrTAGS } from './cell-renderer';
10
10
  import { rendererSettingsChangedState } from './cell-renderer-consts';
11
+ import { AnnotationRenderer } from './cell-renderer-annotations';
11
12
  import { HelmTypes } from '../helm/consts';
12
13
  import { execMonomerHoverLinks } from '../monomer-works/monomer-hover';
13
14
  import * as operators from 'rxjs/operators';
@@ -41,6 +42,11 @@ export function hitBounds(bounds, x, positionShiftPixels) {
41
42
  export class MonomerPlacer extends CellRendererBackBase {
42
43
  // width of separator symbol
43
44
  get separatorWidth() { return this.props?.fontCharWidth ? this.props?.fontCharWidth : 5; }
45
+ getAnnotationRenderer() {
46
+ if (!this._annotationRenderer)
47
+ this._annotationRenderer = new AnnotationRenderer(this.tableCol);
48
+ return this._annotationRenderer.hasAnnotations() ? this._annotationRenderer : null;
49
+ }
44
50
  /** View is required to subscribe and handle for data frame changes */
45
51
  constructor(gridCol, tableCol, logger, monomerLengthLimit, propsProvider) {
46
52
  super(gridCol, tableCol, logger);
@@ -56,6 +62,8 @@ export class MonomerPlacer extends CellRendererBackBase {
56
62
  this._lineHeight = 20;
57
63
  this._cellBounds = new Map();
58
64
  this.sysMonomerLib = null;
65
+ /** Lazily created annotation renderer — null cost when no annotations exist. */
66
+ this._annotationRenderer = null;
59
67
  this.padding = 5;
60
68
  this._leftThreeDotsPadding = 0;
61
69
  this.props = this.propsProvider();
@@ -426,6 +434,7 @@ export class MonomerPlacer extends CellRendererBackBase {
426
434
  })();
427
435
  const selectedPosition = Number.parseInt(tableCol.getTag(bioTAGS.selectedPosition) ?? '-200');
428
436
  const shouldUseMultiLine = this.shouldUseMultilineRendering(tableCol);
437
+ const annotRenderer = this.getAnnotationRenderer();
429
438
  if (shouldUseMultiLine) {
430
439
  const currentCellBounds = [];
431
440
  const layout = this.calculateMultiLineLayoutDynamic(g, w, h, subParts, positionShift, maxLengthOfMonomer);
@@ -464,6 +473,8 @@ export class MonomerPlacer extends CellRendererBackBase {
464
473
  bounds: new DG.Rect(element.x, (lineY - y), element.width, layout.lineHeight),
465
474
  sequencePosition: monomerIndex,
466
475
  });
476
+ if (annotRenderer)
477
+ annotRenderer.drawPositionBackground(g, elementX, lineY, element.width + 2, layout.lineHeight, monomerIndex, gridCell.tableRowIndex);
467
478
  printLeftOrCentered(g, monomer.om, elementX, lineY, element.width, layout.lineHeight, {
468
479
  color: color,
469
480
  isMultiLineContext: true,
@@ -484,6 +495,14 @@ export class MonomerPlacer extends CellRendererBackBase {
484
495
  maxLengthWordsSum = this.getSummedMonomerLengths(this.getCellMonomerLengthsForSeqValue(value, w));
485
496
  const minMonomerWidth = this.props.separatorWidth + 1 * this.props.fontCharWidth;
486
497
  const visibleSeqLength = Math.min(subParts.length, Math.ceil(w / (minMonomerWidth)) + positionShift);
498
+ // Pre-compute text bottom y for annotation underlines (text is vertically centered)
499
+ let textBottomY;
500
+ if (annotRenderer) {
501
+ const metrics = g.measureText('M');
502
+ const textHeight = metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent;
503
+ const dy = h / 2 - textHeight / 2 + 1;
504
+ textBottomY = y + dy + textHeight;
505
+ }
487
506
  for (let posIdx = positionShift; posIdx < visibleSeqLength; ++posIdx) {
488
507
  const om = posIdx < subParts.length ? subParts.getOriginal(posIdx) : sh.defaultGapOriginal;
489
508
  const cm = posIdx < subParts.length ? subParts.getCanonical(posIdx) : sh.defaultGapOriginal;
@@ -494,6 +513,15 @@ export class MonomerPlacer extends CellRendererBackBase {
494
513
  // here, the first index of disjointSeqStarts is always 0, so we check from position 1, and also, next index
495
514
  // will show where the next disjoint sequence starts, so we check posIdx + 1
496
515
  const drawnSeparator = (subParts?.graphInfo?.disjointSeqStarts?.indexOf(posIdx + 1) ?? 0) > 0 ? '|' : separator;
516
+ // Draw annotation background before the monomer text
517
+ if (annotRenderer && gridCell.tableRowIndex != null) {
518
+ const wordIdx = posIdx - positionShift;
519
+ const placeX = (maxLengthWordsSum[wordIdx] ?? 0) - (maxLengthWordsSum[0] ?? 0);
520
+ const nextPlaceX = wordIdx + 1 < maxLengthWordsSum.length ?
521
+ (maxLengthWordsSum[wordIdx + 1] ?? 0) - (maxLengthWordsSum[0] ?? 0) : placeX + this.props.fontCharWidth;
522
+ const monomerW = nextPlaceX - placeX;
523
+ annotRenderer.drawPositionBackground(g, x + this.padding + this._leftThreeDotsPadding + placeX, y, monomerW, h, posIdx, gridCell.tableRowIndex, textBottomY);
524
+ }
497
525
  const opts = {
498
526
  color: color, pivot: 0, left: true, transparencyRate: 0.0,
499
527
  separator: drawnSeparator, last: last,
@@ -573,6 +601,20 @@ export class MonomerPlacer extends CellRendererBackBase {
573
601
  })();
574
602
  }
575
603
  tooltipElements.push(monomerDiv);
604
+ // Append annotation info to tooltip
605
+ const annotR = this.getAnnotationRenderer();
606
+ if (annotR) {
607
+ const annotInfo = annotR.getTooltipInfo(left + positionShift, gridCell.tableRowIndex);
608
+ if (annotInfo.length > 0) {
609
+ const sep = document.createElement('hr');
610
+ sep.style.margin = '4px 0';
611
+ sep.style.border = 'none';
612
+ sep.style.borderTop = '1px solid #ccc';
613
+ tooltipElements.push(sep);
614
+ for (const line of annotInfo)
615
+ tooltipElements.push(ui.divText(line, { style: { fontSize: '12px', marginBottom: '2px' } }));
616
+ }
617
+ }
576
618
  ui.tooltip.show(ui.divV(tooltipElements), e.x + 16, e.y + 16);
577
619
  execMonomerHoverLinks(gridCell, seqMonomer);
578
620
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cell-renderer-monomer-placer.js","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cell-renderer-monomer-placer.js","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /** Sequence Annotation System — Core Types
2
+ *
3
+ * Provides structured annotation support for macromolecule columns:
4
+ * - Column-level annotations (regions, liabilities) stored as column tags
5
+ * - Row-level annotation hits stored in a hidden companion column
6
+ */
7
+ /** Visual mark type */
8
+ export declare enum AnnotationVisualType {
9
+ Region = "region",
10
+ Point = "point",
11
+ Motif = "motif"
12
+ }
13
+ /** Grouping category */
14
+ export declare enum AnnotationCategory {
15
+ Structure = "structure",
16
+ Liability = "liability",
17
+ PTM = "ptm",
18
+ Custom = "custom"
19
+ }
20
+ /** Severity for liabilities */
21
+ export declare enum LiabilitySeverity {
22
+ High = "high",
23
+ Medium = "medium",
24
+ Low = "low",
25
+ Info = "info"
26
+ }
27
+ /**
28
+ * A single annotation definition attached to a column.
29
+ * Extends the existing SeqRegion concept with visual/categorical metadata.
30
+ */
31
+ export interface SeqAnnotation {
32
+ /** Unique within column */
33
+ id: string;
34
+ /** Display name, e.g. "CDR1", "Deamidation (NG)" */
35
+ name: string;
36
+ description?: string;
37
+ /** Start position name (null for row-level-only) */
38
+ start: string | null;
39
+ /** End position name (null for point/row-level) */
40
+ end: string | null;
41
+ visualType: AnnotationVisualType;
42
+ category: AnnotationCategory;
43
+ /** CSS color; defaults derived from category */
44
+ color?: string;
45
+ severity?: LiabilitySeverity;
46
+ /** Regex pattern for liability scanning */
47
+ motifPattern?: string;
48
+ /** "IMGT", "Kabat", etc. */
49
+ sourceScheme?: string;
50
+ /** True if created by an automated process (numbering, scanning) */
51
+ autoGenerated?: boolean;
52
+ }
53
+ /** A single hit found in a specific row */
54
+ export interface SeqAnnotationHit {
55
+ /** References SeqAnnotation.id */
56
+ annotationId: string;
57
+ /** 0-based index in the row's sequence */
58
+ positionIndex: number;
59
+ /** End index (inclusive) for range-based hits (e.g. region spans).
60
+ * When set, the hit covers positionIndex..endPositionIndex.
61
+ * Unset for point/motif liability hits. */
62
+ endPositionIndex?: number;
63
+ /** Position name from positionNames (for display) */
64
+ positionName?: string;
65
+ /** The actual residues matched */
66
+ matchedMonomers: string;
67
+ score?: number;
68
+ }
69
+ /** Stored per-row as JSON array in the companion annotation column */
70
+ export type RowAnnotationData = SeqAnnotationHit[];
71
+ /** Default colors for annotation categories */
72
+ export declare const ANNOTATION_COLORS: {
73
+ readonly structure: {
74
+ readonly FR: readonly ["#0095ff", "#289dfd", "#48adff", "#3ba5fc"];
75
+ readonly CDR: readonly ["#ffdca3", "#facb83", "#f7a224"];
76
+ };
77
+ readonly liability: {
78
+ readonly deamidation: "#E53935";
79
+ readonly isomerization: "#FF9800";
80
+ readonly oxidation: "#9C27B0";
81
+ readonly glycosylation: "#4CAF50";
82
+ readonly freeCysteine: "#607D8B";
83
+ };
84
+ };
85
+ /** Background opacity for region overlays in the cell renderer */
86
+ export declare const REGION_BG_OPACITY = 0.25;
87
+ /** Underline height in pixels for liability markers */
88
+ export declare const LIABILITY_UNDERLINE_HEIGHT = 3;
89
+ //# sourceMappingURL=annotations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["annotations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uBAAuB;AACvB,oBAAY,oBAAoB;IAC9B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,wBAAwB;AACxB,oBAAY,kBAAkB;IAC5B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,GAAG,QAAQ;IACX,MAAM,WAAW;CAClB;AAED,+BAA+B;AAC/B,oBAAY,iBAAiB;IAC3B,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,mDAAmD;IACnD,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,EAAE,oBAAoB,CAAC;IACjC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB;;gDAE4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,sEAAsE;AACtE,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,EAAE,CAAC;AAEnD,+CAA+C;AAC/C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAYpB,CAAC;AAEX,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,uDAAuD;AACvD,eAAO,MAAM,0BAA0B,IAAI,CAAC"}
@@ -0,0 +1,48 @@
1
+ /** Sequence Annotation System — Core Types
2
+ *
3
+ * Provides structured annotation support for macromolecule columns:
4
+ * - Column-level annotations (regions, liabilities) stored as column tags
5
+ * - Row-level annotation hits stored in a hidden companion column
6
+ */
7
+ /** Visual mark type */
8
+ export var AnnotationVisualType;
9
+ (function (AnnotationVisualType) {
10
+ AnnotationVisualType["Region"] = "region";
11
+ AnnotationVisualType["Point"] = "point";
12
+ AnnotationVisualType["Motif"] = "motif";
13
+ })(AnnotationVisualType || (AnnotationVisualType = {}));
14
+ /** Grouping category */
15
+ export var AnnotationCategory;
16
+ (function (AnnotationCategory) {
17
+ AnnotationCategory["Structure"] = "structure";
18
+ AnnotationCategory["Liability"] = "liability";
19
+ AnnotationCategory["PTM"] = "ptm";
20
+ AnnotationCategory["Custom"] = "custom";
21
+ })(AnnotationCategory || (AnnotationCategory = {}));
22
+ /** Severity for liabilities */
23
+ export var LiabilitySeverity;
24
+ (function (LiabilitySeverity) {
25
+ LiabilitySeverity["High"] = "high";
26
+ LiabilitySeverity["Medium"] = "medium";
27
+ LiabilitySeverity["Low"] = "low";
28
+ LiabilitySeverity["Info"] = "info";
29
+ })(LiabilitySeverity || (LiabilitySeverity = {}));
30
+ /** Default colors for annotation categories */
31
+ export const ANNOTATION_COLORS = {
32
+ structure: {
33
+ FR: ['#0095ff', '#289dfd', '#48adff', '#3ba5fc'],
34
+ CDR: ['#ffdca3', '#facb83', '#f7a224'],
35
+ },
36
+ liability: {
37
+ deamidation: '#E53935',
38
+ isomerization: '#FF9800',
39
+ oxidation: '#9C27B0',
40
+ glycosylation: '#4CAF50',
41
+ freeCysteine: '#607D8B',
42
+ },
43
+ };
44
+ /** Background opacity for region overlays in the cell renderer */
45
+ export const REGION_BG_OPACITY = 0.25;
46
+ /** Underline height in pixels for liability markers */
47
+ export const LIABILITY_UNDERLINE_HEIGHT = 3;
48
+ //# sourceMappingURL=annotations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.js","sourceRoot":"","sources":["annotations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uBAAuB;AACvB,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,yCAAiB,CAAA;IACjB,uCAAe,CAAA;IACf,uCAAe,CAAA;AACjB,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAED,wBAAwB;AACxB,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,6CAAuB,CAAA;IACvB,6CAAuB,CAAA;IACvB,iCAAW,CAAA;IACX,uCAAiB,CAAA;AACnB,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED,+BAA+B;AAC/B,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,kCAAa,CAAA;IACb,sCAAiB,CAAA;IACjB,gCAAW,CAAA;IACX,kCAAa,CAAA;AACf,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AAiDD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE;QACT,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;QAChD,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;KACvC;IACD,SAAS,EAAE;QACT,WAAW,EAAE,SAAS;QACtB,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,SAAS;QACpB,aAAa,EAAE,SAAS;QACxB,YAAY,EAAE,SAAS;KACxB;CACO,CAAC;AAEX,kEAAkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC,uDAAuD;AACvD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC"}
@@ -30,7 +30,10 @@ export declare enum TAGS {
30
30
  regions = ".regions",
31
31
  positionShift = ".positionShift",
32
32
  selectedPosition = ".selectedPosition",
33
- polymerTypeColumnName = ".polymerTypeColumnName"
33
+ polymerTypeColumnName = ".polymerTypeColumnName",
34
+ annotations = ".annotations",
35
+ numberingScheme = ".numberingScheme",
36
+ annotationColumnName = ".annotationColumnName"
34
37
  }
35
38
  export { TAGS as BioTags };
36
39
  export declare const positionSeparator: string;
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAEtC,0EAA0E;AAC1E,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,IAAI,SAAS;IACmB,MAAM,WAAW;IACjB,IAAI,SAAS;CAC9C;AAED,0BAAkB,SAAS;IACzB,OAAO,YAAY;IACnB,GAAG,QAAQ;CACZ;AAED,oBAAY,QAAQ;IAClB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,cAAc;IACd,EAAE,OAAO;CACV;AAED,oBAAY,IAAI;IACd,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,YAAY,kBAAkB;IAC9B,mBAAmB,yBAAyB;IAC5C,SAAS,cAAc;IACvB,gBAAgB,sBAAsB;IACtC,aAAa,mBAAmB;IAChC,cAAc,oBAAoB;IAClC,OAAO,aAAa;IACpB,aAAa,mBAAmB;IAChC,gBAAgB,sBAAsB;IACtC,qBAAqB,2BAA2B;CACjD;AAED,OAAO,EAAC,IAAI,IAAI,OAAO,EAAC,CAAC;AAEzB,eAAO,MAAM,iBAAiB,EAAE,MAAa,CAAC;AAE9C,eAAO,MAAM,SAAS,EAAE,MAAqD,CAAC;AAE9E,eAAO,MAAM,MAAM,EAAE,MAA0C,CAAC;AAChE,eAAO,MAAM,SAAS,EAAE,MAAyB,CAAC;AAElD,eAAO,MAAM,SAAS;;;;;;CASnB,CAAC;AAEJ,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAI7C,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,UAAU,EAAE,MAAoB,CAAC;AAE9C,eAAO,MAAM,YAAY,EAAE;IACzB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAMxB,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,eAAO,MAAM,kCAAkC,gCAAgC,CAAC"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAEtC,0EAA0E;AAC1E,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,IAAI,SAAS;IACmB,MAAM,WAAW;IACjB,IAAI,SAAS;CAC9C;AAED,0BAAkB,SAAS;IACzB,OAAO,YAAY;IACnB,GAAG,QAAQ;CACZ;AAED,oBAAY,QAAQ;IAClB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,cAAc;IACd,EAAE,OAAO;CACV;AAED,oBAAY,IAAI;IACd,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,YAAY,kBAAkB;IAC9B,mBAAmB,yBAAyB;IAC5C,SAAS,cAAc;IACvB,gBAAgB,sBAAsB;IACtC,aAAa,mBAAmB;IAChC,cAAc,oBAAoB;IAClC,OAAO,aAAa;IACpB,aAAa,mBAAmB;IAChC,gBAAgB,sBAAsB;IACtC,qBAAqB,2BAA2B;IAChD,WAAW,iBAAiB;IAC5B,eAAe,qBAAqB;IACpC,oBAAoB,0BAA0B;CAC/C;AAED,OAAO,EAAC,IAAI,IAAI,OAAO,EAAC,CAAC;AAEzB,eAAO,MAAM,iBAAiB,EAAE,MAAa,CAAC;AAE9C,eAAO,MAAM,SAAS,EAAE,MAAqD,CAAC;AAE9E,eAAO,MAAM,MAAM,EAAE,MAA0C,CAAC;AAChE,eAAO,MAAM,SAAS,EAAE,MAAyB,CAAC;AAElD,eAAO,MAAM,SAAS;;;;;;CASnB,CAAC;AAEJ,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAI7C,CAAC;AAEF,2BAA2B;AAC3B,eAAO,MAAM,UAAU,EAAE,MAAoB,CAAC;AAE9C,eAAO,MAAM,YAAY,EAAE;IACzB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAMxB,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,eAAO,MAAM,kCAAkC,gCAAgC,CAAC"}
@@ -30,6 +30,9 @@ export var TAGS;
30
30
  TAGS["positionShift"] = ".positionShift";
31
31
  TAGS["selectedPosition"] = ".selectedPosition";
32
32
  TAGS["polymerTypeColumnName"] = ".polymerTypeColumnName";
33
+ TAGS["annotations"] = ".annotations";
34
+ TAGS["numberingScheme"] = ".numberingScheme";
35
+ TAGS["annotationColumnName"] = ".annotationColumnName";
33
36
  })(TAGS || (TAGS = {}));
34
37
  export { TAGS as BioTags };
35
38
  export const positionSeparator = ', ';
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["consts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAEtC,0EAA0E;AAC1E,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,mCAAuB,CAAA;IACvB,yBAAa,CAAA;IACb,+BAA+B,CAAC,6BAAiB,CAAA;IACjD,+BAA+B,CAAC,yBAAa,CAAA;AAC/C,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAOD,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,qBAAS,CAAA;IACT,cAAc;IACd,qBAAS,CAAA;AACX,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAED,MAAM,CAAN,IAAY,IAgBX;AAhBD,WAAY,IAAI;IACd,2BAAmB,CAAA;IACnB,6BAAqB,CAAA;IACrB,sCAA8B,CAAA;IAC9B,oDAA4C,CAAA;IAC5C,+BAAuB,CAAA;IACvB,8CAAsC,CAAA;IACtC,wCAAgC,CAAA;IAChC,0CAAkC,CAAA;IAClC,4BAAoB,CAAA;IACpB,wCAAgC,CAAA;IAChC,8CAAsC,CAAA;IACtC,wDAAgD,CAAA;IAChD,oCAA4B,CAAA;IAC5B,4CAAoC,CAAA;IACpC,sDAA8C,CAAA;AAChD,CAAC,EAhBW,IAAI,KAAJ,IAAI,QAgBf;AAED,OAAO,EAAC,IAAI,IAAI,OAAO,EAAC,CAAC;AAEzB,MAAM,CAAC,MAAM,iBAAiB,GAAW,IAAI,CAAC;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAW,4CAA4C,CAAC;AAE9E,MAAM,CAAC,MAAM,MAAM,GAAW,iCAAiC,CAAC;AAChE,MAAM,CAAC,MAAM,SAAS,GAAW,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI;IAAA;QAC3B,UAAK,GAAG;YACN,OAAO,EAAE,IAAI,GAAG,CAAS;gBACvB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;gBAChD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;aACjD,CAAC;YACF,GAAG,EAAE,IAAI,GAAG,CAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1C,GAAG,EAAE,IAAI,GAAG,CAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SAC3C,CAAC;IACJ,CAAC;CAAA,EAAE,CAAC;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;IAC7D,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;IAC1D,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;CAC3D,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAW,EAAW,CAAC;AAE9C,MAAM,CAAC,MAAM,YAAY,GAErB;IACF,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG;IACrB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE;IACxB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG;IACpB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAC5C,MAAM,CAAC,MAAM,kCAAkC,GAAG,6BAA6B,CAAC"}
@@ -0,0 +1,37 @@
1
+ /** Static antibody numbering scheme region definitions.
2
+ *
3
+ * Contains FR/CDR boundaries for IMGT, Kabat, Chothia, and AHo schemes.
4
+ * These are the canonical position ranges used after a numbering tool
5
+ * (e.g. ANARCI) has assigned scheme-specific position names.
6
+ */
7
+ export declare enum NumberingScheme {
8
+ IMGT = "IMGT",
9
+ Kabat = "Kabat",
10
+ Chothia = "Chothia",
11
+ AHo = "AHo"
12
+ }
13
+ export declare enum ChainType {
14
+ Heavy = "Heavy",
15
+ Light_Kappa = "Light_Kappa",
16
+ Light_Lambda = "Light_Lambda"
17
+ }
18
+ export interface SchemeRegionDef {
19
+ name: string;
20
+ type: 'FR' | 'CDR';
21
+ startPosition: string;
22
+ endPosition: string;
23
+ chainType: ChainType;
24
+ }
25
+ /** IMGT region boundaries — the reference numbering scheme.
26
+ * @see https://www.imgt.org/IMGTScientificChart/Numbering/IMGTIGVLsuperfamily.html
27
+ */
28
+ export declare const IMGT_REGIONS: Record<ChainType, SchemeRegionDef[]>;
29
+ /** Kabat region boundaries (differ mainly in CDR definitions). */
30
+ export declare const KABAT_REGIONS: Record<ChainType, SchemeRegionDef[]>;
31
+ /** Chothia region boundaries. */
32
+ export declare const CHOTHIA_REGIONS: Record<ChainType, SchemeRegionDef[]>;
33
+ /** AHo region boundaries. */
34
+ export declare const AHO_REGIONS: Record<ChainType, SchemeRegionDef[]>;
35
+ /** Lookup table: scheme → chain type → region defs */
36
+ export declare const SCHEME_REGIONS: Record<NumberingScheme, Record<ChainType, SchemeRegionDef[]>>;
37
+ //# sourceMappingURL=numbering-schemes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numbering-schemes.d.ts","sourceRoot":"","sources":["numbering-schemes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAY,eAAe;IACzB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,GAAG,QAAQ;CACZ;AAED,oBAAY,SAAS;IACnB,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,CA4B7D,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,CA4B9D,CAAC;AAEF,iCAAiC;AACjC,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,CA4BhE,CAAC;AAEF,6BAA6B;AAC7B,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,CA4B5D,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CAKxF,CAAC"}
@@ -0,0 +1,149 @@
1
+ /** Static antibody numbering scheme region definitions.
2
+ *
3
+ * Contains FR/CDR boundaries for IMGT, Kabat, Chothia, and AHo schemes.
4
+ * These are the canonical position ranges used after a numbering tool
5
+ * (e.g. ANARCI) has assigned scheme-specific position names.
6
+ */
7
+ export var NumberingScheme;
8
+ (function (NumberingScheme) {
9
+ NumberingScheme["IMGT"] = "IMGT";
10
+ NumberingScheme["Kabat"] = "Kabat";
11
+ NumberingScheme["Chothia"] = "Chothia";
12
+ NumberingScheme["AHo"] = "AHo";
13
+ })(NumberingScheme || (NumberingScheme = {}));
14
+ export var ChainType;
15
+ (function (ChainType) {
16
+ ChainType["Heavy"] = "Heavy";
17
+ ChainType["Light_Kappa"] = "Light_Kappa";
18
+ ChainType["Light_Lambda"] = "Light_Lambda";
19
+ })(ChainType || (ChainType = {}));
20
+ /** IMGT region boundaries — the reference numbering scheme.
21
+ * @see https://www.imgt.org/IMGTScientificChart/Numbering/IMGTIGVLsuperfamily.html
22
+ */
23
+ export const IMGT_REGIONS = {
24
+ [ChainType.Heavy]: [
25
+ { name: 'FR1', type: 'FR', startPosition: '1', endPosition: '26', chainType: ChainType.Heavy },
26
+ { name: 'CDR1', type: 'CDR', startPosition: '27', endPosition: '38', chainType: ChainType.Heavy },
27
+ { name: 'FR2', type: 'FR', startPosition: '39', endPosition: '55', chainType: ChainType.Heavy },
28
+ { name: 'CDR2', type: 'CDR', startPosition: '56', endPosition: '65', chainType: ChainType.Heavy },
29
+ { name: 'FR3', type: 'FR', startPosition: '66', endPosition: '104', chainType: ChainType.Heavy },
30
+ { name: 'CDR3', type: 'CDR', startPosition: '105', endPosition: '117', chainType: ChainType.Heavy },
31
+ { name: 'FR4', type: 'FR', startPosition: '118', endPosition: '128', chainType: ChainType.Heavy },
32
+ ],
33
+ [ChainType.Light_Kappa]: [
34
+ { name: 'FR1', type: 'FR', startPosition: '1', endPosition: '26', chainType: ChainType.Light_Kappa },
35
+ { name: 'CDR1', type: 'CDR', startPosition: '27', endPosition: '38', chainType: ChainType.Light_Kappa },
36
+ { name: 'FR2', type: 'FR', startPosition: '39', endPosition: '55', chainType: ChainType.Light_Kappa },
37
+ { name: 'CDR2', type: 'CDR', startPosition: '56', endPosition: '65', chainType: ChainType.Light_Kappa },
38
+ { name: 'FR3', type: 'FR', startPosition: '66', endPosition: '104', chainType: ChainType.Light_Kappa },
39
+ { name: 'CDR3', type: 'CDR', startPosition: '105', endPosition: '117', chainType: ChainType.Light_Kappa },
40
+ { name: 'FR4', type: 'FR', startPosition: '118', endPosition: '127', chainType: ChainType.Light_Kappa },
41
+ ],
42
+ [ChainType.Light_Lambda]: [
43
+ { name: 'FR1', type: 'FR', startPosition: '1', endPosition: '26', chainType: ChainType.Light_Lambda },
44
+ { name: 'CDR1', type: 'CDR', startPosition: '27', endPosition: '38', chainType: ChainType.Light_Lambda },
45
+ { name: 'FR2', type: 'FR', startPosition: '39', endPosition: '55', chainType: ChainType.Light_Lambda },
46
+ { name: 'CDR2', type: 'CDR', startPosition: '56', endPosition: '65', chainType: ChainType.Light_Lambda },
47
+ { name: 'FR3', type: 'FR', startPosition: '66', endPosition: '104', chainType: ChainType.Light_Lambda },
48
+ { name: 'CDR3', type: 'CDR', startPosition: '105', endPosition: '117', chainType: ChainType.Light_Lambda },
49
+ { name: 'FR4', type: 'FR', startPosition: '118', endPosition: '127', chainType: ChainType.Light_Lambda },
50
+ ],
51
+ };
52
+ /** Kabat region boundaries (differ mainly in CDR definitions). */
53
+ export const KABAT_REGIONS = {
54
+ [ChainType.Heavy]: [
55
+ { name: 'FR1', type: 'FR', startPosition: '1', endPosition: '30', chainType: ChainType.Heavy },
56
+ { name: 'CDR1', type: 'CDR', startPosition: '31', endPosition: '35', chainType: ChainType.Heavy },
57
+ { name: 'FR2', type: 'FR', startPosition: '36', endPosition: '49', chainType: ChainType.Heavy },
58
+ { name: 'CDR2', type: 'CDR', startPosition: '50', endPosition: '65', chainType: ChainType.Heavy },
59
+ { name: 'FR3', type: 'FR', startPosition: '66', endPosition: '94', chainType: ChainType.Heavy },
60
+ { name: 'CDR3', type: 'CDR', startPosition: '95', endPosition: '102', chainType: ChainType.Heavy },
61
+ { name: 'FR4', type: 'FR', startPosition: '103', endPosition: '113', chainType: ChainType.Heavy },
62
+ ],
63
+ [ChainType.Light_Kappa]: [
64
+ { name: 'FR1', type: 'FR', startPosition: '1', endPosition: '23', chainType: ChainType.Light_Kappa },
65
+ { name: 'CDR1', type: 'CDR', startPosition: '24', endPosition: '34', chainType: ChainType.Light_Kappa },
66
+ { name: 'FR2', type: 'FR', startPosition: '35', endPosition: '49', chainType: ChainType.Light_Kappa },
67
+ { name: 'CDR2', type: 'CDR', startPosition: '50', endPosition: '56', chainType: ChainType.Light_Kappa },
68
+ { name: 'FR3', type: 'FR', startPosition: '57', endPosition: '88', chainType: ChainType.Light_Kappa },
69
+ { name: 'CDR3', type: 'CDR', startPosition: '89', endPosition: '97', chainType: ChainType.Light_Kappa },
70
+ { name: 'FR4', type: 'FR', startPosition: '98', endPosition: '107', chainType: ChainType.Light_Kappa },
71
+ ],
72
+ [ChainType.Light_Lambda]: [
73
+ { name: 'FR1', type: 'FR', startPosition: '1', endPosition: '23', chainType: ChainType.Light_Lambda },
74
+ { name: 'CDR1', type: 'CDR', startPosition: '24', endPosition: '34', chainType: ChainType.Light_Lambda },
75
+ { name: 'FR2', type: 'FR', startPosition: '35', endPosition: '49', chainType: ChainType.Light_Lambda },
76
+ { name: 'CDR2', type: 'CDR', startPosition: '50', endPosition: '56', chainType: ChainType.Light_Lambda },
77
+ { name: 'FR3', type: 'FR', startPosition: '57', endPosition: '88', chainType: ChainType.Light_Lambda },
78
+ { name: 'CDR3', type: 'CDR', startPosition: '89', endPosition: '97', chainType: ChainType.Light_Lambda },
79
+ { name: 'FR4', type: 'FR', startPosition: '98', endPosition: '107', chainType: ChainType.Light_Lambda },
80
+ ],
81
+ };
82
+ /** Chothia region boundaries. */
83
+ export const CHOTHIA_REGIONS = {
84
+ [ChainType.Heavy]: [
85
+ { name: 'FR1', type: 'FR', startPosition: '1', endPosition: '25', chainType: ChainType.Heavy },
86
+ { name: 'CDR1', type: 'CDR', startPosition: '26', endPosition: '32', chainType: ChainType.Heavy },
87
+ { name: 'FR2', type: 'FR', startPosition: '33', endPosition: '51', chainType: ChainType.Heavy },
88
+ { name: 'CDR2', type: 'CDR', startPosition: '52', endPosition: '56', chainType: ChainType.Heavy },
89
+ { name: 'FR3', type: 'FR', startPosition: '57', endPosition: '94', chainType: ChainType.Heavy },
90
+ { name: 'CDR3', type: 'CDR', startPosition: '95', endPosition: '102', chainType: ChainType.Heavy },
91
+ { name: 'FR4', type: 'FR', startPosition: '103', endPosition: '113', chainType: ChainType.Heavy },
92
+ ],
93
+ [ChainType.Light_Kappa]: [
94
+ { name: 'FR1', type: 'FR', startPosition: '1', endPosition: '25', chainType: ChainType.Light_Kappa },
95
+ { name: 'CDR1', type: 'CDR', startPosition: '26', endPosition: '32', chainType: ChainType.Light_Kappa },
96
+ { name: 'FR2', type: 'FR', startPosition: '33', endPosition: '49', chainType: ChainType.Light_Kappa },
97
+ { name: 'CDR2', type: 'CDR', startPosition: '50', endPosition: '52', chainType: ChainType.Light_Kappa },
98
+ { name: 'FR3', type: 'FR', startPosition: '53', endPosition: '90', chainType: ChainType.Light_Kappa },
99
+ { name: 'CDR3', type: 'CDR', startPosition: '91', endPosition: '96', chainType: ChainType.Light_Kappa },
100
+ { name: 'FR4', type: 'FR', startPosition: '97', endPosition: '107', chainType: ChainType.Light_Kappa },
101
+ ],
102
+ [ChainType.Light_Lambda]: [
103
+ { name: 'FR1', type: 'FR', startPosition: '1', endPosition: '25', chainType: ChainType.Light_Lambda },
104
+ { name: 'CDR1', type: 'CDR', startPosition: '26', endPosition: '32', chainType: ChainType.Light_Lambda },
105
+ { name: 'FR2', type: 'FR', startPosition: '33', endPosition: '49', chainType: ChainType.Light_Lambda },
106
+ { name: 'CDR2', type: 'CDR', startPosition: '50', endPosition: '52', chainType: ChainType.Light_Lambda },
107
+ { name: 'FR3', type: 'FR', startPosition: '53', endPosition: '90', chainType: ChainType.Light_Lambda },
108
+ { name: 'CDR3', type: 'CDR', startPosition: '91', endPosition: '96', chainType: ChainType.Light_Lambda },
109
+ { name: 'FR4', type: 'FR', startPosition: '97', endPosition: '107', chainType: ChainType.Light_Lambda },
110
+ ],
111
+ };
112
+ /** AHo region boundaries. */
113
+ export const AHO_REGIONS = {
114
+ [ChainType.Heavy]: [
115
+ { name: 'FR1', type: 'FR', startPosition: '1', endPosition: '24', chainType: ChainType.Heavy },
116
+ { name: 'CDR1', type: 'CDR', startPosition: '25', endPosition: '40', chainType: ChainType.Heavy },
117
+ { name: 'FR2', type: 'FR', startPosition: '41', endPosition: '55', chainType: ChainType.Heavy },
118
+ { name: 'CDR2', type: 'CDR', startPosition: '56', endPosition: '78', chainType: ChainType.Heavy },
119
+ { name: 'FR3', type: 'FR', startPosition: '79', endPosition: '108', chainType: ChainType.Heavy },
120
+ { name: 'CDR3', type: 'CDR', startPosition: '109', endPosition: '138', chainType: ChainType.Heavy },
121
+ { name: 'FR4', type: 'FR', startPosition: '139', endPosition: '149', chainType: ChainType.Heavy },
122
+ ],
123
+ [ChainType.Light_Kappa]: [
124
+ { name: 'FR1', type: 'FR', startPosition: '1', endPosition: '24', chainType: ChainType.Light_Kappa },
125
+ { name: 'CDR1', type: 'CDR', startPosition: '25', endPosition: '40', chainType: ChainType.Light_Kappa },
126
+ { name: 'FR2', type: 'FR', startPosition: '41', endPosition: '55', chainType: ChainType.Light_Kappa },
127
+ { name: 'CDR2', type: 'CDR', startPosition: '56', endPosition: '78', chainType: ChainType.Light_Kappa },
128
+ { name: 'FR3', type: 'FR', startPosition: '79', endPosition: '108', chainType: ChainType.Light_Kappa },
129
+ { name: 'CDR3', type: 'CDR', startPosition: '109', endPosition: '138', chainType: ChainType.Light_Kappa },
130
+ { name: 'FR4', type: 'FR', startPosition: '139', endPosition: '149', chainType: ChainType.Light_Kappa },
131
+ ],
132
+ [ChainType.Light_Lambda]: [
133
+ { name: 'FR1', type: 'FR', startPosition: '1', endPosition: '24', chainType: ChainType.Light_Lambda },
134
+ { name: 'CDR1', type: 'CDR', startPosition: '25', endPosition: '40', chainType: ChainType.Light_Lambda },
135
+ { name: 'FR2', type: 'FR', startPosition: '41', endPosition: '55', chainType: ChainType.Light_Lambda },
136
+ { name: 'CDR2', type: 'CDR', startPosition: '56', endPosition: '78', chainType: ChainType.Light_Lambda },
137
+ { name: 'FR3', type: 'FR', startPosition: '79', endPosition: '108', chainType: ChainType.Light_Lambda },
138
+ { name: 'CDR3', type: 'CDR', startPosition: '109', endPosition: '138', chainType: ChainType.Light_Lambda },
139
+ { name: 'FR4', type: 'FR', startPosition: '139', endPosition: '149', chainType: ChainType.Light_Lambda },
140
+ ],
141
+ };
142
+ /** Lookup table: scheme → chain type → region defs */
143
+ export const SCHEME_REGIONS = {
144
+ [NumberingScheme.IMGT]: IMGT_REGIONS,
145
+ [NumberingScheme.Kabat]: KABAT_REGIONS,
146
+ [NumberingScheme.Chothia]: CHOTHIA_REGIONS,
147
+ [NumberingScheme.AHo]: AHO_REGIONS,
148
+ };
149
+ //# sourceMappingURL=numbering-schemes.js.map