@teselagen/sequence-utils 0.3.6 → 0.3.8
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 +89 -0
- package/bioData.d.ts +0 -339
- package/index.d.ts +7 -7
- package/index.js +238 -384
- package/index.mjs +238 -384
- package/index.umd.js +238 -384
- package/package.json +2 -3
- package/src/addGapsToSeqReads.js +2 -2
- package/src/adjustAnnotationsToInsert.js +3 -3
- package/src/adjustBpsToReplaceOrInsert.js +3 -3
- package/src/adjustBpsToReplaceOrInsert.test.js +0 -1
- package/src/aminoAcidToDnaRna.test.js +1 -1
- package/src/annotateSingleSeq.js +1 -1
- package/src/annotateSingleSeq.test.js +1 -4
- package/src/autoAnnotate.js +5 -2
- package/src/autoAnnotate.test.js +6 -30
- package/src/bioData.js +0 -365
- package/src/calculateNebTa.js +1 -1
- package/src/calculateNebTm.js +1 -1
- package/src/calculatePercentGC.js +2 -2
- package/src/calculateTm.js +19 -102
- package/src/computeDigestFragments.js +7 -4
- package/src/computeDigestFragments.test.js +1 -1
- package/src/condensePairwiseAlignmentDifferences.js +1 -1
- package/src/convertAACaretPositionOrRangeToDna.js +1 -1
- package/src/convertDnaCaretPositionOrRangeToAA.js +1 -1
- package/src/cutSequenceByRestrictionEnzyme.js +3 -3
- package/src/cutSequenceByRestrictionEnzyme.test.js +0 -1
- package/src/degenerateDnaToAminoAcidMap.js +1 -1
- package/src/degenerateRnaToAminoAcidMap.js +1 -1
- package/src/deleteSequenceDataAtRange.js +1 -1
- package/src/deleteSequenceDataAtRange.test.js +23 -9
- package/src/diffUtils.js +4 -4
- package/src/diffUtils.test.js +2 -2
- package/src/doesEnzymeChopOutsideOfRecognitionSite.js +1 -1
- package/src/doesEnzymeChopOutsideOfRecognitionSite.test.js +0 -2
- package/src/featureTypesAndColors.js +5 -5
- package/src/featureTypesAndColors.test.js +1 -1
- package/src/filterAminoAcidSequenceString.js +4 -7
- package/src/filterAminoAcidSequenceString.test.js +3 -1
- package/src/filterSequenceString.js +5 -3
- package/src/findNearestRangeOfSequenceOverlapToPosition.js +1 -1
- package/src/findOrfsInPlasmid.js +1 -1
- package/src/findSequenceMatches.js +9 -10
- package/src/generateAnnotations.js +1 -1
- package/src/generateSequenceData.js +1 -1
- package/src/generateSequenceData.test.js +1 -1
- package/src/getAllInsertionsInSeqReads.js +1 -1
- package/src/getAminoAcidDataForEachBaseOfDna.js +2 -2
- package/src/getAminoAcidDataForEachBaseOfDna.test.js +0 -2
- package/src/getAminoAcidFromSequenceTriplet.js +1 -1
- package/src/getAminoAcidStringFromSequenceString.js +1 -1
- package/src/getCodonRangeForAASliver.js +1 -1
- package/src/getComplementAminoAcidStringFromSequenceString.js +2 -5
- package/src/getComplementSequenceAndAnnotations.js +1 -2
- package/src/getComplementSequenceString.js +5 -3
- package/src/getComplementSequenceString.test.js +6 -6
- package/src/getCutsiteType.js +1 -1
- package/src/getCutsitesFromSequence.js +1 -1
- package/src/getDegenerateDnaStringFromAAString.js +1 -1
- package/src/getDegenerateRnaStringFromAAString.js +1 -1
- package/src/getDigestFragmentsForCutsites.js +5 -2
- package/src/getDigestFragmentsForRestrictionEnzymes.js +2 -2
- package/src/getInsertBetweenVals.js +2 -2
- package/src/getLeftAndRightOfSequenceInRangeGivenPosition.js +2 -2
- package/src/getLeftAndRightOfSequenceInRangeGivenPosition.test.js +0 -2
- package/src/getMassOfAaString.js +4 -1
- package/src/getMassofAaString.test.js +9 -8
- package/src/getOrfsFromSequence.js +1 -2
- package/src/getOrfsFromSequence.test.js +1 -3
- package/src/getOverlapBetweenTwoSequences.js +3 -3
- package/src/getOverlapBetweenTwoSequences.test.js +1 -1
- package/src/getPossiblePartsFromSequenceAndEnzymes.js +2 -2
- package/src/getReverseAminoAcidStringFromSequenceString.js +1 -1
- package/src/getReverseComplementAminoAcidStringFromSequenceString.js +9 -6
- package/src/getReverseComplementAnnotation.js +1 -1
- package/src/getReverseComplementSequenceAndAnnotations.js +2 -3
- package/src/getReverseComplementSequenceString.js +1 -2
- package/src/getReverseSequenceString.js +1 -1
- package/src/getSequenceDataBetweenRange.js +7 -4
- package/src/getSequenceDataBetweenRange.test.js +0 -1
- package/src/getVirtualDigest.js +6 -3
- package/src/guessIfSequenceIsDnaAndNotProtein.js +2 -2
- package/src/index.js +80 -80
- package/src/index.test.js +5 -4
- package/src/insertGapsIntoRefSeq.js +1 -1
- package/src/insertSequenceDataAtPosition.test.js +4 -2
- package/src/insertSequenceDataAtPositionOrRange.js +5 -5
- package/src/insertSequenceDataAtPositionOrRange.test.js +3 -17
- package/src/isEnzymeType2S.js +1 -1
- package/src/mapAnnotationsToRows.js +3 -3
- package/src/mapAnnotationsToRows.test.js +1 -3
- package/src/prepareCircularViewData.js +5 -5
- package/src/prepareCircularViewData.test.js +1 -1
- package/src/prepareRowData.js +1 -2
- package/src/prepareRowData.test.js +1 -3
- package/src/prepareRowData_output1.json +381 -381
- package/src/proteinAlphabet.js +34 -26
- package/src/rotateBpsToPosition.js +7 -11
- package/src/rotateBpsToPosition.test.js +6 -6
- package/src/rotateSequenceDataToPosition.js +4 -4
- package/src/shiftAnnotationsByLen.js +2 -2
- package/src/tidyUpAnnotation.js +8 -7
- package/src/tidyUpSequenceData.js +3 -3
package/index.js
CHANGED
|
@@ -6000,30 +6000,6 @@ lodash.exports;
|
|
|
6000
6000
|
var lodashExports = lodash.exports;
|
|
6001
6001
|
const protein_letters = "ACDEFGHIKLMNPQRSTVWY";
|
|
6002
6002
|
const extended_protein_letters = "ACDEFGHIKLMNPQRSTVWYBXZJUO.*-";
|
|
6003
|
-
const protein_letters_1to3 = {
|
|
6004
|
-
A: "Ala",
|
|
6005
|
-
C: "Cys",
|
|
6006
|
-
D: "Asp",
|
|
6007
|
-
E: "Glu",
|
|
6008
|
-
F: "Phe",
|
|
6009
|
-
G: "Gly",
|
|
6010
|
-
H: "His",
|
|
6011
|
-
I: "Ile",
|
|
6012
|
-
K: "Lys",
|
|
6013
|
-
L: "Leu",
|
|
6014
|
-
M: "Met",
|
|
6015
|
-
N: "Asn",
|
|
6016
|
-
P: "Pro",
|
|
6017
|
-
Q: "Gln",
|
|
6018
|
-
R: "Arg",
|
|
6019
|
-
S: "Ser",
|
|
6020
|
-
T: "Thr",
|
|
6021
|
-
V: "Val",
|
|
6022
|
-
W: "Trp",
|
|
6023
|
-
Y: "Tyr",
|
|
6024
|
-
O: "Pyl",
|
|
6025
|
-
U: "Sec"
|
|
6026
|
-
};
|
|
6027
6003
|
const ambiguous_dna_letters = "GATCRYWSMKHBVDN";
|
|
6028
6004
|
const unambiguous_dna_letters = "GATC";
|
|
6029
6005
|
const ambiguous_rna_letters = "GAUCRYWSMKHBVDN";
|
|
@@ -6048,135 +6024,6 @@ const ambiguous_dna_values = {
|
|
|
6048
6024
|
X: "GATC",
|
|
6049
6025
|
N: "GATC"
|
|
6050
6026
|
};
|
|
6051
|
-
const ambiguous_rna_values = {
|
|
6052
|
-
".": ".",
|
|
6053
|
-
A: "A",
|
|
6054
|
-
C: "C",
|
|
6055
|
-
G: "G",
|
|
6056
|
-
U: "U",
|
|
6057
|
-
M: "AC",
|
|
6058
|
-
R: "AG",
|
|
6059
|
-
W: "AU",
|
|
6060
|
-
S: "CG",
|
|
6061
|
-
Y: "CU",
|
|
6062
|
-
K: "GU",
|
|
6063
|
-
V: "ACG",
|
|
6064
|
-
H: "ACU",
|
|
6065
|
-
D: "AGU",
|
|
6066
|
-
B: "CGU",
|
|
6067
|
-
X: "GAUC",
|
|
6068
|
-
N: "GAUC"
|
|
6069
|
-
};
|
|
6070
|
-
const ambiguous_dna_complement = {
|
|
6071
|
-
".": ".",
|
|
6072
|
-
A: "T",
|
|
6073
|
-
C: "G",
|
|
6074
|
-
G: "C",
|
|
6075
|
-
T: "A",
|
|
6076
|
-
M: "K",
|
|
6077
|
-
R: "Y",
|
|
6078
|
-
W: "W",
|
|
6079
|
-
S: "S",
|
|
6080
|
-
Y: "R",
|
|
6081
|
-
K: "M",
|
|
6082
|
-
V: "B",
|
|
6083
|
-
H: "D",
|
|
6084
|
-
D: "H",
|
|
6085
|
-
B: "V",
|
|
6086
|
-
X: "X",
|
|
6087
|
-
N: "N"
|
|
6088
|
-
};
|
|
6089
|
-
const ambiguous_rna_complement = {
|
|
6090
|
-
".": ".",
|
|
6091
|
-
A: "U",
|
|
6092
|
-
C: "G",
|
|
6093
|
-
G: "C",
|
|
6094
|
-
U: "A",
|
|
6095
|
-
M: "K",
|
|
6096
|
-
R: "Y",
|
|
6097
|
-
W: "W",
|
|
6098
|
-
S: "S",
|
|
6099
|
-
Y: "R",
|
|
6100
|
-
K: "M",
|
|
6101
|
-
V: "B",
|
|
6102
|
-
H: "D",
|
|
6103
|
-
D: "H",
|
|
6104
|
-
B: "V",
|
|
6105
|
-
X: "X",
|
|
6106
|
-
N: "N"
|
|
6107
|
-
};
|
|
6108
|
-
const unambiguous_dna_weights = {
|
|
6109
|
-
A: 331.2218,
|
|
6110
|
-
C: 307.1971,
|
|
6111
|
-
G: 347.2212,
|
|
6112
|
-
T: 322.2085
|
|
6113
|
-
};
|
|
6114
|
-
const monoisotopic_unambiguous_dna_weights = {
|
|
6115
|
-
A: 331.06817,
|
|
6116
|
-
C: 307.056936,
|
|
6117
|
-
G: 347.063084,
|
|
6118
|
-
T: 322.056602
|
|
6119
|
-
};
|
|
6120
|
-
const unambiguous_rna_weights = {
|
|
6121
|
-
A: 347.2212,
|
|
6122
|
-
C: 323.1965,
|
|
6123
|
-
G: 363.2206,
|
|
6124
|
-
U: 324.1813
|
|
6125
|
-
};
|
|
6126
|
-
const monoisotopic_unambiguous_rna_weights = {
|
|
6127
|
-
A: 347.063084,
|
|
6128
|
-
C: 323.051851,
|
|
6129
|
-
G: 363.057999,
|
|
6130
|
-
U: 324.035867
|
|
6131
|
-
};
|
|
6132
|
-
const protein_weights = {
|
|
6133
|
-
A: 89.0932,
|
|
6134
|
-
C: 121.1582,
|
|
6135
|
-
D: 133.1027,
|
|
6136
|
-
E: 147.1293,
|
|
6137
|
-
F: 165.1891,
|
|
6138
|
-
G: 75.0666,
|
|
6139
|
-
H: 155.1546,
|
|
6140
|
-
I: 131.1729,
|
|
6141
|
-
K: 146.1876,
|
|
6142
|
-
L: 131.1729,
|
|
6143
|
-
M: 149.2113,
|
|
6144
|
-
N: 132.1179,
|
|
6145
|
-
O: 255.3134,
|
|
6146
|
-
P: 115.1305,
|
|
6147
|
-
Q: 146.1445,
|
|
6148
|
-
R: 174.201,
|
|
6149
|
-
S: 105.0926,
|
|
6150
|
-
T: 119.1192,
|
|
6151
|
-
U: 168.0532,
|
|
6152
|
-
V: 117.1463,
|
|
6153
|
-
W: 204.2252,
|
|
6154
|
-
Y: 181.1885
|
|
6155
|
-
};
|
|
6156
|
-
const monoisotopic_protein_weights = {
|
|
6157
|
-
A: 89.047678,
|
|
6158
|
-
C: 121.019749,
|
|
6159
|
-
D: 133.037508,
|
|
6160
|
-
E: 147.053158,
|
|
6161
|
-
F: 165.078979,
|
|
6162
|
-
G: 75.032028,
|
|
6163
|
-
H: 155.069477,
|
|
6164
|
-
I: 131.094629,
|
|
6165
|
-
K: 146.105528,
|
|
6166
|
-
L: 131.094629,
|
|
6167
|
-
M: 149.051049,
|
|
6168
|
-
N: 132.053492,
|
|
6169
|
-
O: 255.158292,
|
|
6170
|
-
P: 115.063329,
|
|
6171
|
-
Q: 146.069142,
|
|
6172
|
-
R: 174.111676,
|
|
6173
|
-
S: 105.042593,
|
|
6174
|
-
T: 119.058243,
|
|
6175
|
-
U: 168.964203,
|
|
6176
|
-
V: 117.078979,
|
|
6177
|
-
W: 204.089878,
|
|
6178
|
-
Y: 181.073893
|
|
6179
|
-
};
|
|
6180
6027
|
const extended_protein_values = {
|
|
6181
6028
|
A: "A",
|
|
6182
6029
|
B: "ND",
|
|
@@ -6211,140 +6058,17 @@ const extended_protein_values = {
|
|
|
6211
6058
|
".": "\\.\\.",
|
|
6212
6059
|
"-": "\\-"
|
|
6213
6060
|
};
|
|
6214
|
-
const atom_weights = {
|
|
6215
|
-
H: 1.00794,
|
|
6216
|
-
D: 2.0141,
|
|
6217
|
-
He: 4.002602,
|
|
6218
|
-
Li: 6.941,
|
|
6219
|
-
Be: 9.012182,
|
|
6220
|
-
B: 10.811,
|
|
6221
|
-
C: 12.0107,
|
|
6222
|
-
N: 14.0067,
|
|
6223
|
-
O: 15.9994,
|
|
6224
|
-
F: 18.9984032,
|
|
6225
|
-
Ne: 20.1797,
|
|
6226
|
-
Na: 22.98977,
|
|
6227
|
-
Mg: 24.305,
|
|
6228
|
-
Al: 26.981538,
|
|
6229
|
-
Si: 28.0855,
|
|
6230
|
-
P: 30.973761,
|
|
6231
|
-
S: 32.065,
|
|
6232
|
-
Cl: 35.453,
|
|
6233
|
-
Ar: 39.948,
|
|
6234
|
-
K: 39.0983,
|
|
6235
|
-
Ca: 40.078,
|
|
6236
|
-
Sc: 44.95591,
|
|
6237
|
-
Ti: 47.867,
|
|
6238
|
-
V: 50.9415,
|
|
6239
|
-
Cr: 51.9961,
|
|
6240
|
-
Mn: 54.938049,
|
|
6241
|
-
Fe: 55.845,
|
|
6242
|
-
Co: 58.9332,
|
|
6243
|
-
Ni: 58.6934,
|
|
6244
|
-
Cu: 63.546,
|
|
6245
|
-
Zn: 65.39,
|
|
6246
|
-
Ga: 69.723,
|
|
6247
|
-
Ge: 72.64,
|
|
6248
|
-
As: 74.9216,
|
|
6249
|
-
Se: 78.96,
|
|
6250
|
-
Br: 79.904,
|
|
6251
|
-
Kr: 83.8,
|
|
6252
|
-
Rb: 85.4678,
|
|
6253
|
-
Sr: 87.62,
|
|
6254
|
-
Y: 88.90585,
|
|
6255
|
-
Zr: 91.224,
|
|
6256
|
-
Nb: 92.90638,
|
|
6257
|
-
Mo: 95.94,
|
|
6258
|
-
Tc: 98,
|
|
6259
|
-
Ru: 101.07,
|
|
6260
|
-
Rh: 102.9055,
|
|
6261
|
-
Pd: 106.42,
|
|
6262
|
-
Ag: 107.8682,
|
|
6263
|
-
Cd: 112.411,
|
|
6264
|
-
In: 114.818,
|
|
6265
|
-
Sn: 118.71,
|
|
6266
|
-
Sb: 121.76,
|
|
6267
|
-
Te: 127.6,
|
|
6268
|
-
I: 126.90447,
|
|
6269
|
-
Xe: 131.293,
|
|
6270
|
-
Cs: 132.90545,
|
|
6271
|
-
Ba: 137.327,
|
|
6272
|
-
La: 138.9055,
|
|
6273
|
-
Ce: 140.116,
|
|
6274
|
-
Pr: 140.90765,
|
|
6275
|
-
Nd: 144.24,
|
|
6276
|
-
Pm: 145,
|
|
6277
|
-
Sm: 150.36,
|
|
6278
|
-
Eu: 151.964,
|
|
6279
|
-
Gd: 157.25,
|
|
6280
|
-
Tb: 158.92534,
|
|
6281
|
-
Dy: 162.5,
|
|
6282
|
-
Ho: 164.93032,
|
|
6283
|
-
Er: 167.259,
|
|
6284
|
-
Tm: 168.93421,
|
|
6285
|
-
Yb: 173.04,
|
|
6286
|
-
Lu: 174.967,
|
|
6287
|
-
Hf: 178.49,
|
|
6288
|
-
Ta: 180.9479,
|
|
6289
|
-
W: 183.84,
|
|
6290
|
-
Re: 186.207,
|
|
6291
|
-
Os: 190.23,
|
|
6292
|
-
Ir: 192.217,
|
|
6293
|
-
Pt: 195.078,
|
|
6294
|
-
Au: 196.96655,
|
|
6295
|
-
Hg: 200.59,
|
|
6296
|
-
Tl: 204.3833,
|
|
6297
|
-
Pb: 207.2,
|
|
6298
|
-
Bi: 208.98038,
|
|
6299
|
-
Po: 208.98,
|
|
6300
|
-
At: 209.99,
|
|
6301
|
-
Rn: 222.02,
|
|
6302
|
-
Fr: 223.02,
|
|
6303
|
-
Ra: 226.03,
|
|
6304
|
-
Ac: 227.03,
|
|
6305
|
-
Th: 232.0381,
|
|
6306
|
-
Pa: 231.03588,
|
|
6307
|
-
U: 238.02891,
|
|
6308
|
-
Np: 237.05,
|
|
6309
|
-
Pu: 244.06,
|
|
6310
|
-
Am: 243.06,
|
|
6311
|
-
Cm: 247.07,
|
|
6312
|
-
Bk: 247.07,
|
|
6313
|
-
Cf: 251.08,
|
|
6314
|
-
Es: 252.08,
|
|
6315
|
-
Fm: 257.1,
|
|
6316
|
-
Md: 258.1,
|
|
6317
|
-
No: 259.1,
|
|
6318
|
-
Lr: 262.11,
|
|
6319
|
-
Rf: 261.11,
|
|
6320
|
-
Db: 262.11,
|
|
6321
|
-
Sg: 266.12,
|
|
6322
|
-
Bh: 264.12,
|
|
6323
|
-
Hs: 269.13,
|
|
6324
|
-
Mt: 268.14
|
|
6325
|
-
};
|
|
6326
6061
|
const bioData = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
6327
6062
|
__proto__: null,
|
|
6328
|
-
ambiguous_dna_complement,
|
|
6329
6063
|
ambiguous_dna_letters,
|
|
6330
6064
|
ambiguous_dna_values,
|
|
6331
|
-
ambiguous_rna_complement,
|
|
6332
6065
|
ambiguous_rna_letters,
|
|
6333
|
-
ambiguous_rna_values,
|
|
6334
|
-
atom_weights,
|
|
6335
6066
|
extended_dna_letters,
|
|
6336
6067
|
extended_protein_letters,
|
|
6337
6068
|
extended_protein_values,
|
|
6338
|
-
monoisotopic_protein_weights,
|
|
6339
|
-
monoisotopic_unambiguous_dna_weights,
|
|
6340
|
-
monoisotopic_unambiguous_rna_weights,
|
|
6341
6069
|
protein_letters,
|
|
6342
|
-
protein_letters_1to3,
|
|
6343
|
-
protein_weights,
|
|
6344
6070
|
unambiguous_dna_letters,
|
|
6345
|
-
|
|
6346
|
-
unambiguous_rna_letters,
|
|
6347
|
-
unambiguous_rna_weights
|
|
6071
|
+
unambiguous_rna_letters
|
|
6348
6072
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
6349
6073
|
const aminoAcidToDegenerateDnaMap = {
|
|
6350
6074
|
"-": "---",
|
|
@@ -6458,8 +6182,8 @@ function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength,
|
|
|
6458
6182
|
maxRangeLength
|
|
6459
6183
|
);
|
|
6460
6184
|
let overlaps = [];
|
|
6461
|
-
normalizedRangeA.forEach(function(nonCircularRangeA
|
|
6462
|
-
normalizedRangeB.forEach(function(nonCircularRangeB
|
|
6185
|
+
normalizedRangeA.forEach(function(nonCircularRangeA) {
|
|
6186
|
+
normalizedRangeB.forEach(function(nonCircularRangeB) {
|
|
6463
6187
|
const overlap = getOverlapOfNonCircularRanges(
|
|
6464
6188
|
nonCircularRangeA,
|
|
6465
6189
|
nonCircularRangeB
|
|
@@ -6471,7 +6195,7 @@ function getOverlapsOfPotentiallyCircularRanges(rangeA, rangeB, maxRangeLength,
|
|
|
6471
6195
|
});
|
|
6472
6196
|
if (joinIfPossible && normalizedRangeA.length === 2 && normalizedRangeB.length === 2 && maxRangeLength) {
|
|
6473
6197
|
const joinedOverlap = {};
|
|
6474
|
-
overlaps = lodashExports.flatMap(overlaps, (o
|
|
6198
|
+
overlaps = lodashExports.flatMap(overlaps, (o) => {
|
|
6475
6199
|
if (o.start === 0) {
|
|
6476
6200
|
joinedOverlap.end = o.end;
|
|
6477
6201
|
return [];
|
|
@@ -6569,12 +6293,14 @@ function trimRangeByAnotherRange(rangeToBeTrimmed, trimmingRange, sequenceLength
|
|
|
6569
6293
|
});
|
|
6570
6294
|
splitRangesToBeTrimmed[index] = nonCircularRangeToBeTrimmed;
|
|
6571
6295
|
});
|
|
6572
|
-
const outputSplitRanges = splitRangesToBeTrimmed.filter(
|
|
6573
|
-
|
|
6574
|
-
|
|
6296
|
+
const outputSplitRanges = splitRangesToBeTrimmed.filter(
|
|
6297
|
+
function(trimmedRange) {
|
|
6298
|
+
if (trimmedRange) {
|
|
6299
|
+
return true;
|
|
6300
|
+
}
|
|
6301
|
+
return false;
|
|
6575
6302
|
}
|
|
6576
|
-
|
|
6577
|
-
});
|
|
6303
|
+
);
|
|
6578
6304
|
let outputTrimmedRange;
|
|
6579
6305
|
if (outputSplitRanges.length < 0)
|
|
6580
6306
|
;
|
|
@@ -6673,11 +6399,19 @@ function checkIfNonCircularRangesOverlap(range, comparisonRange) {
|
|
|
6673
6399
|
}
|
|
6674
6400
|
__name(checkIfNonCircularRangesOverlap, "checkIfNonCircularRangesOverlap");
|
|
6675
6401
|
function checkIfPotentiallyCircularRangesOverlap(range, comparisonRange) {
|
|
6676
|
-
return splitRangeIntoTwoPartsIfItIsCircular(range, Infinity).some(
|
|
6677
|
-
|
|
6678
|
-
return
|
|
6679
|
-
|
|
6680
|
-
|
|
6402
|
+
return splitRangeIntoTwoPartsIfItIsCircular(range, Infinity).some(
|
|
6403
|
+
function(splitRange) {
|
|
6404
|
+
return splitRangeIntoTwoPartsIfItIsCircular(
|
|
6405
|
+
comparisonRange,
|
|
6406
|
+
Infinity
|
|
6407
|
+
).some(function(splitComparisonRange) {
|
|
6408
|
+
return checkIfNonCircularRangesOverlap(
|
|
6409
|
+
splitRange,
|
|
6410
|
+
splitComparisonRange
|
|
6411
|
+
);
|
|
6412
|
+
});
|
|
6413
|
+
}
|
|
6414
|
+
);
|
|
6681
6415
|
}
|
|
6682
6416
|
__name(checkIfPotentiallyCircularRangesOverlap, "checkIfPotentiallyCircularRangesOverlap");
|
|
6683
6417
|
function collapseOverlapsGeneratedFromRangeComparisonIfPossible(overlaps, sequenceLength, optionalOriginalRange) {
|
|
@@ -6686,15 +6420,19 @@ function collapseOverlapsGeneratedFromRangeComparisonIfPossible(overlaps, sequen
|
|
|
6686
6420
|
return overlaps;
|
|
6687
6421
|
} else if (overlaps.length === 2) {
|
|
6688
6422
|
if (overlaps[0].start === 0 && overlaps[1].end + 1 === sequenceLength && !originalRangeLinear) {
|
|
6689
|
-
return [
|
|
6690
|
-
|
|
6691
|
-
|
|
6692
|
-
|
|
6423
|
+
return [
|
|
6424
|
+
{
|
|
6425
|
+
start: overlaps[1].start,
|
|
6426
|
+
end: overlaps[0].end
|
|
6427
|
+
}
|
|
6428
|
+
];
|
|
6693
6429
|
} else if (overlaps[1].start === 0 && overlaps[0].end + 1 === sequenceLength && !originalRangeLinear) {
|
|
6694
|
-
return [
|
|
6695
|
-
|
|
6696
|
-
|
|
6697
|
-
|
|
6430
|
+
return [
|
|
6431
|
+
{
|
|
6432
|
+
start: overlaps[0].start,
|
|
6433
|
+
end: overlaps[1].end
|
|
6434
|
+
}
|
|
6435
|
+
];
|
|
6698
6436
|
} else {
|
|
6699
6437
|
return overlaps;
|
|
6700
6438
|
}
|
|
@@ -6702,17 +6440,29 @@ function collapseOverlapsGeneratedFromRangeComparisonIfPossible(overlaps, sequen
|
|
|
6702
6440
|
const firstOverlap = overlaps[0];
|
|
6703
6441
|
const secondOverlap = overlaps[1];
|
|
6704
6442
|
const thirdOverlap = overlaps[2];
|
|
6705
|
-
let collapsedOverlaps = collapseOverlapsGeneratedFromRangeComparisonIfPossible(
|
|
6443
|
+
let collapsedOverlaps = collapseOverlapsGeneratedFromRangeComparisonIfPossible(
|
|
6444
|
+
[firstOverlap, secondOverlap],
|
|
6445
|
+
sequenceLength,
|
|
6446
|
+
optionalOriginalRange
|
|
6447
|
+
);
|
|
6706
6448
|
if (collapsedOverlaps.length === 1) {
|
|
6707
6449
|
collapsedOverlaps.push(thirdOverlap);
|
|
6708
6450
|
return collapsedOverlaps;
|
|
6709
6451
|
} else {
|
|
6710
|
-
collapsedOverlaps = collapseOverlapsGeneratedFromRangeComparisonIfPossible(
|
|
6452
|
+
collapsedOverlaps = collapseOverlapsGeneratedFromRangeComparisonIfPossible(
|
|
6453
|
+
[firstOverlap, thirdOverlap],
|
|
6454
|
+
sequenceLength,
|
|
6455
|
+
optionalOriginalRange
|
|
6456
|
+
);
|
|
6711
6457
|
if (collapsedOverlaps.length === 1) {
|
|
6712
6458
|
collapsedOverlaps.push(secondOverlap);
|
|
6713
6459
|
return collapsedOverlaps;
|
|
6714
6460
|
} else {
|
|
6715
|
-
collapsedOverlaps = collapseOverlapsGeneratedFromRangeComparisonIfPossible(
|
|
6461
|
+
collapsedOverlaps = collapseOverlapsGeneratedFromRangeComparisonIfPossible(
|
|
6462
|
+
[secondOverlap, thirdOverlap],
|
|
6463
|
+
sequenceLength,
|
|
6464
|
+
optionalOriginalRange
|
|
6465
|
+
);
|
|
6716
6466
|
if (collapsedOverlaps.length === 1) {
|
|
6717
6467
|
collapsedOverlaps.push(firstOverlap);
|
|
6718
6468
|
return collapsedOverlaps;
|
|
@@ -6819,13 +6569,23 @@ function expandOrContractRangeByLength(range, shiftBy, shiftStart, sequenceLengt
|
|
|
6819
6569
|
__name(expandOrContractRangeByLength, "expandOrContractRangeByLength");
|
|
6820
6570
|
function translateRange(rangeToBeAdjusted, translateBy, rangeLength) {
|
|
6821
6571
|
return lodashExports.assign({}, rangeToBeAdjusted, {
|
|
6822
|
-
start: normalizePositionByRangeLength(
|
|
6823
|
-
|
|
6572
|
+
start: normalizePositionByRangeLength(
|
|
6573
|
+
rangeToBeAdjusted.start + translateBy,
|
|
6574
|
+
rangeLength
|
|
6575
|
+
),
|
|
6576
|
+
end: normalizePositionByRangeLength(
|
|
6577
|
+
rangeToBeAdjusted.end + translateBy,
|
|
6578
|
+
rangeLength
|
|
6579
|
+
)
|
|
6824
6580
|
});
|
|
6825
6581
|
}
|
|
6826
6582
|
__name(translateRange, "translateRange");
|
|
6827
|
-
function flipRelativeRange(innerRange, outerRange, sequenceLength
|
|
6828
|
-
const isFullyContained = isRangeWithinRange(
|
|
6583
|
+
function flipRelativeRange(innerRange, outerRange, sequenceLength) {
|
|
6584
|
+
const isFullyContained = isRangeWithinRange(
|
|
6585
|
+
innerRange,
|
|
6586
|
+
outerRange,
|
|
6587
|
+
sequenceLength
|
|
6588
|
+
);
|
|
6829
6589
|
if (isFullyContained) {
|
|
6830
6590
|
return flipFullyContainedRange(innerRange, outerRange, sequenceLength);
|
|
6831
6591
|
} else {
|
|
@@ -6833,42 +6593,92 @@ function flipRelativeRange(innerRange, outerRange, sequenceLength, options) {
|
|
|
6833
6593
|
}
|
|
6834
6594
|
}
|
|
6835
6595
|
__name(flipRelativeRange, "flipRelativeRange");
|
|
6836
|
-
function flipNonFullyContainedRange(innerRange, outerRange, sequenceLength
|
|
6837
|
-
const outerFullyContained = isRangeWithinRange(
|
|
6596
|
+
function flipNonFullyContainedRange(innerRange, outerRange, sequenceLength) {
|
|
6597
|
+
const outerFullyContained = isRangeWithinRange(
|
|
6598
|
+
outerRange,
|
|
6599
|
+
innerRange,
|
|
6600
|
+
sequenceLength
|
|
6601
|
+
);
|
|
6838
6602
|
let flippedInnerRange;
|
|
6839
6603
|
if (outerFullyContained) {
|
|
6840
|
-
const expandBy1 = getRangeLength(
|
|
6841
|
-
|
|
6842
|
-
|
|
6843
|
-
|
|
6844
|
-
|
|
6845
|
-
|
|
6846
|
-
|
|
6847
|
-
|
|
6848
|
-
|
|
6849
|
-
|
|
6604
|
+
const expandBy1 = getRangeLength(
|
|
6605
|
+
{
|
|
6606
|
+
start: innerRange.start,
|
|
6607
|
+
end: outerRange.start
|
|
6608
|
+
},
|
|
6609
|
+
sequenceLength
|
|
6610
|
+
) - 1;
|
|
6611
|
+
flippedInnerRange = expandOrContractRangeByLength(
|
|
6612
|
+
outerRange,
|
|
6613
|
+
expandBy1,
|
|
6614
|
+
false,
|
|
6615
|
+
sequenceLength
|
|
6616
|
+
);
|
|
6617
|
+
const expandBy2 = getRangeLength(
|
|
6618
|
+
{
|
|
6619
|
+
end: innerRange.end,
|
|
6620
|
+
start: outerRange.end
|
|
6621
|
+
},
|
|
6622
|
+
sequenceLength
|
|
6623
|
+
) - 1;
|
|
6624
|
+
flippedInnerRange = expandOrContractRangeByLength(
|
|
6625
|
+
flippedInnerRange,
|
|
6626
|
+
expandBy2,
|
|
6627
|
+
true,
|
|
6628
|
+
sequenceLength
|
|
6629
|
+
);
|
|
6850
6630
|
} else {
|
|
6851
|
-
const overlaps = getOverlapsOfPotentiallyCircularRanges(
|
|
6631
|
+
const overlaps = getOverlapsOfPotentiallyCircularRanges(
|
|
6632
|
+
innerRange,
|
|
6633
|
+
outerRange,
|
|
6634
|
+
sequenceLength
|
|
6635
|
+
);
|
|
6852
6636
|
if (overlaps.length >= 1) {
|
|
6853
|
-
let overlapExtendsForward;
|
|
6854
6637
|
const firstOverlap = overlaps[0];
|
|
6855
|
-
overlapExtendsForward = firstOverlap.start !== outerRange.start;
|
|
6856
|
-
const flippedTruncatedInner = flipFullyContainedRange(
|
|
6638
|
+
const overlapExtendsForward = firstOverlap.start !== outerRange.start;
|
|
6639
|
+
const flippedTruncatedInner = flipFullyContainedRange(
|
|
6640
|
+
firstOverlap,
|
|
6641
|
+
outerRange,
|
|
6642
|
+
sequenceLength
|
|
6643
|
+
);
|
|
6857
6644
|
const lengthToExtend = getRangeLength(innerRange, sequenceLength) - getRangeLength(flippedTruncatedInner, sequenceLength);
|
|
6858
|
-
flippedInnerRange = expandOrContractRangeByLength(
|
|
6645
|
+
flippedInnerRange = expandOrContractRangeByLength(
|
|
6646
|
+
flippedTruncatedInner,
|
|
6647
|
+
lengthToExtend,
|
|
6648
|
+
overlapExtendsForward,
|
|
6649
|
+
sequenceLength
|
|
6650
|
+
);
|
|
6859
6651
|
} else {
|
|
6860
|
-
throw new Error(
|
|
6652
|
+
throw new Error(
|
|
6653
|
+
"This case (relative ranges that do not overlap) is unsupported! "
|
|
6654
|
+
);
|
|
6861
6655
|
}
|
|
6862
6656
|
}
|
|
6863
6657
|
return flippedInnerRange;
|
|
6864
6658
|
}
|
|
6865
6659
|
__name(flipNonFullyContainedRange, "flipNonFullyContainedRange");
|
|
6866
|
-
function flipFullyContainedRange(innerRange, outerRange, sequenceLength
|
|
6660
|
+
function flipFullyContainedRange(innerRange, outerRange, sequenceLength) {
|
|
6867
6661
|
const translateBy = -outerRange.start;
|
|
6868
|
-
const translatedOuterRange = translateRange(
|
|
6869
|
-
|
|
6870
|
-
|
|
6871
|
-
|
|
6662
|
+
const translatedOuterRange = translateRange(
|
|
6663
|
+
outerRange,
|
|
6664
|
+
translateBy,
|
|
6665
|
+
sequenceLength
|
|
6666
|
+
);
|
|
6667
|
+
const translatedInnerRange = translateRange(
|
|
6668
|
+
innerRange,
|
|
6669
|
+
translateBy,
|
|
6670
|
+
sequenceLength
|
|
6671
|
+
);
|
|
6672
|
+
const translatedFlippedInnerRange = flipNonOriginSpanningContainedRange(
|
|
6673
|
+
translatedInnerRange,
|
|
6674
|
+
translatedOuterRange,
|
|
6675
|
+
sequenceLength
|
|
6676
|
+
);
|
|
6677
|
+
const flippedInnerRange = translateRange(
|
|
6678
|
+
translatedFlippedInnerRange,
|
|
6679
|
+
-translateBy,
|
|
6680
|
+
sequenceLength
|
|
6681
|
+
);
|
|
6872
6682
|
return flippedInnerRange;
|
|
6873
6683
|
}
|
|
6874
6684
|
__name(flipFullyContainedRange, "flipFullyContainedRange");
|
|
@@ -6886,7 +6696,10 @@ function generateRandomRange(minStart, maxEnd, maxLength) {
|
|
|
6886
6696
|
const start = getRandomInt$1(minStart, maxEnd);
|
|
6887
6697
|
let end;
|
|
6888
6698
|
if (maxLength) {
|
|
6889
|
-
end = normalizePositionByRangeLength(
|
|
6699
|
+
end = normalizePositionByRangeLength(
|
|
6700
|
+
getRandomInt$1(start, start + maxLength),
|
|
6701
|
+
maxEnd
|
|
6702
|
+
);
|
|
6890
6703
|
} else {
|
|
6891
6704
|
end = getRandomInt$1(minStart, maxEnd);
|
|
6892
6705
|
}
|
|
@@ -6929,18 +6742,26 @@ function getShortestDistanceBetweenTwoPositions(position1, position2, sequenceLe
|
|
|
6929
6742
|
__name(getShortestDistanceBetweenTwoPositions, "getShortestDistanceBetweenTwoPositions");
|
|
6930
6743
|
function getYOffsetForPotentiallyCircularRange(range, YOffsetLevelsWithRanges, assignYOffsetToRange) {
|
|
6931
6744
|
let yOffset = [];
|
|
6932
|
-
const openYOffsetFound = YOffsetLevelsWithRanges.some(
|
|
6933
|
-
|
|
6934
|
-
|
|
6935
|
-
|
|
6936
|
-
|
|
6937
|
-
|
|
6938
|
-
|
|
6939
|
-
|
|
6940
|
-
|
|
6941
|
-
|
|
6745
|
+
const openYOffsetFound = YOffsetLevelsWithRanges.some(
|
|
6746
|
+
function(rangesAlreadyAddedToYOffset, index) {
|
|
6747
|
+
const rangeBlocked = rangesAlreadyAddedToYOffset.some(
|
|
6748
|
+
function(comparisonRange) {
|
|
6749
|
+
return checkIfPotentiallyCircularRangesOverlap(
|
|
6750
|
+
range,
|
|
6751
|
+
comparisonRange
|
|
6752
|
+
);
|
|
6753
|
+
}
|
|
6754
|
+
);
|
|
6755
|
+
if (!rangeBlocked) {
|
|
6756
|
+
yOffset = index;
|
|
6757
|
+
if (assignYOffsetToRange)
|
|
6758
|
+
range.yOffset = index;
|
|
6759
|
+
rangesAlreadyAddedToYOffset.push(range);
|
|
6760
|
+
return true;
|
|
6761
|
+
}
|
|
6762
|
+
return false;
|
|
6942
6763
|
}
|
|
6943
|
-
|
|
6764
|
+
);
|
|
6944
6765
|
if (!openYOffsetFound) {
|
|
6945
6766
|
yOffset = YOffsetLevelsWithRanges.length;
|
|
6946
6767
|
if (assignYOffsetToRange)
|
|
@@ -6954,7 +6775,11 @@ function getYOffsetsForPotentiallyCircularRanges(ranges, assignYOffsetToRange) {
|
|
|
6954
6775
|
let maxYOffset = 0;
|
|
6955
6776
|
const yOffsetLevels = [];
|
|
6956
6777
|
ranges.forEach(function(range) {
|
|
6957
|
-
const yOffset = getYOffsetForPotentiallyCircularRange(
|
|
6778
|
+
const yOffset = getYOffsetForPotentiallyCircularRange(
|
|
6779
|
+
range,
|
|
6780
|
+
yOffsetLevels,
|
|
6781
|
+
assignYOffsetToRange
|
|
6782
|
+
);
|
|
6958
6783
|
yOffsets.push(yOffset);
|
|
6959
6784
|
if (yOffset > maxYOffset) {
|
|
6960
6785
|
maxYOffset = yOffset;
|
|
@@ -6987,8 +6812,16 @@ function invertRange$1(rangeOrCaret, rangeMax) {
|
|
|
6987
6812
|
}
|
|
6988
6813
|
__name(invertRange$1, "invertRange$1");
|
|
6989
6814
|
function isPositionCloserToRangeStartThanRangeEnd(position, range, maxLength) {
|
|
6990
|
-
const distanceFromStart = getShortestDistanceBetweenTwoPositions(
|
|
6991
|
-
|
|
6815
|
+
const distanceFromStart = getShortestDistanceBetweenTwoPositions(
|
|
6816
|
+
range.start,
|
|
6817
|
+
position,
|
|
6818
|
+
maxLength
|
|
6819
|
+
);
|
|
6820
|
+
const distanceFromEnd = getShortestDistanceBetweenTwoPositions(
|
|
6821
|
+
range.end,
|
|
6822
|
+
position,
|
|
6823
|
+
maxLength
|
|
6824
|
+
);
|
|
6992
6825
|
return distanceFromStart <= distanceFromEnd;
|
|
6993
6826
|
}
|
|
6994
6827
|
__name(isPositionCloserToRangeStartThanRangeEnd, "isPositionCloserToRangeStartThanRangeEnd");
|
|
@@ -7019,9 +6852,15 @@ function reversePositionInRange(position, rangeLength, isInBetweenPositions) {
|
|
|
7019
6852
|
}
|
|
7020
6853
|
__name(reversePositionInRange, "reversePositionInRange");
|
|
7021
6854
|
function zeroSubrangeByContainerRange(subRange, containerRange, sequenceLength) {
|
|
7022
|
-
const trimmedSubRange = trimRangeByAnotherRange(
|
|
6855
|
+
const trimmedSubRange = trimRangeByAnotherRange(
|
|
6856
|
+
subRange,
|
|
6857
|
+
containerRange,
|
|
6858
|
+
sequenceLength
|
|
6859
|
+
);
|
|
7023
6860
|
if (trimmedSubRange) {
|
|
7024
|
-
throw new Error(
|
|
6861
|
+
throw new Error(
|
|
6862
|
+
"subRange must be fully contained by containerRange! Otherwise this function does not make sense"
|
|
6863
|
+
);
|
|
7025
6864
|
}
|
|
7026
6865
|
const newSubrange = {};
|
|
7027
6866
|
newSubrange.start = subRange.start - containerRange.start;
|
|
@@ -7049,12 +6888,24 @@ function modulo(n, m) {
|
|
|
7049
6888
|
}
|
|
7050
6889
|
__name(modulo, "modulo");
|
|
7051
6890
|
function getZeroedRangeOverlaps(annotation, selection, sequenceLength) {
|
|
7052
|
-
const overlaps = collapseOverlapsGeneratedFromRangeComparisonIfPossible(
|
|
6891
|
+
const overlaps = collapseOverlapsGeneratedFromRangeComparisonIfPossible(
|
|
6892
|
+
getOverlapsOfPotentiallyCircularRanges(
|
|
6893
|
+
annotation,
|
|
6894
|
+
selection,
|
|
6895
|
+
sequenceLength
|
|
6896
|
+
),
|
|
6897
|
+
sequenceLength,
|
|
6898
|
+
annotation
|
|
6899
|
+
);
|
|
7053
6900
|
const zeroedOverlaps = overlaps.map((overlap) => {
|
|
7054
|
-
return zeroSubrangeByContainerRange(
|
|
7055
|
-
|
|
7056
|
-
|
|
7057
|
-
|
|
6901
|
+
return zeroSubrangeByContainerRange(
|
|
6902
|
+
overlap,
|
|
6903
|
+
{
|
|
6904
|
+
start: selection.start,
|
|
6905
|
+
end: normalizePositionByRangeLength(selection.start - 1, sequenceLength)
|
|
6906
|
+
},
|
|
6907
|
+
sequenceLength
|
|
6908
|
+
);
|
|
7058
6909
|
});
|
|
7059
6910
|
return zeroedOverlaps;
|
|
7060
6911
|
}
|
|
@@ -11962,7 +11813,7 @@ const proteinAlphabet = {
|
|
|
11962
11813
|
hydrophobicity: 1.8,
|
|
11963
11814
|
colorByFamily: "#00FFFF",
|
|
11964
11815
|
color: "hsl(327.3, 100%, 69%)",
|
|
11965
|
-
mass:
|
|
11816
|
+
mass: 71.0779
|
|
11966
11817
|
},
|
|
11967
11818
|
R: {
|
|
11968
11819
|
value: "R",
|
|
@@ -11971,7 +11822,7 @@ const proteinAlphabet = {
|
|
|
11971
11822
|
hydrophobicity: -4.5,
|
|
11972
11823
|
colorByFamily: "#FFC0CB",
|
|
11973
11824
|
color: "hsl(258.1, 100%, 69%)",
|
|
11974
|
-
mass:
|
|
11825
|
+
mass: 156.18568
|
|
11975
11826
|
},
|
|
11976
11827
|
N: {
|
|
11977
11828
|
value: "N",
|
|
@@ -11980,7 +11831,7 @@ const proteinAlphabet = {
|
|
|
11980
11831
|
hydrophobicity: -3.5,
|
|
11981
11832
|
colorByFamily: "#D3D3D3",
|
|
11982
11833
|
color: "hsl(268.9, 100%, 69%)",
|
|
11983
|
-
mass:
|
|
11834
|
+
mass: 114.10264
|
|
11984
11835
|
},
|
|
11985
11836
|
D: {
|
|
11986
11837
|
value: "D",
|
|
@@ -11989,7 +11840,7 @@ const proteinAlphabet = {
|
|
|
11989
11840
|
hydrophobicity: -3.5,
|
|
11990
11841
|
colorByFamily: "#EE82EE",
|
|
11991
11842
|
color: "hsl(268.9, 100%, 69%)",
|
|
11992
|
-
mass:
|
|
11843
|
+
mass: 115.0874
|
|
11993
11844
|
},
|
|
11994
11845
|
C: {
|
|
11995
11846
|
value: "C",
|
|
@@ -11998,7 +11849,7 @@ const proteinAlphabet = {
|
|
|
11998
11849
|
hydrophobicity: 2.5,
|
|
11999
11850
|
colorByFamily: "#FFFF00",
|
|
12000
11851
|
color: "hsl(335.1, 100%, 69%)",
|
|
12001
|
-
mass:
|
|
11852
|
+
mass: 103.1429
|
|
12002
11853
|
},
|
|
12003
11854
|
E: {
|
|
12004
11855
|
value: "E",
|
|
@@ -12007,7 +11858,7 @@ const proteinAlphabet = {
|
|
|
12007
11858
|
hydrophobicity: -3.5,
|
|
12008
11859
|
colorByFamily: "#EE82EE",
|
|
12009
11860
|
color: "hsl(268.9, 100%, 69%)",
|
|
12010
|
-
mass:
|
|
11861
|
+
mass: 129.11398
|
|
12011
11862
|
},
|
|
12012
11863
|
Q: {
|
|
12013
11864
|
value: "Q",
|
|
@@ -12016,7 +11867,7 @@ const proteinAlphabet = {
|
|
|
12016
11867
|
hydrophobicity: -3.5,
|
|
12017
11868
|
colorByFamily: "#D3D3D3",
|
|
12018
11869
|
color: "hsl(268.9, 100%, 69%)",
|
|
12019
|
-
mass:
|
|
11870
|
+
mass: 128.12922
|
|
12020
11871
|
},
|
|
12021
11872
|
G: {
|
|
12022
11873
|
value: "G",
|
|
@@ -12025,7 +11876,7 @@ const proteinAlphabet = {
|
|
|
12025
11876
|
hydrophobicity: -0.4,
|
|
12026
11877
|
colorByFamily: "#00FFFF",
|
|
12027
11878
|
color: "hsl(303.1, 100%, 69%)",
|
|
12028
|
-
mass:
|
|
11879
|
+
mass: 57.05132
|
|
12029
11880
|
},
|
|
12030
11881
|
H: {
|
|
12031
11882
|
value: "H",
|
|
@@ -12034,7 +11885,7 @@ const proteinAlphabet = {
|
|
|
12034
11885
|
hydrophobicity: -3.2,
|
|
12035
11886
|
colorByFamily: "#FFC0CB",
|
|
12036
11887
|
color: "hsl(272.2, 100%, 69%)",
|
|
12037
|
-
mass:
|
|
11888
|
+
mass: 137.13928
|
|
12038
11889
|
},
|
|
12039
11890
|
I: {
|
|
12040
11891
|
value: "I",
|
|
@@ -12043,7 +11894,7 @@ const proteinAlphabet = {
|
|
|
12043
11894
|
hydrophobicity: 4.5,
|
|
12044
11895
|
colorByFamily: "#00FFFF",
|
|
12045
11896
|
color: "hsl(356.9, 100%, 69%)",
|
|
12046
|
-
mass:
|
|
11897
|
+
mass: 113.15764
|
|
12047
11898
|
},
|
|
12048
11899
|
L: {
|
|
12049
11900
|
value: "L",
|
|
@@ -12052,7 +11903,7 @@ const proteinAlphabet = {
|
|
|
12052
11903
|
hydrophobicity: 3.8,
|
|
12053
11904
|
colorByFamily: "#00FFFF",
|
|
12054
11905
|
color: "hsl(349.4, 100%, 69%)",
|
|
12055
|
-
mass:
|
|
11906
|
+
mass: 113.15764
|
|
12056
11907
|
},
|
|
12057
11908
|
K: {
|
|
12058
11909
|
value: "K",
|
|
@@ -12061,7 +11912,7 @@ const proteinAlphabet = {
|
|
|
12061
11912
|
hydrophobicity: -3.9,
|
|
12062
11913
|
colorByFamily: "#FFC0CB",
|
|
12063
11914
|
color: "hsl(264.7, 100%, 69%)",
|
|
12064
|
-
mass:
|
|
11915
|
+
mass: 128.17228
|
|
12065
11916
|
},
|
|
12066
11917
|
M: {
|
|
12067
11918
|
value: "M",
|
|
@@ -12070,7 +11921,7 @@ const proteinAlphabet = {
|
|
|
12070
11921
|
hydrophobicity: 1.9,
|
|
12071
11922
|
colorByFamily: "#FFFF00",
|
|
12072
11923
|
color: "hsl(328.5, 100%, 69%)",
|
|
12073
|
-
mass:
|
|
11924
|
+
mass: 131.19606
|
|
12074
11925
|
},
|
|
12075
11926
|
F: {
|
|
12076
11927
|
value: "F",
|
|
@@ -12079,7 +11930,7 @@ const proteinAlphabet = {
|
|
|
12079
11930
|
hydrophobicity: 2.8,
|
|
12080
11931
|
colorByFamily: "#FFA500",
|
|
12081
11932
|
color: "hsl(338.4, 100%, 69%)",
|
|
12082
|
-
mass:
|
|
11933
|
+
mass: 147.17386
|
|
12083
11934
|
},
|
|
12084
11935
|
P: {
|
|
12085
11936
|
value: "P",
|
|
@@ -12088,7 +11939,7 @@ const proteinAlphabet = {
|
|
|
12088
11939
|
hydrophobicity: -1.6,
|
|
12089
11940
|
colorByFamily: "#00FFFF",
|
|
12090
11941
|
color: "hsl(289.9, 100%, 69%)",
|
|
12091
|
-
mass:
|
|
11942
|
+
mass: 97.11518
|
|
12092
11943
|
},
|
|
12093
11944
|
S: {
|
|
12094
11945
|
value: "S",
|
|
@@ -12097,7 +11948,7 @@ const proteinAlphabet = {
|
|
|
12097
11948
|
hydrophobicity: -0.8,
|
|
12098
11949
|
colorByFamily: "#90EE90",
|
|
12099
11950
|
color: "hsl(298.6, 100%, 69%)",
|
|
12100
|
-
mass:
|
|
11951
|
+
mass: 87.0773
|
|
12101
11952
|
},
|
|
12102
11953
|
T: {
|
|
12103
11954
|
value: "T",
|
|
@@ -12106,7 +11957,7 @@ const proteinAlphabet = {
|
|
|
12106
11957
|
hydrophobicity: -0.7,
|
|
12107
11958
|
colorByFamily: "#90EE90",
|
|
12108
11959
|
color: "hsl(299.8, 100%, 69%)",
|
|
12109
|
-
mass:
|
|
11960
|
+
mass: 101.10388
|
|
12110
11961
|
},
|
|
12111
11962
|
U: {
|
|
12112
11963
|
value: "U",
|
|
@@ -12114,7 +11965,7 @@ const proteinAlphabet = {
|
|
|
12114
11965
|
threeLettersName: "Sec",
|
|
12115
11966
|
colorByFamily: "#FF0000",
|
|
12116
11967
|
color: "hsl(0, 100%, 69%)",
|
|
12117
|
-
mass:
|
|
11968
|
+
mass: 150.3079
|
|
12118
11969
|
},
|
|
12119
11970
|
W: {
|
|
12120
11971
|
value: "W",
|
|
@@ -12123,7 +11974,7 @@ const proteinAlphabet = {
|
|
|
12123
11974
|
hydrophobicity: -0.9,
|
|
12124
11975
|
colorByFamily: "#FFA500",
|
|
12125
11976
|
color: "hsl(297.6, 100%, 69%)",
|
|
12126
|
-
mass:
|
|
11977
|
+
mass: 186.2099
|
|
12127
11978
|
},
|
|
12128
11979
|
Y: {
|
|
12129
11980
|
value: "Y",
|
|
@@ -12132,7 +11983,7 @@ const proteinAlphabet = {
|
|
|
12132
11983
|
hydrophobicity: -1.3,
|
|
12133
11984
|
colorByFamily: "#FFA500",
|
|
12134
11985
|
color: "hsl(293.2, 100%, 69%)",
|
|
12135
|
-
mass:
|
|
11986
|
+
mass: 163.17326
|
|
12136
11987
|
},
|
|
12137
11988
|
V: {
|
|
12138
11989
|
value: "V",
|
|
@@ -12141,7 +11992,7 @@ const proteinAlphabet = {
|
|
|
12141
11992
|
hydrophobicity: 4.2,
|
|
12142
11993
|
colorByFamily: "#00FFFF",
|
|
12143
11994
|
color: "hsl(353.6, 100%, 69%)",
|
|
12144
|
-
mass:
|
|
11995
|
+
mass: 99.13106
|
|
12145
11996
|
},
|
|
12146
11997
|
"*": {
|
|
12147
11998
|
value: "*",
|
|
@@ -12596,13 +12447,13 @@ function coerceLocation({
|
|
|
12596
12447
|
messages.push(
|
|
12597
12448
|
"Invalid annotation start: " + location.start + " detected for " + location.name + " and set to size: " + size
|
|
12598
12449
|
);
|
|
12599
|
-
location.start = size - (isProtein ? 3 : 1);
|
|
12450
|
+
location.start = Math.max(0, size - (isProtein ? 3 : 1));
|
|
12600
12451
|
}
|
|
12601
12452
|
if (location.end < 0 || !(location.end <= size - 1) || location.end > size - 1) {
|
|
12602
12453
|
messages.push(
|
|
12603
12454
|
"Invalid annotation end: " + location.end + " detected for " + location.name + " and set to seq size: " + size
|
|
12604
12455
|
);
|
|
12605
|
-
location.end = size - 1;
|
|
12456
|
+
location.end = Math.max(0, size - 1);
|
|
12606
12457
|
}
|
|
12607
12458
|
if (location.start > location.end && circular === false) {
|
|
12608
12459
|
messages.push(
|
|
@@ -12615,9 +12466,9 @@ __name(coerceLocation, "coerceLocation");
|
|
|
12615
12466
|
function filterAminoAcidSequenceString(sequenceString, options) {
|
|
12616
12467
|
options = options || {};
|
|
12617
12468
|
if (options.includeStopCodon) {
|
|
12618
|
-
return sequenceString.replace(/[^xtgalmfwkqespvicyhrndu.*]/gi, "");
|
|
12469
|
+
return sequenceString == null ? void 0 : sequenceString.replace(/[^xtgalmfwkqespvicyhrndu.*]/gi, "");
|
|
12619
12470
|
}
|
|
12620
|
-
return sequenceString.replace(/[^xtgalmfwkqespvicyhrndu]/gi, "");
|
|
12471
|
+
return sequenceString == null ? void 0 : sequenceString.replace(/[^xtgalmfwkqespvicyhrndu]/gi, "");
|
|
12621
12472
|
}
|
|
12622
12473
|
__name(filterAminoAcidSequenceString, "filterAminoAcidSequenceString");
|
|
12623
12474
|
function getDegenerateDnaStringFromAAString(aaString) {
|
|
@@ -13108,7 +12959,7 @@ const calcTmMethods = {
|
|
|
13108
12959
|
calculateTemperature: function(sequence, type, A, R, C, Na) {
|
|
13109
12960
|
if (typeof type === "undefined") {
|
|
13110
12961
|
type = this.TABLE_BRESLAUER;
|
|
13111
|
-
} else if (type != this.TABLE_BRESLAUER &&
|
|
12962
|
+
} else if (type != this.TABLE_BRESLAUER && type != this.TABLE_UNIFIED && type != this.TABLE_SUGIMOTO) {
|
|
13112
12963
|
throw new Error("Invalid table type!");
|
|
13113
12964
|
}
|
|
13114
12965
|
if (!A) {
|
|
@@ -21470,12 +21321,7 @@ function findSequenceMatches(sequence, searchString, options = {}) {
|
|
|
21470
21321
|
}
|
|
21471
21322
|
__name(findSequenceMatches, "findSequenceMatches");
|
|
21472
21323
|
function findSequenceMatchesTopStrand(sequence, searchString, options = {}) {
|
|
21473
|
-
const {
|
|
21474
|
-
isCircular,
|
|
21475
|
-
isAmbiguous,
|
|
21476
|
-
isProteinSequence,
|
|
21477
|
-
isProteinSearch
|
|
21478
|
-
} = options;
|
|
21324
|
+
const { isCircular, isAmbiguous, isProteinSequence, isProteinSearch } = options;
|
|
21479
21325
|
let searchStringToUse = escapeStringRegexp(searchString);
|
|
21480
21326
|
if (isAmbiguous) {
|
|
21481
21327
|
if (isProteinSearch || isProteinSequence) {
|
|
@@ -21608,7 +21454,10 @@ function getComplementAminoAcidStringFromSequenceString(sequenceString) {
|
|
|
21608
21454
|
__name(getComplementAminoAcidStringFromSequenceString, "getComplementAminoAcidStringFromSequenceString");
|
|
21609
21455
|
function getComplementSequenceString(sequence, isRna) {
|
|
21610
21456
|
let complementSeqString = "";
|
|
21611
|
-
const complementMap = lodashExports.merge(
|
|
21457
|
+
const complementMap = lodashExports.merge(
|
|
21458
|
+
DNAComplementMap,
|
|
21459
|
+
isRna ? { a: "u", A: "U" } : { a: "t", A: "T" }
|
|
21460
|
+
);
|
|
21612
21461
|
for (let i = 0; i < sequence.length; i++) {
|
|
21613
21462
|
let complementChar = complementMap[sequence[i]];
|
|
21614
21463
|
if (!complementChar) {
|
|
@@ -21912,7 +21761,9 @@ function getReverseAminoAcidStringFromSequenceString(sequenceString) {
|
|
|
21912
21761
|
}
|
|
21913
21762
|
__name(getReverseAminoAcidStringFromSequenceString, "getReverseAminoAcidStringFromSequenceString");
|
|
21914
21763
|
function getReverseComplementAminoAcidStringFromSequenceString(sequenceString) {
|
|
21915
|
-
return getAminoAcidStringFromSequenceString(
|
|
21764
|
+
return getAminoAcidStringFromSequenceString(
|
|
21765
|
+
getReverseComplementSequenceString(sequenceString)
|
|
21766
|
+
);
|
|
21916
21767
|
}
|
|
21917
21768
|
__name(getReverseComplementAminoAcidStringFromSequenceString, "getReverseComplementAminoAcidStringFromSequenceString");
|
|
21918
21769
|
function getReverseComplementAnnotation(annotation, sequenceLength) {
|
|
@@ -22762,6 +22613,9 @@ function getMassOfAaString(aaString, numsAfterDecimal = 2, divideByThree = false
|
|
|
22762
22613
|
if (divideByThree) {
|
|
22763
22614
|
sumMass /= 3;
|
|
22764
22615
|
}
|
|
22616
|
+
if (aaString.length > 0) {
|
|
22617
|
+
sumMass = sumMass + 18.0153;
|
|
22618
|
+
}
|
|
22765
22619
|
return Math.round(sumMass * __pow(10, numsAfterDecimal)) / __pow(10, numsAfterDecimal);
|
|
22766
22620
|
}
|
|
22767
22621
|
__name(getMassOfAaString, "getMassOfAaString");
|