@teselagen/sequence-utils 0.3.41 → 0.3.42

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.
package/README.md CHANGED
@@ -64,15 +64,9 @@ Make sure they pass by running `npm test`
64
64
 
65
65
  Commit and push all changes first (make sure tests are passing!)
66
66
 
67
- ### Teselagen collaborators:
67
+ # Publishing
68
68
 
69
- Commit and push all changes
70
- Sign into npm using the teselagen npm account (npm whoami)
71
-
72
- ```
73
- npm version patch|minor|major
74
- npm publish
75
- ```
69
+ See the [README](../README.md)
76
70
 
77
71
  ### Outside collaborators:
78
72
 
@@ -1,4 +1,4 @@
1
- export default function filterSequenceString(sequenceString?: string, { additionalValidChars, isOligo, name, isProtein, isRna, isMixedRnaAndDna }?: {
1
+ export default function filterSequenceString(sequenceString?: string, { additionalValidChars, isOligo, name, isProtein, isRna, isMixedRnaAndDna, getAcceptedInsertChars }?: {
2
2
  additionalValidChars?: string | undefined;
3
3
  }): (string | string[])[];
4
4
  export function getAcceptedChars({ isOligo, isProtein, isRna, isMixedRnaAndDna }?: {}): string;
package/index.cjs CHANGED
@@ -6196,14 +6196,16 @@ function filterSequenceString(sequenceString = "", {
6196
6196
  name,
6197
6197
  isProtein,
6198
6198
  isRna,
6199
- isMixedRnaAndDna
6199
+ isMixedRnaAndDna,
6200
+ getAcceptedInsertChars
6200
6201
  } = {}) {
6201
- const acceptedChars = getAcceptedChars({
6202
+ const sequenceTypeInfo = {
6202
6203
  isOligo,
6203
6204
  isProtein,
6204
6205
  isRna,
6205
6206
  isMixedRnaAndDna
6206
- });
6207
+ };
6208
+ const acceptedChars = isFunction(getAcceptedInsertChars) ? getAcceptedInsertChars(sequenceTypeInfo) : getAcceptedChars(sequenceTypeInfo);
6207
6209
  const replaceChars = getReplaceChars({
6208
6210
  isOligo,
6209
6211
  isProtein,
@@ -6440,6 +6442,7 @@ function tidyUpSequenceData(pSeqData, options = {}) {
6440
6442
  doNotProvideIdsForAnnotations,
6441
6443
  noCdsTranslations,
6442
6444
  convertAnnotationsFromAAIndices,
6445
+ getAcceptedInsertChars,
6443
6446
  topLevelSeqData
6444
6447
  } = options;
6445
6448
  let seqData = cloneDeep(pSeqData);
@@ -6471,13 +6474,16 @@ function tidyUpSequenceData(pSeqData, options = {}) {
6471
6474
  if (!doNotRemoveInvalidChars) {
6472
6475
  if (seqData.isProtein) {
6473
6476
  const [newSeq] = filterSequenceString(seqData.proteinSequence, __spreadProps(__spreadValues({}, topLevelSeqData || seqData), {
6474
- isProtein: true
6477
+ isProtein: true,
6478
+ getAcceptedInsertChars
6475
6479
  }));
6476
6480
  seqData.proteinSequence = newSeq;
6477
6481
  } else {
6478
- const [newSeq] = filterSequenceString(seqData.sequence, __spreadValues({
6482
+ const [newSeq] = filterSequenceString(seqData.sequence, __spreadProps(__spreadValues({
6479
6483
  additionalValidChars
6480
- }, topLevelSeqData || seqData));
6484
+ }, topLevelSeqData || seqData), {
6485
+ getAcceptedInsertChars
6486
+ }));
6481
6487
  seqData.sequence = newSeq;
6482
6488
  }
6483
6489
  }
package/index.js CHANGED
@@ -6194,14 +6194,16 @@ function filterSequenceString(sequenceString = "", {
6194
6194
  name,
6195
6195
  isProtein,
6196
6196
  isRna,
6197
- isMixedRnaAndDna
6197
+ isMixedRnaAndDna,
6198
+ getAcceptedInsertChars
6198
6199
  } = {}) {
6199
- const acceptedChars = getAcceptedChars({
6200
+ const sequenceTypeInfo = {
6200
6201
  isOligo,
6201
6202
  isProtein,
6202
6203
  isRna,
6203
6204
  isMixedRnaAndDna
6204
- });
6205
+ };
6206
+ const acceptedChars = isFunction(getAcceptedInsertChars) ? getAcceptedInsertChars(sequenceTypeInfo) : getAcceptedChars(sequenceTypeInfo);
6205
6207
  const replaceChars = getReplaceChars({
6206
6208
  isOligo,
6207
6209
  isProtein,
@@ -6438,6 +6440,7 @@ function tidyUpSequenceData(pSeqData, options = {}) {
6438
6440
  doNotProvideIdsForAnnotations,
6439
6441
  noCdsTranslations,
6440
6442
  convertAnnotationsFromAAIndices,
6443
+ getAcceptedInsertChars,
6441
6444
  topLevelSeqData
6442
6445
  } = options;
6443
6446
  let seqData = cloneDeep(pSeqData);
@@ -6469,13 +6472,16 @@ function tidyUpSequenceData(pSeqData, options = {}) {
6469
6472
  if (!doNotRemoveInvalidChars) {
6470
6473
  if (seqData.isProtein) {
6471
6474
  const [newSeq] = filterSequenceString(seqData.proteinSequence, __spreadProps(__spreadValues({}, topLevelSeqData || seqData), {
6472
- isProtein: true
6475
+ isProtein: true,
6476
+ getAcceptedInsertChars
6473
6477
  }));
6474
6478
  seqData.proteinSequence = newSeq;
6475
6479
  } else {
6476
- const [newSeq] = filterSequenceString(seqData.sequence, __spreadValues({
6480
+ const [newSeq] = filterSequenceString(seqData.sequence, __spreadProps(__spreadValues({
6477
6481
  additionalValidChars
6478
- }, topLevelSeqData || seqData));
6482
+ }, topLevelSeqData || seqData), {
6483
+ getAcceptedInsertChars
6484
+ }));
6479
6485
  seqData.sequence = newSeq;
6480
6486
  }
6481
6487
  }
package/index.umd.cjs CHANGED
@@ -6198,14 +6198,16 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
6198
6198
  name,
6199
6199
  isProtein,
6200
6200
  isRna,
6201
- isMixedRnaAndDna
6201
+ isMixedRnaAndDna,
6202
+ getAcceptedInsertChars
6202
6203
  } = {}) {
6203
- const acceptedChars = getAcceptedChars({
6204
+ const sequenceTypeInfo = {
6204
6205
  isOligo,
6205
6206
  isProtein,
6206
6207
  isRna,
6207
6208
  isMixedRnaAndDna
6208
- });
6209
+ };
6210
+ const acceptedChars = isFunction(getAcceptedInsertChars) ? getAcceptedInsertChars(sequenceTypeInfo) : getAcceptedChars(sequenceTypeInfo);
6209
6211
  const replaceChars = getReplaceChars({
6210
6212
  isOligo,
6211
6213
  isProtein,
@@ -6442,6 +6444,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
6442
6444
  doNotProvideIdsForAnnotations,
6443
6445
  noCdsTranslations,
6444
6446
  convertAnnotationsFromAAIndices,
6447
+ getAcceptedInsertChars,
6445
6448
  topLevelSeqData
6446
6449
  } = options;
6447
6450
  let seqData = cloneDeep(pSeqData);
@@ -6473,13 +6476,16 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
6473
6476
  if (!doNotRemoveInvalidChars) {
6474
6477
  if (seqData.isProtein) {
6475
6478
  const [newSeq] = filterSequenceString(seqData.proteinSequence, __spreadProps(__spreadValues({}, topLevelSeqData || seqData), {
6476
- isProtein: true
6479
+ isProtein: true,
6480
+ getAcceptedInsertChars
6477
6481
  }));
6478
6482
  seqData.proteinSequence = newSeq;
6479
6483
  } else {
6480
- const [newSeq] = filterSequenceString(seqData.sequence, __spreadValues({
6484
+ const [newSeq] = filterSequenceString(seqData.sequence, __spreadProps(__spreadValues({
6481
6485
  additionalValidChars
6482
- }, topLevelSeqData || seqData));
6486
+ }, topLevelSeqData || seqData), {
6487
+ getAcceptedInsertChars
6488
+ }));
6483
6489
  seqData.sequence = newSeq;
6484
6490
  }
6485
6491
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teselagen/sequence-utils",
3
- "version": "0.3.41",
3
+ "version": "0.3.42",
4
4
  "repository": "https://github.com/TeselaGen/tg-oss",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -9,7 +9,7 @@
9
9
  "string-splice": "^1.3.0",
10
10
  "lodash-es": "^4.17.21",
11
11
  "shortid": "2.2.16",
12
- "@teselagen/range-utils": "0.3.18"
12
+ "@teselagen/range-utils": "0.3.20"
13
13
  },
14
14
  "exports": {
15
15
  ".": {
@@ -4,6 +4,7 @@ import {
4
4
  ambiguous_rna_letters,
5
5
  extended_protein_letters
6
6
  } from "./bioData";
7
+ import {isFunction} from "lodash-es";
7
8
 
8
9
  let allWarnings = [];
9
10
 
@@ -30,15 +31,17 @@ export default function filterSequenceString(
30
31
  name,
31
32
  isProtein,
32
33
  isRna,
33
- isMixedRnaAndDna
34
- } = {}
34
+ isMixedRnaAndDna,
35
+ getAcceptedInsertChars
36
+ } = {},
35
37
  ) {
36
- const acceptedChars = getAcceptedChars({
38
+ const sequenceTypeInfo = {
37
39
  isOligo,
38
40
  isProtein,
39
41
  isRna,
40
42
  isMixedRnaAndDna
41
- });
43
+ };
44
+ const acceptedChars = isFunction(getAcceptedInsertChars) ? getAcceptedInsertChars(sequenceTypeInfo) : getAcceptedChars(sequenceTypeInfo);
42
45
  const replaceChars = getReplaceChars({
43
46
  isOligo,
44
47
  isProtein,
@@ -22,6 +22,7 @@ export default function tidyUpSequenceData(pSeqData, options = {}) {
22
22
  doNotProvideIdsForAnnotations,
23
23
  noCdsTranslations,
24
24
  convertAnnotationsFromAAIndices,
25
+ getAcceptedInsertChars,
25
26
  topLevelSeqData
26
27
  } = options;
27
28
  let seqData = cloneDeep(pSeqData); //sequence is usually immutable, so we clone it and return it
@@ -59,13 +60,15 @@ export default function tidyUpSequenceData(pSeqData, options = {}) {
59
60
  if (seqData.isProtein) {
60
61
  const [newSeq] = filterSequenceString(seqData.proteinSequence, {
61
62
  ...(topLevelSeqData || seqData),
62
- isProtein: true
63
+ isProtein: true,
64
+ getAcceptedInsertChars
63
65
  });
64
66
  seqData.proteinSequence = newSeq;
65
67
  } else {
66
68
  const [newSeq] = filterSequenceString(seqData.sequence, {
67
69
  additionalValidChars,
68
- ...(topLevelSeqData || seqData)
70
+ ...(topLevelSeqData || seqData),
71
+ getAcceptedInsertChars
69
72
  });
70
73
  seqData.sequence = newSeq;
71
74
  }