@teselagen/sequence-utils 0.3.14 → 0.3.15
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/getAminoAcidStringFromSequenceString.d.ts +3 -1
- package/index.js +10 -6
- package/index.mjs +10 -6
- package/index.umd.js +10 -6
- package/package.json +1 -1
- package/src/findSequenceMatches.js +7 -3
- package/src/findSequenceMatches.test.js +6 -6
- package/src/getAminoAcidStringFromSequenceString.js +2 -2
package/index.js
CHANGED
|
@@ -21349,7 +21349,7 @@ function escapeStringRegexp(string) {
|
|
|
21349
21349
|
return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
|
|
21350
21350
|
}
|
|
21351
21351
|
__name(escapeStringRegexp, "escapeStringRegexp");
|
|
21352
|
-
function getAminoAcidStringFromSequenceString(sequenceString) {
|
|
21352
|
+
function getAminoAcidStringFromSequenceString(sequenceString, { doNotExcludeAsterisk } = {}) {
|
|
21353
21353
|
const aminoAcidsPerBase = getAminoAcidDataForEachBaseOfDna(
|
|
21354
21354
|
sequenceString,
|
|
21355
21355
|
true
|
|
@@ -21360,7 +21360,7 @@ function getAminoAcidStringFromSequenceString(sequenceString) {
|
|
|
21360
21360
|
if (!aa.fullCodon) {
|
|
21361
21361
|
return;
|
|
21362
21362
|
}
|
|
21363
|
-
if (index
|
|
21363
|
+
if (!doNotExcludeAsterisk && index >= aminoAcidsPerBase.length - 3 && aa.aminoAcid.value === "*") {
|
|
21364
21364
|
return;
|
|
21365
21365
|
}
|
|
21366
21366
|
aaArray[aa.aminoAcidIndex] = aa.aminoAcid.value;
|
|
@@ -21417,18 +21417,22 @@ function findSequenceMatchesTopStrand(sequence, searchString, options = {}) {
|
|
|
21417
21417
|
if (isProteinSearch) {
|
|
21418
21418
|
sequencesToCheck = [
|
|
21419
21419
|
{
|
|
21420
|
-
seqToCheck: getAminoAcidStringFromSequenceString(sequenceToUse
|
|
21420
|
+
seqToCheck: getAminoAcidStringFromSequenceString(sequenceToUse, {
|
|
21421
|
+
doNotExcludeAsterisk: true
|
|
21422
|
+
}),
|
|
21421
21423
|
offset: 0
|
|
21422
21424
|
},
|
|
21423
21425
|
{
|
|
21424
21426
|
seqToCheck: getAminoAcidStringFromSequenceString(
|
|
21425
|
-
sequenceToUse.substr(1)
|
|
21427
|
+
sequenceToUse.substr(1),
|
|
21428
|
+
{ doNotExcludeAsterisk: true }
|
|
21426
21429
|
),
|
|
21427
21430
|
offset: 1
|
|
21428
21431
|
},
|
|
21429
21432
|
{
|
|
21430
21433
|
seqToCheck: getAminoAcidStringFromSequenceString(
|
|
21431
|
-
sequenceToUse.substr(2)
|
|
21434
|
+
sequenceToUse.substr(2),
|
|
21435
|
+
{ doNotExcludeAsterisk: true }
|
|
21432
21436
|
),
|
|
21433
21437
|
offset: 2
|
|
21434
21438
|
}
|
|
@@ -21522,7 +21526,7 @@ function getCodonRangeForAASliver(aminoAcidPositionInSequence, aminoAcidSliver,
|
|
|
21522
21526
|
}
|
|
21523
21527
|
__name(getCodonRangeForAASliver, "getCodonRangeForAASliver");
|
|
21524
21528
|
function getComplementAminoAcidStringFromSequenceString(sequenceString) {
|
|
21525
|
-
const aaString = getAminoAcidStringFromSequenceString(sequenceString);
|
|
21529
|
+
const aaString = getAminoAcidStringFromSequenceString(sequenceString, true);
|
|
21526
21530
|
return aaString.split("").reverse().join("");
|
|
21527
21531
|
}
|
|
21528
21532
|
__name(getComplementAminoAcidStringFromSequenceString, "getComplementAminoAcidStringFromSequenceString");
|
package/index.mjs
CHANGED
|
@@ -21347,7 +21347,7 @@ function escapeStringRegexp(string) {
|
|
|
21347
21347
|
return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
|
|
21348
21348
|
}
|
|
21349
21349
|
__name(escapeStringRegexp, "escapeStringRegexp");
|
|
21350
|
-
function getAminoAcidStringFromSequenceString(sequenceString) {
|
|
21350
|
+
function getAminoAcidStringFromSequenceString(sequenceString, { doNotExcludeAsterisk } = {}) {
|
|
21351
21351
|
const aminoAcidsPerBase = getAminoAcidDataForEachBaseOfDna(
|
|
21352
21352
|
sequenceString,
|
|
21353
21353
|
true
|
|
@@ -21358,7 +21358,7 @@ function getAminoAcidStringFromSequenceString(sequenceString) {
|
|
|
21358
21358
|
if (!aa.fullCodon) {
|
|
21359
21359
|
return;
|
|
21360
21360
|
}
|
|
21361
|
-
if (index
|
|
21361
|
+
if (!doNotExcludeAsterisk && index >= aminoAcidsPerBase.length - 3 && aa.aminoAcid.value === "*") {
|
|
21362
21362
|
return;
|
|
21363
21363
|
}
|
|
21364
21364
|
aaArray[aa.aminoAcidIndex] = aa.aminoAcid.value;
|
|
@@ -21415,18 +21415,22 @@ function findSequenceMatchesTopStrand(sequence, searchString, options = {}) {
|
|
|
21415
21415
|
if (isProteinSearch) {
|
|
21416
21416
|
sequencesToCheck = [
|
|
21417
21417
|
{
|
|
21418
|
-
seqToCheck: getAminoAcidStringFromSequenceString(sequenceToUse
|
|
21418
|
+
seqToCheck: getAminoAcidStringFromSequenceString(sequenceToUse, {
|
|
21419
|
+
doNotExcludeAsterisk: true
|
|
21420
|
+
}),
|
|
21419
21421
|
offset: 0
|
|
21420
21422
|
},
|
|
21421
21423
|
{
|
|
21422
21424
|
seqToCheck: getAminoAcidStringFromSequenceString(
|
|
21423
|
-
sequenceToUse.substr(1)
|
|
21425
|
+
sequenceToUse.substr(1),
|
|
21426
|
+
{ doNotExcludeAsterisk: true }
|
|
21424
21427
|
),
|
|
21425
21428
|
offset: 1
|
|
21426
21429
|
},
|
|
21427
21430
|
{
|
|
21428
21431
|
seqToCheck: getAminoAcidStringFromSequenceString(
|
|
21429
|
-
sequenceToUse.substr(2)
|
|
21432
|
+
sequenceToUse.substr(2),
|
|
21433
|
+
{ doNotExcludeAsterisk: true }
|
|
21430
21434
|
),
|
|
21431
21435
|
offset: 2
|
|
21432
21436
|
}
|
|
@@ -21520,7 +21524,7 @@ function getCodonRangeForAASliver(aminoAcidPositionInSequence, aminoAcidSliver,
|
|
|
21520
21524
|
}
|
|
21521
21525
|
__name(getCodonRangeForAASliver, "getCodonRangeForAASliver");
|
|
21522
21526
|
function getComplementAminoAcidStringFromSequenceString(sequenceString) {
|
|
21523
|
-
const aaString = getAminoAcidStringFromSequenceString(sequenceString);
|
|
21527
|
+
const aaString = getAminoAcidStringFromSequenceString(sequenceString, true);
|
|
21524
21528
|
return aaString.split("").reverse().join("");
|
|
21525
21529
|
}
|
|
21526
21530
|
__name(getComplementAminoAcidStringFromSequenceString, "getComplementAminoAcidStringFromSequenceString");
|
package/index.umd.js
CHANGED
|
@@ -21351,7 +21351,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
21351
21351
|
return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
|
|
21352
21352
|
}
|
|
21353
21353
|
__name(escapeStringRegexp, "escapeStringRegexp");
|
|
21354
|
-
function getAminoAcidStringFromSequenceString(sequenceString) {
|
|
21354
|
+
function getAminoAcidStringFromSequenceString(sequenceString, { doNotExcludeAsterisk } = {}) {
|
|
21355
21355
|
const aminoAcidsPerBase = getAminoAcidDataForEachBaseOfDna(
|
|
21356
21356
|
sequenceString,
|
|
21357
21357
|
true
|
|
@@ -21362,7 +21362,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
21362
21362
|
if (!aa.fullCodon) {
|
|
21363
21363
|
return;
|
|
21364
21364
|
}
|
|
21365
|
-
if (index
|
|
21365
|
+
if (!doNotExcludeAsterisk && index >= aminoAcidsPerBase.length - 3 && aa.aminoAcid.value === "*") {
|
|
21366
21366
|
return;
|
|
21367
21367
|
}
|
|
21368
21368
|
aaArray[aa.aminoAcidIndex] = aa.aminoAcid.value;
|
|
@@ -21419,18 +21419,22 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
21419
21419
|
if (isProteinSearch) {
|
|
21420
21420
|
sequencesToCheck = [
|
|
21421
21421
|
{
|
|
21422
|
-
seqToCheck: getAminoAcidStringFromSequenceString(sequenceToUse
|
|
21422
|
+
seqToCheck: getAminoAcidStringFromSequenceString(sequenceToUse, {
|
|
21423
|
+
doNotExcludeAsterisk: true
|
|
21424
|
+
}),
|
|
21423
21425
|
offset: 0
|
|
21424
21426
|
},
|
|
21425
21427
|
{
|
|
21426
21428
|
seqToCheck: getAminoAcidStringFromSequenceString(
|
|
21427
|
-
sequenceToUse.substr(1)
|
|
21429
|
+
sequenceToUse.substr(1),
|
|
21430
|
+
{ doNotExcludeAsterisk: true }
|
|
21428
21431
|
),
|
|
21429
21432
|
offset: 1
|
|
21430
21433
|
},
|
|
21431
21434
|
{
|
|
21432
21435
|
seqToCheck: getAminoAcidStringFromSequenceString(
|
|
21433
|
-
sequenceToUse.substr(2)
|
|
21436
|
+
sequenceToUse.substr(2),
|
|
21437
|
+
{ doNotExcludeAsterisk: true }
|
|
21434
21438
|
),
|
|
21435
21439
|
offset: 2
|
|
21436
21440
|
}
|
|
@@ -21524,7 +21528,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
21524
21528
|
}
|
|
21525
21529
|
__name(getCodonRangeForAASliver, "getCodonRangeForAASliver");
|
|
21526
21530
|
function getComplementAminoAcidStringFromSequenceString(sequenceString) {
|
|
21527
|
-
const aaString = getAminoAcidStringFromSequenceString(sequenceString);
|
|
21531
|
+
const aaString = getAminoAcidStringFromSequenceString(sequenceString, true);
|
|
21528
21532
|
return aaString.split("").reverse().join("");
|
|
21529
21533
|
}
|
|
21530
21534
|
__name(getComplementAminoAcidStringFromSequenceString, "getComplementAminoAcidStringFromSequenceString");
|
package/package.json
CHANGED
|
@@ -64,18 +64,22 @@ function findSequenceMatchesTopStrand(sequence, searchString, options = {}) {
|
|
|
64
64
|
if (isProteinSearch) {
|
|
65
65
|
sequencesToCheck = [
|
|
66
66
|
{
|
|
67
|
-
seqToCheck: getAminoAcidStringFromSequenceString(sequenceToUse
|
|
67
|
+
seqToCheck: getAminoAcidStringFromSequenceString(sequenceToUse, {
|
|
68
|
+
doNotExcludeAsterisk: true
|
|
69
|
+
}),
|
|
68
70
|
offset: 0
|
|
69
71
|
},
|
|
70
72
|
{
|
|
71
73
|
seqToCheck: getAminoAcidStringFromSequenceString(
|
|
72
|
-
sequenceToUse.substr(1)
|
|
74
|
+
sequenceToUse.substr(1),
|
|
75
|
+
{ doNotExcludeAsterisk: true }
|
|
73
76
|
),
|
|
74
77
|
offset: 1
|
|
75
78
|
},
|
|
76
79
|
{
|
|
77
80
|
seqToCheck: getAminoAcidStringFromSequenceString(
|
|
78
|
-
sequenceToUse.substr(2)
|
|
81
|
+
sequenceToUse.substr(2),
|
|
82
|
+
{ doNotExcludeAsterisk: true }
|
|
79
83
|
),
|
|
80
84
|
offset: 2
|
|
81
85
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import findSequenceMatches from "./findSequenceMatches";
|
|
2
2
|
|
|
3
3
|
describe("findSequenceMatches", () => {
|
|
4
|
-
it(
|
|
4
|
+
it('ambiguous protein sequence with asterisk as stop codon', () => {
|
|
5
5
|
expect(
|
|
6
6
|
findSequenceMatches("mmhlrl*", "Mxxlrl*", {
|
|
7
7
|
isAmbiguous: true,
|
|
@@ -29,7 +29,7 @@ describe("findSequenceMatches", () => {
|
|
|
29
29
|
}
|
|
30
30
|
]);
|
|
31
31
|
});
|
|
32
|
-
it(
|
|
32
|
+
it('protein sequence with asterisk as stop codon', () => {
|
|
33
33
|
expect(
|
|
34
34
|
findSequenceMatches("mmhlrl*", "mMh", {
|
|
35
35
|
isProteinSequence: true /* isProteinSearch: true */
|
|
@@ -132,11 +132,11 @@ describe("findSequenceMatches", () => {
|
|
|
132
132
|
const matches = findSequenceMatches("atg", "*", { isAmbiguous: true });
|
|
133
133
|
expect(matches).toEqual([]);
|
|
134
134
|
});
|
|
135
|
-
it(
|
|
135
|
+
it('ambiguous, dna searches with asterisk', () => {
|
|
136
136
|
const matches = findSequenceMatches("atg", "", { isAmbiguous: true });
|
|
137
137
|
expect(matches).toEqual([]);
|
|
138
138
|
});
|
|
139
|
-
it(
|
|
139
|
+
it('AA with asterisk as stop codon in atgtaa', () => {
|
|
140
140
|
expect(
|
|
141
141
|
findSequenceMatches("atgtaa", "M*", { isProteinSearch: true })
|
|
142
142
|
).toEqual([
|
|
@@ -146,7 +146,7 @@ describe("findSequenceMatches", () => {
|
|
|
146
146
|
}
|
|
147
147
|
]);
|
|
148
148
|
});
|
|
149
|
-
it(
|
|
149
|
+
it('AA with asterisk as stop codon in atgtaaccc', () => {
|
|
150
150
|
expect(
|
|
151
151
|
findSequenceMatches("atgtaaccc", "M**", { isProteinSearch: true })
|
|
152
152
|
).toEqual([]);
|
|
@@ -164,7 +164,7 @@ describe("findSequenceMatches", () => {
|
|
|
164
164
|
}
|
|
165
165
|
]);
|
|
166
166
|
});
|
|
167
|
-
it(
|
|
167
|
+
it('works with ambiguous AA with asterisk in search string', () => {
|
|
168
168
|
expect(
|
|
169
169
|
findSequenceMatches("atgtaa", "M*", {
|
|
170
170
|
isProteinSearch: true,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import getAminoAcidDataForEachBaseOfDna from "./getAminoAcidDataForEachBaseOfDna";
|
|
2
2
|
|
|
3
|
-
export default function getAminoAcidStringFromSequenceString(sequenceString) {
|
|
3
|
+
export default function getAminoAcidStringFromSequenceString(sequenceString, { doNotExcludeAsterisk } = {}) {
|
|
4
4
|
const aminoAcidsPerBase = getAminoAcidDataForEachBaseOfDna(
|
|
5
5
|
sequenceString,
|
|
6
6
|
true
|
|
@@ -12,7 +12,7 @@ export default function getAminoAcidStringFromSequenceString(sequenceString) {
|
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
14
|
// Check if the current amino acid is the last in the sequence and is a stop codon
|
|
15
|
-
if (index
|
|
15
|
+
if (!doNotExcludeAsterisk && index >= aminoAcidsPerBase.length - 3 && aa.aminoAcid.value === '*') {
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
18
18
|
aaArray[aa.aminoAcidIndex] = aa.aminoAcid.value;
|