@teselagen/sequence-utils 0.3.11 → 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 +37 -16
- package/index.mjs +37 -16
- package/index.umd.js +37 -16
- package/package.json +1 -1
- package/src/diffUtils.js +8 -3
- package/src/filterSequenceString.js +4 -1
- package/src/getComplementSequenceAndAnnotations.js +4 -1
- package/src/getReverseComplementSequenceAndAnnotations.js +5 -2
- package/src/getSequenceDataBetweenRange.js +12 -3
- package/src/index.js +4 -1
- package/src/insertSequenceDataAtPositionOrRange.js +9 -5
- package/src/rotateSequenceDataToPosition.js +4 -1
|
@@ -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,
|
|
@@ -12675,11 +12676,13 @@ __name(tidyUpSequenceData, "tidyUpSequenceData");
|
|
|
12675
12676
|
const getDiffFromSeqs = /* @__PURE__ */ __name((oldData, newData, { ignoreKeys = [] } = {}) => {
|
|
12676
12677
|
oldData = tidyUpSequenceData(oldData, {
|
|
12677
12678
|
annotationsAsObjects: true,
|
|
12678
|
-
noTranslationData: true
|
|
12679
|
+
noTranslationData: true,
|
|
12680
|
+
doNotRemoveInvalidChars: true
|
|
12679
12681
|
});
|
|
12680
12682
|
newData = tidyUpSequenceData(newData, {
|
|
12681
12683
|
annotationsAsObjects: true,
|
|
12682
|
-
noTranslationData: true
|
|
12684
|
+
noTranslationData: true,
|
|
12685
|
+
doNotRemoveInvalidChars: true
|
|
12683
12686
|
});
|
|
12684
12687
|
[oldData, newData].forEach((d) => {
|
|
12685
12688
|
[
|
|
@@ -12711,7 +12714,10 @@ const patchSeqWithDiff = /* @__PURE__ */ __name((oldData, diff, { ignoreKeys = [
|
|
|
12711
12714
|
delete diff[k];
|
|
12712
12715
|
});
|
|
12713
12716
|
return jsondiffpatch_umdExports.patch(
|
|
12714
|
-
tidyUpSequenceData(lodashExports.cloneDeep(oldData), {
|
|
12717
|
+
tidyUpSequenceData(lodashExports.cloneDeep(oldData), {
|
|
12718
|
+
annotationsAsObjects: true,
|
|
12719
|
+
doNotRemoveInvalidChars: true
|
|
12720
|
+
}),
|
|
12715
12721
|
diff
|
|
12716
12722
|
);
|
|
12717
12723
|
}, "patchSeqWithDiff");
|
|
@@ -13284,7 +13290,9 @@ function arrayRotate(arr, count) {
|
|
|
13284
13290
|
}
|
|
13285
13291
|
__name(arrayRotate, "arrayRotate");
|
|
13286
13292
|
function rotateSequenceDataToPosition(sequenceData, caretPosition, options) {
|
|
13287
|
-
const newSequenceData = tidyUpSequenceData(sequenceData,
|
|
13293
|
+
const newSequenceData = tidyUpSequenceData(sequenceData, __spreadValues({
|
|
13294
|
+
doNotRemoveInvalidChars: true
|
|
13295
|
+
}, options));
|
|
13288
13296
|
newSequenceData.sequence = rotateBpsToPosition(
|
|
13289
13297
|
newSequenceData.sequence,
|
|
13290
13298
|
caretPosition
|
|
@@ -13321,11 +13329,12 @@ function adjustAnnotationsToInsert(annotationsToBeAdjusted, insertStart, insertL
|
|
|
13321
13329
|
__name(adjustAnnotationsToInsert, "adjustAnnotationsToInsert");
|
|
13322
13330
|
function insertSequenceDataAtPositionOrRange(_sequenceDataToInsert, _existingSequenceData, caretPositionOrRange, options = {}) {
|
|
13323
13331
|
const { maintainOriginSplit } = options;
|
|
13324
|
-
let existingSequenceData = tidyUpSequenceData(_existingSequenceData,
|
|
13325
|
-
|
|
13326
|
-
|
|
13327
|
-
|
|
13328
|
-
|
|
13332
|
+
let existingSequenceData = tidyUpSequenceData(_existingSequenceData, __spreadValues({
|
|
13333
|
+
doNotRemoveInvalidChars: true
|
|
13334
|
+
}, options));
|
|
13335
|
+
const sequenceDataToInsert = tidyUpSequenceData(_sequenceDataToInsert, __spreadValues({
|
|
13336
|
+
topLevelSeqData: existingSequenceData
|
|
13337
|
+
}, options));
|
|
13329
13338
|
const newSequenceData = lodashExports.cloneDeep(existingSequenceData);
|
|
13330
13339
|
const insertLength = sequenceDataToInsert.proteinSequence ? sequenceDataToInsert.proteinSequence.length * 3 : sequenceDataToInsert.sequence.length;
|
|
13331
13340
|
let caretPosition = caretPositionOrRange;
|
|
@@ -13339,6 +13348,7 @@ function insertSequenceDataAtPositionOrRange(_sequenceDataToInsert, _existingSeq
|
|
|
13339
13348
|
return acc[type] = [];
|
|
13340
13349
|
}, {})), {
|
|
13341
13350
|
sequence: "",
|
|
13351
|
+
doNotRemoveInvalidChars: true,
|
|
13342
13352
|
proteinSequence: "",
|
|
13343
13353
|
chromatogramData: void 0
|
|
13344
13354
|
}),
|
|
@@ -21533,7 +21543,9 @@ function getSequenceDataBetweenRange(seqData, range, options = {}) {
|
|
|
21533
21543
|
if (!range)
|
|
21534
21544
|
return seqData;
|
|
21535
21545
|
const { exclude = {}, excludePartial = {} } = options;
|
|
21536
|
-
const seqDataToUse = tidyUpSequenceData(seqData,
|
|
21546
|
+
const seqDataToUse = tidyUpSequenceData(seqData, __spreadValues({
|
|
21547
|
+
doNotRemoveInvalidChars: true
|
|
21548
|
+
}, options));
|
|
21537
21549
|
annotationTypes.forEach((type) => {
|
|
21538
21550
|
delete seqDataToUse[`filtered${lodashExports.startCase(type)}`];
|
|
21539
21551
|
});
|
|
@@ -21584,9 +21596,13 @@ function getSequenceDataBetweenRange(seqData, range, options = {}) {
|
|
|
21584
21596
|
}
|
|
21585
21597
|
});
|
|
21586
21598
|
});
|
|
21587
|
-
return tidyUpSequenceData(toRet,
|
|
21599
|
+
return tidyUpSequenceData(toRet, __spreadValues({
|
|
21600
|
+
doNotRemoveInvalidChars: true
|
|
21601
|
+
}, options));
|
|
21588
21602
|
}
|
|
21589
|
-
return tidyUpSequenceData(seqDataToReturn,
|
|
21603
|
+
return tidyUpSequenceData(seqDataToReturn, __spreadValues({
|
|
21604
|
+
doNotRemoveInvalidChars: true
|
|
21605
|
+
}, options));
|
|
21590
21606
|
}
|
|
21591
21607
|
__name(getSequenceDataBetweenRange, "getSequenceDataBetweenRange");
|
|
21592
21608
|
function getAnnotationsBetweenRange(annotationsToBeAdjusted, range, maxLength, shouldExcludePartial) {
|
|
@@ -21633,7 +21649,9 @@ function getComplementSequenceAndAnnotations(pSeqObj, options = {}) {
|
|
|
21633
21649
|
const newSeqObj = Object.assign({}, seqObj, {
|
|
21634
21650
|
sequence: getComplementSequenceString(seqObj.sequence, seqObj.isRna)
|
|
21635
21651
|
});
|
|
21636
|
-
return tidyUpSequenceData(newSeqObj,
|
|
21652
|
+
return tidyUpSequenceData(newSeqObj, __spreadValues({
|
|
21653
|
+
doNotRemoveInvalidChars: true
|
|
21654
|
+
}, options));
|
|
21637
21655
|
}
|
|
21638
21656
|
__name(getComplementSequenceAndAnnotations, "getComplementSequenceAndAnnotations");
|
|
21639
21657
|
function getCutsiteType(restrictionEnzyme) {
|
|
@@ -21839,7 +21857,7 @@ __name(getReverseComplementAnnotation, "getReverseComplementAnnotation");
|
|
|
21839
21857
|
function getReverseComplementSequenceAndAnnoations(pSeqObj, options = {}) {
|
|
21840
21858
|
const seqObj = tidyUpSequenceData(
|
|
21841
21859
|
getSequenceDataBetweenRange(pSeqObj, options.range),
|
|
21842
|
-
options
|
|
21860
|
+
__spreadValues({ doNotRemoveInvalidChars: true }, options)
|
|
21843
21861
|
);
|
|
21844
21862
|
const newSeqObj = Object.assign(
|
|
21845
21863
|
{},
|
|
@@ -21859,7 +21877,9 @@ function getReverseComplementSequenceAndAnnoations(pSeqObj, options = {}) {
|
|
|
21859
21877
|
return acc;
|
|
21860
21878
|
}, {})
|
|
21861
21879
|
);
|
|
21862
|
-
return tidyUpSequenceData(newSeqObj,
|
|
21880
|
+
return tidyUpSequenceData(newSeqObj, __spreadValues({
|
|
21881
|
+
doNotRemoveInvalidChars: true
|
|
21882
|
+
}, options));
|
|
21863
21883
|
}
|
|
21864
21884
|
__name(getReverseComplementSequenceAndAnnoations, "getReverseComplementSequenceAndAnnoations");
|
|
21865
21885
|
function getReverseSequenceString(sequence) {
|
|
@@ -22726,6 +22746,7 @@ exports.degenerateRnaToAminoAcidMap = degenerateRnaToAminoAcidMap;
|
|
|
22726
22746
|
exports.deleteSequenceDataAtRange = deleteSequenceDataAtRange;
|
|
22727
22747
|
exports.doesEnzymeChopOutsideOfRecognitionSite = doesEnzymeChopOutsideOfRecognitionSite;
|
|
22728
22748
|
exports.featureColors = featureColors;
|
|
22749
|
+
exports.filterRnaString = filterRnaString;
|
|
22729
22750
|
exports.filterSequenceString = filterSequenceString;
|
|
22730
22751
|
exports.findNearestRangeOfSequenceOverlapToPosition = findNearestRangeOfSequenceOverlapToPosition;
|
|
22731
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,
|
|
@@ -12673,11 +12674,13 @@ __name(tidyUpSequenceData, "tidyUpSequenceData");
|
|
|
12673
12674
|
const getDiffFromSeqs = /* @__PURE__ */ __name((oldData, newData, { ignoreKeys = [] } = {}) => {
|
|
12674
12675
|
oldData = tidyUpSequenceData(oldData, {
|
|
12675
12676
|
annotationsAsObjects: true,
|
|
12676
|
-
noTranslationData: true
|
|
12677
|
+
noTranslationData: true,
|
|
12678
|
+
doNotRemoveInvalidChars: true
|
|
12677
12679
|
});
|
|
12678
12680
|
newData = tidyUpSequenceData(newData, {
|
|
12679
12681
|
annotationsAsObjects: true,
|
|
12680
|
-
noTranslationData: true
|
|
12682
|
+
noTranslationData: true,
|
|
12683
|
+
doNotRemoveInvalidChars: true
|
|
12681
12684
|
});
|
|
12682
12685
|
[oldData, newData].forEach((d) => {
|
|
12683
12686
|
[
|
|
@@ -12709,7 +12712,10 @@ const patchSeqWithDiff = /* @__PURE__ */ __name((oldData, diff, { ignoreKeys = [
|
|
|
12709
12712
|
delete diff[k];
|
|
12710
12713
|
});
|
|
12711
12714
|
return jsondiffpatch_umdExports.patch(
|
|
12712
|
-
tidyUpSequenceData(lodashExports.cloneDeep(oldData), {
|
|
12715
|
+
tidyUpSequenceData(lodashExports.cloneDeep(oldData), {
|
|
12716
|
+
annotationsAsObjects: true,
|
|
12717
|
+
doNotRemoveInvalidChars: true
|
|
12718
|
+
}),
|
|
12713
12719
|
diff
|
|
12714
12720
|
);
|
|
12715
12721
|
}, "patchSeqWithDiff");
|
|
@@ -13282,7 +13288,9 @@ function arrayRotate(arr, count) {
|
|
|
13282
13288
|
}
|
|
13283
13289
|
__name(arrayRotate, "arrayRotate");
|
|
13284
13290
|
function rotateSequenceDataToPosition(sequenceData, caretPosition, options) {
|
|
13285
|
-
const newSequenceData = tidyUpSequenceData(sequenceData,
|
|
13291
|
+
const newSequenceData = tidyUpSequenceData(sequenceData, __spreadValues({
|
|
13292
|
+
doNotRemoveInvalidChars: true
|
|
13293
|
+
}, options));
|
|
13286
13294
|
newSequenceData.sequence = rotateBpsToPosition(
|
|
13287
13295
|
newSequenceData.sequence,
|
|
13288
13296
|
caretPosition
|
|
@@ -13319,11 +13327,12 @@ function adjustAnnotationsToInsert(annotationsToBeAdjusted, insertStart, insertL
|
|
|
13319
13327
|
__name(adjustAnnotationsToInsert, "adjustAnnotationsToInsert");
|
|
13320
13328
|
function insertSequenceDataAtPositionOrRange(_sequenceDataToInsert, _existingSequenceData, caretPositionOrRange, options = {}) {
|
|
13321
13329
|
const { maintainOriginSplit } = options;
|
|
13322
|
-
let existingSequenceData = tidyUpSequenceData(_existingSequenceData,
|
|
13323
|
-
|
|
13324
|
-
|
|
13325
|
-
|
|
13326
|
-
|
|
13330
|
+
let existingSequenceData = tidyUpSequenceData(_existingSequenceData, __spreadValues({
|
|
13331
|
+
doNotRemoveInvalidChars: true
|
|
13332
|
+
}, options));
|
|
13333
|
+
const sequenceDataToInsert = tidyUpSequenceData(_sequenceDataToInsert, __spreadValues({
|
|
13334
|
+
topLevelSeqData: existingSequenceData
|
|
13335
|
+
}, options));
|
|
13327
13336
|
const newSequenceData = lodashExports.cloneDeep(existingSequenceData);
|
|
13328
13337
|
const insertLength = sequenceDataToInsert.proteinSequence ? sequenceDataToInsert.proteinSequence.length * 3 : sequenceDataToInsert.sequence.length;
|
|
13329
13338
|
let caretPosition = caretPositionOrRange;
|
|
@@ -13337,6 +13346,7 @@ function insertSequenceDataAtPositionOrRange(_sequenceDataToInsert, _existingSeq
|
|
|
13337
13346
|
return acc[type] = [];
|
|
13338
13347
|
}, {})), {
|
|
13339
13348
|
sequence: "",
|
|
13349
|
+
doNotRemoveInvalidChars: true,
|
|
13340
13350
|
proteinSequence: "",
|
|
13341
13351
|
chromatogramData: void 0
|
|
13342
13352
|
}),
|
|
@@ -21531,7 +21541,9 @@ function getSequenceDataBetweenRange(seqData, range, options = {}) {
|
|
|
21531
21541
|
if (!range)
|
|
21532
21542
|
return seqData;
|
|
21533
21543
|
const { exclude = {}, excludePartial = {} } = options;
|
|
21534
|
-
const seqDataToUse = tidyUpSequenceData(seqData,
|
|
21544
|
+
const seqDataToUse = tidyUpSequenceData(seqData, __spreadValues({
|
|
21545
|
+
doNotRemoveInvalidChars: true
|
|
21546
|
+
}, options));
|
|
21535
21547
|
annotationTypes.forEach((type) => {
|
|
21536
21548
|
delete seqDataToUse[`filtered${lodashExports.startCase(type)}`];
|
|
21537
21549
|
});
|
|
@@ -21582,9 +21594,13 @@ function getSequenceDataBetweenRange(seqData, range, options = {}) {
|
|
|
21582
21594
|
}
|
|
21583
21595
|
});
|
|
21584
21596
|
});
|
|
21585
|
-
return tidyUpSequenceData(toRet,
|
|
21597
|
+
return tidyUpSequenceData(toRet, __spreadValues({
|
|
21598
|
+
doNotRemoveInvalidChars: true
|
|
21599
|
+
}, options));
|
|
21586
21600
|
}
|
|
21587
|
-
return tidyUpSequenceData(seqDataToReturn,
|
|
21601
|
+
return tidyUpSequenceData(seqDataToReturn, __spreadValues({
|
|
21602
|
+
doNotRemoveInvalidChars: true
|
|
21603
|
+
}, options));
|
|
21588
21604
|
}
|
|
21589
21605
|
__name(getSequenceDataBetweenRange, "getSequenceDataBetweenRange");
|
|
21590
21606
|
function getAnnotationsBetweenRange(annotationsToBeAdjusted, range, maxLength, shouldExcludePartial) {
|
|
@@ -21631,7 +21647,9 @@ function getComplementSequenceAndAnnotations(pSeqObj, options = {}) {
|
|
|
21631
21647
|
const newSeqObj = Object.assign({}, seqObj, {
|
|
21632
21648
|
sequence: getComplementSequenceString(seqObj.sequence, seqObj.isRna)
|
|
21633
21649
|
});
|
|
21634
|
-
return tidyUpSequenceData(newSeqObj,
|
|
21650
|
+
return tidyUpSequenceData(newSeqObj, __spreadValues({
|
|
21651
|
+
doNotRemoveInvalidChars: true
|
|
21652
|
+
}, options));
|
|
21635
21653
|
}
|
|
21636
21654
|
__name(getComplementSequenceAndAnnotations, "getComplementSequenceAndAnnotations");
|
|
21637
21655
|
function getCutsiteType(restrictionEnzyme) {
|
|
@@ -21837,7 +21855,7 @@ __name(getReverseComplementAnnotation, "getReverseComplementAnnotation");
|
|
|
21837
21855
|
function getReverseComplementSequenceAndAnnoations(pSeqObj, options = {}) {
|
|
21838
21856
|
const seqObj = tidyUpSequenceData(
|
|
21839
21857
|
getSequenceDataBetweenRange(pSeqObj, options.range),
|
|
21840
|
-
options
|
|
21858
|
+
__spreadValues({ doNotRemoveInvalidChars: true }, options)
|
|
21841
21859
|
);
|
|
21842
21860
|
const newSeqObj = Object.assign(
|
|
21843
21861
|
{},
|
|
@@ -21857,7 +21875,9 @@ function getReverseComplementSequenceAndAnnoations(pSeqObj, options = {}) {
|
|
|
21857
21875
|
return acc;
|
|
21858
21876
|
}, {})
|
|
21859
21877
|
);
|
|
21860
|
-
return tidyUpSequenceData(newSeqObj,
|
|
21878
|
+
return tidyUpSequenceData(newSeqObj, __spreadValues({
|
|
21879
|
+
doNotRemoveInvalidChars: true
|
|
21880
|
+
}, options));
|
|
21861
21881
|
}
|
|
21862
21882
|
__name(getReverseComplementSequenceAndAnnoations, "getReverseComplementSequenceAndAnnoations");
|
|
21863
21883
|
function getReverseSequenceString(sequence) {
|
|
@@ -22725,6 +22745,7 @@ export {
|
|
|
22725
22745
|
deleteSequenceDataAtRange,
|
|
22726
22746
|
doesEnzymeChopOutsideOfRecognitionSite,
|
|
22727
22747
|
featureColors,
|
|
22748
|
+
filterRnaString,
|
|
22728
22749
|
filterSequenceString,
|
|
22729
22750
|
findNearestRangeOfSequenceOverlapToPosition,
|
|
22730
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,
|
|
@@ -12677,11 +12678,13 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
12677
12678
|
const getDiffFromSeqs = /* @__PURE__ */ __name((oldData, newData, { ignoreKeys = [] } = {}) => {
|
|
12678
12679
|
oldData = tidyUpSequenceData(oldData, {
|
|
12679
12680
|
annotationsAsObjects: true,
|
|
12680
|
-
noTranslationData: true
|
|
12681
|
+
noTranslationData: true,
|
|
12682
|
+
doNotRemoveInvalidChars: true
|
|
12681
12683
|
});
|
|
12682
12684
|
newData = tidyUpSequenceData(newData, {
|
|
12683
12685
|
annotationsAsObjects: true,
|
|
12684
|
-
noTranslationData: true
|
|
12686
|
+
noTranslationData: true,
|
|
12687
|
+
doNotRemoveInvalidChars: true
|
|
12685
12688
|
});
|
|
12686
12689
|
[oldData, newData].forEach((d) => {
|
|
12687
12690
|
[
|
|
@@ -12713,7 +12716,10 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
12713
12716
|
delete diff[k];
|
|
12714
12717
|
});
|
|
12715
12718
|
return jsondiffpatch_umdExports.patch(
|
|
12716
|
-
tidyUpSequenceData(lodashExports.cloneDeep(oldData), {
|
|
12719
|
+
tidyUpSequenceData(lodashExports.cloneDeep(oldData), {
|
|
12720
|
+
annotationsAsObjects: true,
|
|
12721
|
+
doNotRemoveInvalidChars: true
|
|
12722
|
+
}),
|
|
12717
12723
|
diff
|
|
12718
12724
|
);
|
|
12719
12725
|
}, "patchSeqWithDiff");
|
|
@@ -13286,7 +13292,9 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
13286
13292
|
}
|
|
13287
13293
|
__name(arrayRotate, "arrayRotate");
|
|
13288
13294
|
function rotateSequenceDataToPosition(sequenceData, caretPosition, options) {
|
|
13289
|
-
const newSequenceData = tidyUpSequenceData(sequenceData,
|
|
13295
|
+
const newSequenceData = tidyUpSequenceData(sequenceData, __spreadValues({
|
|
13296
|
+
doNotRemoveInvalidChars: true
|
|
13297
|
+
}, options));
|
|
13290
13298
|
newSequenceData.sequence = rotateBpsToPosition(
|
|
13291
13299
|
newSequenceData.sequence,
|
|
13292
13300
|
caretPosition
|
|
@@ -13323,11 +13331,12 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
13323
13331
|
__name(adjustAnnotationsToInsert, "adjustAnnotationsToInsert");
|
|
13324
13332
|
function insertSequenceDataAtPositionOrRange(_sequenceDataToInsert, _existingSequenceData, caretPositionOrRange, options = {}) {
|
|
13325
13333
|
const { maintainOriginSplit } = options;
|
|
13326
|
-
let existingSequenceData = tidyUpSequenceData(_existingSequenceData,
|
|
13327
|
-
|
|
13328
|
-
|
|
13329
|
-
|
|
13330
|
-
|
|
13334
|
+
let existingSequenceData = tidyUpSequenceData(_existingSequenceData, __spreadValues({
|
|
13335
|
+
doNotRemoveInvalidChars: true
|
|
13336
|
+
}, options));
|
|
13337
|
+
const sequenceDataToInsert = tidyUpSequenceData(_sequenceDataToInsert, __spreadValues({
|
|
13338
|
+
topLevelSeqData: existingSequenceData
|
|
13339
|
+
}, options));
|
|
13331
13340
|
const newSequenceData = lodashExports.cloneDeep(existingSequenceData);
|
|
13332
13341
|
const insertLength = sequenceDataToInsert.proteinSequence ? sequenceDataToInsert.proteinSequence.length * 3 : sequenceDataToInsert.sequence.length;
|
|
13333
13342
|
let caretPosition = caretPositionOrRange;
|
|
@@ -13341,6 +13350,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
13341
13350
|
return acc[type] = [];
|
|
13342
13351
|
}, {})), {
|
|
13343
13352
|
sequence: "",
|
|
13353
|
+
doNotRemoveInvalidChars: true,
|
|
13344
13354
|
proteinSequence: "",
|
|
13345
13355
|
chromatogramData: void 0
|
|
13346
13356
|
}),
|
|
@@ -21535,7 +21545,9 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
21535
21545
|
if (!range)
|
|
21536
21546
|
return seqData;
|
|
21537
21547
|
const { exclude = {}, excludePartial = {} } = options;
|
|
21538
|
-
const seqDataToUse = tidyUpSequenceData(seqData,
|
|
21548
|
+
const seqDataToUse = tidyUpSequenceData(seqData, __spreadValues({
|
|
21549
|
+
doNotRemoveInvalidChars: true
|
|
21550
|
+
}, options));
|
|
21539
21551
|
annotationTypes.forEach((type) => {
|
|
21540
21552
|
delete seqDataToUse[`filtered${lodashExports.startCase(type)}`];
|
|
21541
21553
|
});
|
|
@@ -21586,9 +21598,13 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
21586
21598
|
}
|
|
21587
21599
|
});
|
|
21588
21600
|
});
|
|
21589
|
-
return tidyUpSequenceData(toRet,
|
|
21601
|
+
return tidyUpSequenceData(toRet, __spreadValues({
|
|
21602
|
+
doNotRemoveInvalidChars: true
|
|
21603
|
+
}, options));
|
|
21590
21604
|
}
|
|
21591
|
-
return tidyUpSequenceData(seqDataToReturn,
|
|
21605
|
+
return tidyUpSequenceData(seqDataToReturn, __spreadValues({
|
|
21606
|
+
doNotRemoveInvalidChars: true
|
|
21607
|
+
}, options));
|
|
21592
21608
|
}
|
|
21593
21609
|
__name(getSequenceDataBetweenRange, "getSequenceDataBetweenRange");
|
|
21594
21610
|
function getAnnotationsBetweenRange(annotationsToBeAdjusted, range, maxLength, shouldExcludePartial) {
|
|
@@ -21635,7 +21651,9 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
21635
21651
|
const newSeqObj = Object.assign({}, seqObj, {
|
|
21636
21652
|
sequence: getComplementSequenceString(seqObj.sequence, seqObj.isRna)
|
|
21637
21653
|
});
|
|
21638
|
-
return tidyUpSequenceData(newSeqObj,
|
|
21654
|
+
return tidyUpSequenceData(newSeqObj, __spreadValues({
|
|
21655
|
+
doNotRemoveInvalidChars: true
|
|
21656
|
+
}, options));
|
|
21639
21657
|
}
|
|
21640
21658
|
__name(getComplementSequenceAndAnnotations, "getComplementSequenceAndAnnotations");
|
|
21641
21659
|
function getCutsiteType(restrictionEnzyme) {
|
|
@@ -21841,7 +21859,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
21841
21859
|
function getReverseComplementSequenceAndAnnoations(pSeqObj, options = {}) {
|
|
21842
21860
|
const seqObj = tidyUpSequenceData(
|
|
21843
21861
|
getSequenceDataBetweenRange(pSeqObj, options.range),
|
|
21844
|
-
options
|
|
21862
|
+
__spreadValues({ doNotRemoveInvalidChars: true }, options)
|
|
21845
21863
|
);
|
|
21846
21864
|
const newSeqObj = Object.assign(
|
|
21847
21865
|
{},
|
|
@@ -21861,7 +21879,9 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
21861
21879
|
return acc;
|
|
21862
21880
|
}, {})
|
|
21863
21881
|
);
|
|
21864
|
-
return tidyUpSequenceData(newSeqObj,
|
|
21882
|
+
return tidyUpSequenceData(newSeqObj, __spreadValues({
|
|
21883
|
+
doNotRemoveInvalidChars: true
|
|
21884
|
+
}, options));
|
|
21865
21885
|
}
|
|
21866
21886
|
__name(getReverseComplementSequenceAndAnnoations, "getReverseComplementSequenceAndAnnoations");
|
|
21867
21887
|
function getReverseSequenceString(sequence) {
|
|
@@ -22728,6 +22748,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
22728
22748
|
exports2.deleteSequenceDataAtRange = deleteSequenceDataAtRange;
|
|
22729
22749
|
exports2.doesEnzymeChopOutsideOfRecognitionSite = doesEnzymeChopOutsideOfRecognitionSite;
|
|
22730
22750
|
exports2.featureColors = featureColors;
|
|
22751
|
+
exports2.filterRnaString = filterRnaString;
|
|
22731
22752
|
exports2.filterSequenceString = filterSequenceString;
|
|
22732
22753
|
exports2.findNearestRangeOfSequenceOverlapToPosition = findNearestRangeOfSequenceOverlapToPosition;
|
|
22733
22754
|
exports2.findOrfsInPlasmid = findOrfsInPlasmid;
|
package/package.json
CHANGED
package/src/diffUtils.js
CHANGED
|
@@ -6,11 +6,13 @@ import tidyUpSequenceData from "./tidyUpSequenceData";
|
|
|
6
6
|
const getDiffFromSeqs = (oldData, newData, { ignoreKeys = [] } = {}) => {
|
|
7
7
|
oldData = tidyUpSequenceData(oldData, {
|
|
8
8
|
annotationsAsObjects: true,
|
|
9
|
-
noTranslationData: true
|
|
9
|
+
noTranslationData: true,
|
|
10
|
+
doNotRemoveInvalidChars: true
|
|
10
11
|
});
|
|
11
12
|
newData = tidyUpSequenceData(newData, {
|
|
12
13
|
annotationsAsObjects: true,
|
|
13
|
-
noTranslationData: true
|
|
14
|
+
noTranslationData: true,
|
|
15
|
+
doNotRemoveInvalidChars: true
|
|
14
16
|
});
|
|
15
17
|
|
|
16
18
|
[oldData, newData].forEach(d => {
|
|
@@ -47,7 +49,10 @@ const patchSeqWithDiff = (oldData, diff, { ignoreKeys = [] } = {}) => {
|
|
|
47
49
|
delete diff[k];
|
|
48
50
|
});
|
|
49
51
|
return patch(
|
|
50
|
-
tidyUpSequenceData(cloneDeep(oldData), {
|
|
52
|
+
tidyUpSequenceData(cloneDeep(oldData), {
|
|
53
|
+
annotationsAsObjects: true,
|
|
54
|
+
doNotRemoveInvalidChars: true
|
|
55
|
+
}),
|
|
51
56
|
diff
|
|
52
57
|
);
|
|
53
58
|
};
|
|
@@ -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
|
}
|
|
@@ -13,7 +13,7 @@ export default function getReverseComplementSequenceAndAnnoations(
|
|
|
13
13
|
) {
|
|
14
14
|
const seqObj = tidyUpSequenceData(
|
|
15
15
|
getSequenceDataBetweenRange(pSeqObj, options.range),
|
|
16
|
-
options
|
|
16
|
+
{ doNotRemoveInvalidChars: true, ...options }
|
|
17
17
|
);
|
|
18
18
|
const newSeqObj = Object.assign(
|
|
19
19
|
{},
|
|
@@ -33,5 +33,8 @@ export default function getReverseComplementSequenceAndAnnoations(
|
|
|
33
33
|
return acc;
|
|
34
34
|
}, {})
|
|
35
35
|
);
|
|
36
|
-
return tidyUpSequenceData(newSeqObj,
|
|
36
|
+
return tidyUpSequenceData(newSeqObj, {
|
|
37
|
+
doNotRemoveInvalidChars: true,
|
|
38
|
+
...options
|
|
39
|
+
});
|
|
37
40
|
}
|
|
@@ -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
|
|
@@ -48,6 +51,7 @@ export default function insertSequenceDataAtPositionOrRange(
|
|
|
48
51
|
return (acc[type] = []);
|
|
49
52
|
}, {}),
|
|
50
53
|
sequence: "",
|
|
54
|
+
doNotRemoveInvalidChars: true,
|
|
51
55
|
proteinSequence: "",
|
|
52
56
|
chromatogramData: undefined
|
|
53
57
|
},
|
|
@@ -9,7 +9,10 @@ export default function rotateSequenceDataToPosition(
|
|
|
9
9
|
caretPosition,
|
|
10
10
|
options
|
|
11
11
|
) {
|
|
12
|
-
const newSequenceData = tidyUpSequenceData(sequenceData,
|
|
12
|
+
const newSequenceData = tidyUpSequenceData(sequenceData, {
|
|
13
|
+
doNotRemoveInvalidChars: true,
|
|
14
|
+
...options
|
|
15
|
+
});
|
|
13
16
|
|
|
14
17
|
//update the sequence
|
|
15
18
|
newSequenceData.sequence = rotateBpsToPosition(
|