@teselagen/sequence-utils 0.3.12 → 0.3.13
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/filterSequenceString.d.ts +2 -1
- package/index.d.ts +1 -1
- package/index.js +21 -10
- package/index.mjs +21 -10
- package/index.umd.js +21 -10
- package/package.json +1 -1
- package/src/filterSequenceString.js +4 -1
- package/src/getComplementSequenceAndAnnotations.js +4 -1
- package/src/getSequenceDataBetweenRange.js +12 -3
- package/src/index.js +4 -1
- package/src/insertSequenceDataAtPositionOrRange.js +8 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export default function filterSequenceString(sequenceString
|
|
1
|
+
export default function filterSequenceString(sequenceString?: string, { additionalValidChars, isOligo, name, isProtein, isRna, isMixedRnaAndDna }?: {
|
|
2
2
|
additionalValidChars?: string | undefined;
|
|
3
3
|
isOligo: any;
|
|
4
4
|
name: any;
|
|
@@ -22,3 +22,4 @@ export function getReplaceChars({ isOligo, isProtein, isRna, isMixedRnaAndDna }?
|
|
|
22
22
|
} | {
|
|
23
23
|
t: string;
|
|
24
24
|
};
|
|
25
|
+
export function filterRnaString(s: any, o: any): string | string[];
|
package/index.d.ts
CHANGED
|
@@ -20,7 +20,6 @@ export { default as aliasedEnzymesByName } from "./aliasedEnzymesByName";
|
|
|
20
20
|
export { default as defaultEnzymesByName } from "./defaultEnzymesByName";
|
|
21
21
|
export { default as generateSequenceData } from "./generateSequenceData";
|
|
22
22
|
export { default as generateAnnotations } from "./generateAnnotations";
|
|
23
|
-
export { default as filterSequenceString } from "./filterSequenceString";
|
|
24
23
|
export { default as findNearestRangeOfSequenceOverlapToPosition } from "./findNearestRangeOfSequenceOverlapToPosition";
|
|
25
24
|
export { default as findOrfsInPlasmid } from "./findOrfsInPlasmid";
|
|
26
25
|
export { default as findSequenceMatches } from "./findSequenceMatches";
|
|
@@ -82,3 +81,4 @@ import { autoAnnotate } from "./autoAnnotate";
|
|
|
82
81
|
import { convertApELikeRegexToRegex } from "./autoAnnotate";
|
|
83
82
|
import { convertProteinSeqToDNAIupac } from "./autoAnnotate";
|
|
84
83
|
export { getFeatureToColorMap, getFeatureTypes, genbankFeatureTypes, getMergedFeatureMap, autoAnnotate, convertApELikeRegexToRegex, convertProteinSeqToDNAIupac };
|
|
84
|
+
export { default as filterSequenceString, filterRnaString } from "./filterSequenceString";
|
package/index.js
CHANGED
|
@@ -12323,7 +12323,7 @@ const modifiableTypes = [
|
|
|
12323
12323
|
"primers",
|
|
12324
12324
|
"guides"
|
|
12325
12325
|
];
|
|
12326
|
-
function filterSequenceString(sequenceString, {
|
|
12326
|
+
function filterSequenceString(sequenceString = "", {
|
|
12327
12327
|
additionalValidChars = "",
|
|
12328
12328
|
isOligo,
|
|
12329
12329
|
name,
|
|
@@ -12408,6 +12408,7 @@ function getReplaceChars({
|
|
|
12408
12408
|
);
|
|
12409
12409
|
}
|
|
12410
12410
|
__name(getReplaceChars, "getReplaceChars");
|
|
12411
|
+
const filterRnaString = /* @__PURE__ */ __name((s, o) => filterSequenceString(s, __spreadProps(__spreadValues({}, o), { isRna: true }))[0], "filterRnaString");
|
|
12411
12412
|
function tidyUpAnnotation(_annotation, {
|
|
12412
12413
|
sequenceData = {},
|
|
12413
12414
|
convertAnnotationsFromAAIndices,
|
|
@@ -13328,11 +13329,12 @@ function adjustAnnotationsToInsert(annotationsToBeAdjusted, insertStart, insertL
|
|
|
13328
13329
|
__name(adjustAnnotationsToInsert, "adjustAnnotationsToInsert");
|
|
13329
13330
|
function insertSequenceDataAtPositionOrRange(_sequenceDataToInsert, _existingSequenceData, caretPositionOrRange, options = {}) {
|
|
13330
13331
|
const { maintainOriginSplit } = options;
|
|
13331
|
-
let existingSequenceData = tidyUpSequenceData(_existingSequenceData, __spreadValues({
|
|
13332
|
-
|
|
13333
|
-
|
|
13334
|
-
|
|
13335
|
-
|
|
13332
|
+
let existingSequenceData = tidyUpSequenceData(_existingSequenceData, __spreadValues({
|
|
13333
|
+
doNotRemoveInvalidChars: true
|
|
13334
|
+
}, options));
|
|
13335
|
+
const sequenceDataToInsert = tidyUpSequenceData(_sequenceDataToInsert, __spreadValues({
|
|
13336
|
+
topLevelSeqData: existingSequenceData
|
|
13337
|
+
}, options));
|
|
13336
13338
|
const newSequenceData = lodashExports.cloneDeep(existingSequenceData);
|
|
13337
13339
|
const insertLength = sequenceDataToInsert.proteinSequence ? sequenceDataToInsert.proteinSequence.length * 3 : sequenceDataToInsert.sequence.length;
|
|
13338
13340
|
let caretPosition = caretPositionOrRange;
|
|
@@ -21541,7 +21543,9 @@ function getSequenceDataBetweenRange(seqData, range, options = {}) {
|
|
|
21541
21543
|
if (!range)
|
|
21542
21544
|
return seqData;
|
|
21543
21545
|
const { exclude = {}, excludePartial = {} } = options;
|
|
21544
|
-
const seqDataToUse = tidyUpSequenceData(seqData, __spreadValues({
|
|
21546
|
+
const seqDataToUse = tidyUpSequenceData(seqData, __spreadValues({
|
|
21547
|
+
doNotRemoveInvalidChars: true
|
|
21548
|
+
}, options));
|
|
21545
21549
|
annotationTypes.forEach((type) => {
|
|
21546
21550
|
delete seqDataToUse[`filtered${lodashExports.startCase(type)}`];
|
|
21547
21551
|
});
|
|
@@ -21592,9 +21596,13 @@ function getSequenceDataBetweenRange(seqData, range, options = {}) {
|
|
|
21592
21596
|
}
|
|
21593
21597
|
});
|
|
21594
21598
|
});
|
|
21595
|
-
return tidyUpSequenceData(toRet, __spreadValues({
|
|
21599
|
+
return tidyUpSequenceData(toRet, __spreadValues({
|
|
21600
|
+
doNotRemoveInvalidChars: true
|
|
21601
|
+
}, options));
|
|
21596
21602
|
}
|
|
21597
|
-
return tidyUpSequenceData(seqDataToReturn, __spreadValues({
|
|
21603
|
+
return tidyUpSequenceData(seqDataToReturn, __spreadValues({
|
|
21604
|
+
doNotRemoveInvalidChars: true
|
|
21605
|
+
}, options));
|
|
21598
21606
|
}
|
|
21599
21607
|
__name(getSequenceDataBetweenRange, "getSequenceDataBetweenRange");
|
|
21600
21608
|
function getAnnotationsBetweenRange(annotationsToBeAdjusted, range, maxLength, shouldExcludePartial) {
|
|
@@ -21641,7 +21649,9 @@ function getComplementSequenceAndAnnotations(pSeqObj, options = {}) {
|
|
|
21641
21649
|
const newSeqObj = Object.assign({}, seqObj, {
|
|
21642
21650
|
sequence: getComplementSequenceString(seqObj.sequence, seqObj.isRna)
|
|
21643
21651
|
});
|
|
21644
|
-
return tidyUpSequenceData(newSeqObj, __spreadValues({
|
|
21652
|
+
return tidyUpSequenceData(newSeqObj, __spreadValues({
|
|
21653
|
+
doNotRemoveInvalidChars: true
|
|
21654
|
+
}, options));
|
|
21645
21655
|
}
|
|
21646
21656
|
__name(getComplementSequenceAndAnnotations, "getComplementSequenceAndAnnotations");
|
|
21647
21657
|
function getCutsiteType(restrictionEnzyme) {
|
|
@@ -22736,6 +22746,7 @@ exports.degenerateRnaToAminoAcidMap = degenerateRnaToAminoAcidMap;
|
|
|
22736
22746
|
exports.deleteSequenceDataAtRange = deleteSequenceDataAtRange;
|
|
22737
22747
|
exports.doesEnzymeChopOutsideOfRecognitionSite = doesEnzymeChopOutsideOfRecognitionSite;
|
|
22738
22748
|
exports.featureColors = featureColors;
|
|
22749
|
+
exports.filterRnaString = filterRnaString;
|
|
22739
22750
|
exports.filterSequenceString = filterSequenceString;
|
|
22740
22751
|
exports.findNearestRangeOfSequenceOverlapToPosition = findNearestRangeOfSequenceOverlapToPosition;
|
|
22741
22752
|
exports.findOrfsInPlasmid = findOrfsInPlasmid;
|
package/index.mjs
CHANGED
|
@@ -12321,7 +12321,7 @@ const modifiableTypes = [
|
|
|
12321
12321
|
"primers",
|
|
12322
12322
|
"guides"
|
|
12323
12323
|
];
|
|
12324
|
-
function filterSequenceString(sequenceString, {
|
|
12324
|
+
function filterSequenceString(sequenceString = "", {
|
|
12325
12325
|
additionalValidChars = "",
|
|
12326
12326
|
isOligo,
|
|
12327
12327
|
name,
|
|
@@ -12406,6 +12406,7 @@ function getReplaceChars({
|
|
|
12406
12406
|
);
|
|
12407
12407
|
}
|
|
12408
12408
|
__name(getReplaceChars, "getReplaceChars");
|
|
12409
|
+
const filterRnaString = /* @__PURE__ */ __name((s, o) => filterSequenceString(s, __spreadProps(__spreadValues({}, o), { isRna: true }))[0], "filterRnaString");
|
|
12409
12410
|
function tidyUpAnnotation(_annotation, {
|
|
12410
12411
|
sequenceData = {},
|
|
12411
12412
|
convertAnnotationsFromAAIndices,
|
|
@@ -13326,11 +13327,12 @@ function adjustAnnotationsToInsert(annotationsToBeAdjusted, insertStart, insertL
|
|
|
13326
13327
|
__name(adjustAnnotationsToInsert, "adjustAnnotationsToInsert");
|
|
13327
13328
|
function insertSequenceDataAtPositionOrRange(_sequenceDataToInsert, _existingSequenceData, caretPositionOrRange, options = {}) {
|
|
13328
13329
|
const { maintainOriginSplit } = options;
|
|
13329
|
-
let existingSequenceData = tidyUpSequenceData(_existingSequenceData, __spreadValues({
|
|
13330
|
-
|
|
13331
|
-
|
|
13332
|
-
|
|
13333
|
-
|
|
13330
|
+
let existingSequenceData = tidyUpSequenceData(_existingSequenceData, __spreadValues({
|
|
13331
|
+
doNotRemoveInvalidChars: true
|
|
13332
|
+
}, options));
|
|
13333
|
+
const sequenceDataToInsert = tidyUpSequenceData(_sequenceDataToInsert, __spreadValues({
|
|
13334
|
+
topLevelSeqData: existingSequenceData
|
|
13335
|
+
}, options));
|
|
13334
13336
|
const newSequenceData = lodashExports.cloneDeep(existingSequenceData);
|
|
13335
13337
|
const insertLength = sequenceDataToInsert.proteinSequence ? sequenceDataToInsert.proteinSequence.length * 3 : sequenceDataToInsert.sequence.length;
|
|
13336
13338
|
let caretPosition = caretPositionOrRange;
|
|
@@ -21539,7 +21541,9 @@ function getSequenceDataBetweenRange(seqData, range, options = {}) {
|
|
|
21539
21541
|
if (!range)
|
|
21540
21542
|
return seqData;
|
|
21541
21543
|
const { exclude = {}, excludePartial = {} } = options;
|
|
21542
|
-
const seqDataToUse = tidyUpSequenceData(seqData, __spreadValues({
|
|
21544
|
+
const seqDataToUse = tidyUpSequenceData(seqData, __spreadValues({
|
|
21545
|
+
doNotRemoveInvalidChars: true
|
|
21546
|
+
}, options));
|
|
21543
21547
|
annotationTypes.forEach((type) => {
|
|
21544
21548
|
delete seqDataToUse[`filtered${lodashExports.startCase(type)}`];
|
|
21545
21549
|
});
|
|
@@ -21590,9 +21594,13 @@ function getSequenceDataBetweenRange(seqData, range, options = {}) {
|
|
|
21590
21594
|
}
|
|
21591
21595
|
});
|
|
21592
21596
|
});
|
|
21593
|
-
return tidyUpSequenceData(toRet, __spreadValues({
|
|
21597
|
+
return tidyUpSequenceData(toRet, __spreadValues({
|
|
21598
|
+
doNotRemoveInvalidChars: true
|
|
21599
|
+
}, options));
|
|
21594
21600
|
}
|
|
21595
|
-
return tidyUpSequenceData(seqDataToReturn, __spreadValues({
|
|
21601
|
+
return tidyUpSequenceData(seqDataToReturn, __spreadValues({
|
|
21602
|
+
doNotRemoveInvalidChars: true
|
|
21603
|
+
}, options));
|
|
21596
21604
|
}
|
|
21597
21605
|
__name(getSequenceDataBetweenRange, "getSequenceDataBetweenRange");
|
|
21598
21606
|
function getAnnotationsBetweenRange(annotationsToBeAdjusted, range, maxLength, shouldExcludePartial) {
|
|
@@ -21639,7 +21647,9 @@ function getComplementSequenceAndAnnotations(pSeqObj, options = {}) {
|
|
|
21639
21647
|
const newSeqObj = Object.assign({}, seqObj, {
|
|
21640
21648
|
sequence: getComplementSequenceString(seqObj.sequence, seqObj.isRna)
|
|
21641
21649
|
});
|
|
21642
|
-
return tidyUpSequenceData(newSeqObj, __spreadValues({
|
|
21650
|
+
return tidyUpSequenceData(newSeqObj, __spreadValues({
|
|
21651
|
+
doNotRemoveInvalidChars: true
|
|
21652
|
+
}, options));
|
|
21643
21653
|
}
|
|
21644
21654
|
__name(getComplementSequenceAndAnnotations, "getComplementSequenceAndAnnotations");
|
|
21645
21655
|
function getCutsiteType(restrictionEnzyme) {
|
|
@@ -22735,6 +22745,7 @@ export {
|
|
|
22735
22745
|
deleteSequenceDataAtRange,
|
|
22736
22746
|
doesEnzymeChopOutsideOfRecognitionSite,
|
|
22737
22747
|
featureColors,
|
|
22748
|
+
filterRnaString,
|
|
22738
22749
|
filterSequenceString,
|
|
22739
22750
|
findNearestRangeOfSequenceOverlapToPosition,
|
|
22740
22751
|
findOrfsInPlasmid,
|
package/index.umd.js
CHANGED
|
@@ -12325,7 +12325,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
12325
12325
|
"primers",
|
|
12326
12326
|
"guides"
|
|
12327
12327
|
];
|
|
12328
|
-
function filterSequenceString(sequenceString, {
|
|
12328
|
+
function filterSequenceString(sequenceString = "", {
|
|
12329
12329
|
additionalValidChars = "",
|
|
12330
12330
|
isOligo,
|
|
12331
12331
|
name,
|
|
@@ -12410,6 +12410,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
12410
12410
|
);
|
|
12411
12411
|
}
|
|
12412
12412
|
__name(getReplaceChars, "getReplaceChars");
|
|
12413
|
+
const filterRnaString = /* @__PURE__ */ __name((s, o) => filterSequenceString(s, __spreadProps(__spreadValues({}, o), { isRna: true }))[0], "filterRnaString");
|
|
12413
12414
|
function tidyUpAnnotation(_annotation, {
|
|
12414
12415
|
sequenceData = {},
|
|
12415
12416
|
convertAnnotationsFromAAIndices,
|
|
@@ -13330,11 +13331,12 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
13330
13331
|
__name(adjustAnnotationsToInsert, "adjustAnnotationsToInsert");
|
|
13331
13332
|
function insertSequenceDataAtPositionOrRange(_sequenceDataToInsert, _existingSequenceData, caretPositionOrRange, options = {}) {
|
|
13332
13333
|
const { maintainOriginSplit } = options;
|
|
13333
|
-
let existingSequenceData = tidyUpSequenceData(_existingSequenceData, __spreadValues({
|
|
13334
|
-
|
|
13335
|
-
|
|
13336
|
-
|
|
13337
|
-
|
|
13334
|
+
let existingSequenceData = tidyUpSequenceData(_existingSequenceData, __spreadValues({
|
|
13335
|
+
doNotRemoveInvalidChars: true
|
|
13336
|
+
}, options));
|
|
13337
|
+
const sequenceDataToInsert = tidyUpSequenceData(_sequenceDataToInsert, __spreadValues({
|
|
13338
|
+
topLevelSeqData: existingSequenceData
|
|
13339
|
+
}, options));
|
|
13338
13340
|
const newSequenceData = lodashExports.cloneDeep(existingSequenceData);
|
|
13339
13341
|
const insertLength = sequenceDataToInsert.proteinSequence ? sequenceDataToInsert.proteinSequence.length * 3 : sequenceDataToInsert.sequence.length;
|
|
13340
13342
|
let caretPosition = caretPositionOrRange;
|
|
@@ -21543,7 +21545,9 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
21543
21545
|
if (!range)
|
|
21544
21546
|
return seqData;
|
|
21545
21547
|
const { exclude = {}, excludePartial = {} } = options;
|
|
21546
|
-
const seqDataToUse = tidyUpSequenceData(seqData, __spreadValues({
|
|
21548
|
+
const seqDataToUse = tidyUpSequenceData(seqData, __spreadValues({
|
|
21549
|
+
doNotRemoveInvalidChars: true
|
|
21550
|
+
}, options));
|
|
21547
21551
|
annotationTypes.forEach((type) => {
|
|
21548
21552
|
delete seqDataToUse[`filtered${lodashExports.startCase(type)}`];
|
|
21549
21553
|
});
|
|
@@ -21594,9 +21598,13 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
21594
21598
|
}
|
|
21595
21599
|
});
|
|
21596
21600
|
});
|
|
21597
|
-
return tidyUpSequenceData(toRet, __spreadValues({
|
|
21601
|
+
return tidyUpSequenceData(toRet, __spreadValues({
|
|
21602
|
+
doNotRemoveInvalidChars: true
|
|
21603
|
+
}, options));
|
|
21598
21604
|
}
|
|
21599
|
-
return tidyUpSequenceData(seqDataToReturn, __spreadValues({
|
|
21605
|
+
return tidyUpSequenceData(seqDataToReturn, __spreadValues({
|
|
21606
|
+
doNotRemoveInvalidChars: true
|
|
21607
|
+
}, options));
|
|
21600
21608
|
}
|
|
21601
21609
|
__name(getSequenceDataBetweenRange, "getSequenceDataBetweenRange");
|
|
21602
21610
|
function getAnnotationsBetweenRange(annotationsToBeAdjusted, range, maxLength, shouldExcludePartial) {
|
|
@@ -21643,7 +21651,9 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
21643
21651
|
const newSeqObj = Object.assign({}, seqObj, {
|
|
21644
21652
|
sequence: getComplementSequenceString(seqObj.sequence, seqObj.isRna)
|
|
21645
21653
|
});
|
|
21646
|
-
return tidyUpSequenceData(newSeqObj, __spreadValues({
|
|
21654
|
+
return tidyUpSequenceData(newSeqObj, __spreadValues({
|
|
21655
|
+
doNotRemoveInvalidChars: true
|
|
21656
|
+
}, options));
|
|
21647
21657
|
}
|
|
21648
21658
|
__name(getComplementSequenceAndAnnotations, "getComplementSequenceAndAnnotations");
|
|
21649
21659
|
function getCutsiteType(restrictionEnzyme) {
|
|
@@ -22738,6 +22748,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
22738
22748
|
exports2.deleteSequenceDataAtRange = deleteSequenceDataAtRange;
|
|
22739
22749
|
exports2.doesEnzymeChopOutsideOfRecognitionSite = doesEnzymeChopOutsideOfRecognitionSite;
|
|
22740
22750
|
exports2.featureColors = featureColors;
|
|
22751
|
+
exports2.filterRnaString = filterRnaString;
|
|
22741
22752
|
exports2.filterSequenceString = filterSequenceString;
|
|
22742
22753
|
exports2.findNearestRangeOfSequenceOverlapToPosition = findNearestRangeOfSequenceOverlapToPosition;
|
|
22743
22754
|
exports2.findOrfsInPlasmid = findOrfsInPlasmid;
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from "./bioData";
|
|
6
6
|
|
|
7
7
|
export default function filterSequenceString(
|
|
8
|
-
sequenceString,
|
|
8
|
+
sequenceString = "",
|
|
9
9
|
{
|
|
10
10
|
additionalValidChars = "",
|
|
11
11
|
isOligo,
|
|
@@ -111,3 +111,6 @@ export function getReplaceChars({
|
|
|
111
111
|
: //just plain old dna
|
|
112
112
|
{};
|
|
113
113
|
}
|
|
114
|
+
|
|
115
|
+
export const filterRnaString = (s, o) =>
|
|
116
|
+
filterSequenceString(s, { ...o, isRna: true })[0];
|
|
@@ -15,5 +15,8 @@ export default function getComplementSequenceAndAnnotations(
|
|
|
15
15
|
const newSeqObj = Object.assign({}, seqObj, {
|
|
16
16
|
sequence: getComplementSequenceString(seqObj.sequence, seqObj.isRna)
|
|
17
17
|
});
|
|
18
|
-
return tidyUpSequenceData(newSeqObj, {
|
|
18
|
+
return tidyUpSequenceData(newSeqObj, {
|
|
19
|
+
doNotRemoveInvalidChars: true,
|
|
20
|
+
...options
|
|
21
|
+
});
|
|
19
22
|
}
|
|
@@ -16,7 +16,10 @@ export default function getSequenceDataBetweenRange(
|
|
|
16
16
|
) {
|
|
17
17
|
if (!range) return seqData;
|
|
18
18
|
const { exclude = {}, excludePartial = {} } = options;
|
|
19
|
-
const seqDataToUse = tidyUpSequenceData(seqData, {
|
|
19
|
+
const seqDataToUse = tidyUpSequenceData(seqData, {
|
|
20
|
+
doNotRemoveInvalidChars: true,
|
|
21
|
+
...options
|
|
22
|
+
});
|
|
20
23
|
annotationTypes.forEach(type => {
|
|
21
24
|
delete seqDataToUse[`filtered${startCase(type)}`];
|
|
22
25
|
});
|
|
@@ -78,10 +81,16 @@ export default function getSequenceDataBetweenRange(
|
|
|
78
81
|
}
|
|
79
82
|
});
|
|
80
83
|
});
|
|
81
|
-
return tidyUpSequenceData(toRet, {
|
|
84
|
+
return tidyUpSequenceData(toRet, {
|
|
85
|
+
doNotRemoveInvalidChars: true,
|
|
86
|
+
...options
|
|
87
|
+
});
|
|
82
88
|
}
|
|
83
89
|
|
|
84
|
-
return tidyUpSequenceData(seqDataToReturn, {
|
|
90
|
+
return tidyUpSequenceData(seqDataToReturn, {
|
|
91
|
+
doNotRemoveInvalidChars: true,
|
|
92
|
+
...options
|
|
93
|
+
});
|
|
85
94
|
}
|
|
86
95
|
|
|
87
96
|
function getAnnotationsBetweenRange(
|
package/src/index.js
CHANGED
|
@@ -51,7 +51,10 @@ export { default as aliasedEnzymesByName } from "./aliasedEnzymesByName";
|
|
|
51
51
|
export { default as defaultEnzymesByName } from "./defaultEnzymesByName";
|
|
52
52
|
export { default as generateSequenceData } from "./generateSequenceData";
|
|
53
53
|
export { default as generateAnnotations } from "./generateAnnotations";
|
|
54
|
-
export {
|
|
54
|
+
export {
|
|
55
|
+
default as filterSequenceString,
|
|
56
|
+
filterRnaString
|
|
57
|
+
} from "./filterSequenceString";
|
|
55
58
|
export { default as findNearestRangeOfSequenceOverlapToPosition } from "./findNearestRangeOfSequenceOverlapToPosition";
|
|
56
59
|
export { default as findOrfsInPlasmid } from "./findOrfsInPlasmid";
|
|
57
60
|
export { default as findSequenceMatches } from "./findSequenceMatches";
|
|
@@ -18,11 +18,14 @@ export default function insertSequenceDataAtPositionOrRange(
|
|
|
18
18
|
//when inserting new seq, n bps of the new seq should go in before the origin and the rest should be
|
|
19
19
|
//inserted at the sequence start
|
|
20
20
|
const { maintainOriginSplit } = options;
|
|
21
|
-
let existingSequenceData = tidyUpSequenceData(_existingSequenceData, {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
let existingSequenceData = tidyUpSequenceData(_existingSequenceData, {
|
|
22
|
+
doNotRemoveInvalidChars: true,
|
|
23
|
+
...options
|
|
24
|
+
});
|
|
25
|
+
const sequenceDataToInsert = tidyUpSequenceData(_sequenceDataToInsert, {
|
|
26
|
+
topLevelSeqData: existingSequenceData,
|
|
27
|
+
...options
|
|
28
|
+
});
|
|
26
29
|
const newSequenceData = cloneDeep(existingSequenceData);
|
|
27
30
|
const insertLength = sequenceDataToInsert.proteinSequence
|
|
28
31
|
? sequenceDataToInsert.proteinSequence.length * 3
|