igv 3.2.5 → 3.2.6
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 +10 -10
- package/dist/igv.esm.js +94 -27
- package/dist/igv.esm.min.js +8 -8
- package/dist/igv.esm.min.js.map +1 -1
- package/dist/igv.js +94 -27
- package/dist/igv.min.js +8 -8
- package/dist/igv.min.js.map +1 -1
- package/package.json +1 -1
package/dist/igv.js
CHANGED
|
@@ -10952,7 +10952,7 @@
|
|
|
10952
10952
|
return list;
|
|
10953
10953
|
}
|
|
10954
10954
|
|
|
10955
|
-
/*! @license DOMPurify 3.2.
|
|
10955
|
+
/*! @license DOMPurify 3.2.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.5/LICENSE */
|
|
10956
10956
|
|
|
10957
10957
|
const {
|
|
10958
10958
|
entries,
|
|
@@ -11012,6 +11012,9 @@
|
|
|
11012
11012
|
*/
|
|
11013
11013
|
function unapply(func) {
|
|
11014
11014
|
return function (thisArg) {
|
|
11015
|
+
if (thisArg instanceof RegExp) {
|
|
11016
|
+
thisArg.lastIndex = 0;
|
|
11017
|
+
}
|
|
11015
11018
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
11016
11019
|
args[_key - 1] = arguments[_key];
|
|
11017
11020
|
}
|
|
@@ -11250,7 +11253,7 @@
|
|
|
11250
11253
|
function createDOMPurify() {
|
|
11251
11254
|
let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
|
|
11252
11255
|
const DOMPurify = root => createDOMPurify(root);
|
|
11253
|
-
DOMPurify.version = '3.2.
|
|
11256
|
+
DOMPurify.version = '3.2.5';
|
|
11254
11257
|
DOMPurify.removed = [];
|
|
11255
11258
|
if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
|
|
11256
11259
|
// Not running in a browser, provide a factory function
|
|
@@ -11855,7 +11858,7 @@
|
|
|
11855
11858
|
allowedTags: ALLOWED_TAGS
|
|
11856
11859
|
});
|
|
11857
11860
|
/* Detect mXSS attempts abusing namespace confusion */
|
|
11858
|
-
if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
|
|
11861
|
+
if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\w!]/g, currentNode.textContent)) {
|
|
11859
11862
|
_forceRemove(currentNode);
|
|
11860
11863
|
return true;
|
|
11861
11864
|
}
|
|
@@ -16349,7 +16352,10 @@
|
|
|
16349
16352
|
}
|
|
16350
16353
|
} else {
|
|
16351
16354
|
// All directives that could change the format, and thus decoder, should have been read by now.
|
|
16352
|
-
|
|
16355
|
+
// Set the decoder, unless it is explicitly set in the track configuration (not common)
|
|
16356
|
+
if(!this.config.decode) {
|
|
16357
|
+
this.setDecoder(header.format);
|
|
16358
|
+
}
|
|
16353
16359
|
|
|
16354
16360
|
// If the line can be parsed as a feature assume we are beyond the header, if any
|
|
16355
16361
|
const tokens = line.split(this.delimiter || "\t");
|
|
@@ -30858,7 +30864,7 @@
|
|
|
30858
30864
|
}
|
|
30859
30865
|
|
|
30860
30866
|
const DEFAULT_GENOMES_URL = "https://igv.org/genomes/genomes.json";
|
|
30861
|
-
const BACKUP_GENOMES_URL = "https://raw.githubusercontent.com/igvteam/igv
|
|
30867
|
+
const BACKUP_GENOMES_URL = "https://raw.githubusercontent.com/igvteam/igv-genomes/refs/heads/main/dist/genomes.json";
|
|
30862
30868
|
|
|
30863
30869
|
const GenomeUtils = {
|
|
30864
30870
|
|
|
@@ -30866,7 +30872,7 @@
|
|
|
30866
30872
|
|
|
30867
30873
|
if (!GenomeUtils.KNOWN_GENOMES) {
|
|
30868
30874
|
|
|
30869
|
-
|
|
30875
|
+
let table = {};
|
|
30870
30876
|
|
|
30871
30877
|
const processJson = (jsonArray, table) => {
|
|
30872
30878
|
jsonArray.forEach(function (json) {
|
|
@@ -30879,12 +30885,12 @@
|
|
|
30879
30885
|
if (config.loadDefaultGenomes !== false) {
|
|
30880
30886
|
try {
|
|
30881
30887
|
const jsonArray = await igvxhr.loadJson(DEFAULT_GENOMES_URL, {timeout: 2000});
|
|
30882
|
-
processJson(jsonArray,
|
|
30888
|
+
processJson(jsonArray, table);
|
|
30883
30889
|
} catch (error) {
|
|
30884
30890
|
try {
|
|
30885
30891
|
console.error("Error initializing default genomes:", error);
|
|
30886
30892
|
const jsonArray = await igvxhr.loadJson(BACKUP_GENOMES_URL, {timeout: 2000});
|
|
30887
|
-
processJson(jsonArray,
|
|
30893
|
+
processJson(jsonArray, table);
|
|
30888
30894
|
} catch (e) {
|
|
30889
30895
|
console.error("Error initializing backup genomes:", error);
|
|
30890
30896
|
}
|
|
@@ -30896,11 +30902,12 @@
|
|
|
30896
30902
|
if (genomeList) {
|
|
30897
30903
|
if (typeof genomeList === 'string') {
|
|
30898
30904
|
const jsonArray = await igvxhr.loadJson(genomeList, {});
|
|
30899
|
-
processJson(jsonArray,
|
|
30905
|
+
processJson(jsonArray, table);
|
|
30900
30906
|
} else {
|
|
30901
|
-
processJson(genomeList,
|
|
30907
|
+
processJson(genomeList, table);
|
|
30902
30908
|
}
|
|
30903
30909
|
}
|
|
30910
|
+
GenomeUtils.KNOWN_GENOMES = table;
|
|
30904
30911
|
}
|
|
30905
30912
|
},
|
|
30906
30913
|
|
|
@@ -47627,7 +47634,7 @@
|
|
|
47627
47634
|
if (!this.colorBy) {
|
|
47628
47635
|
this.colorBy = this.hasPairs ? "unexpectedPair" : "none";
|
|
47629
47636
|
}
|
|
47630
|
-
|
|
47637
|
+
|
|
47631
47638
|
let pixelTop = options.pixelTop - BAMTrack.coverageTrackHeight;
|
|
47632
47639
|
if (this.top) {
|
|
47633
47640
|
ctx.translate(0, this.top);
|
|
@@ -48334,7 +48341,12 @@
|
|
|
48334
48341
|
this.trackView.repaintViews();
|
|
48335
48342
|
}
|
|
48336
48343
|
|
|
48337
|
-
return {
|
|
48344
|
+
return {
|
|
48345
|
+
name: undefined,
|
|
48346
|
+
element: createCheckbox(menuItem.label, showCheck),
|
|
48347
|
+
click: clickHandler,
|
|
48348
|
+
init: undefined
|
|
48349
|
+
}
|
|
48338
48350
|
}
|
|
48339
48351
|
|
|
48340
48352
|
|
|
@@ -48381,7 +48393,12 @@
|
|
|
48381
48393
|
}
|
|
48382
48394
|
}
|
|
48383
48395
|
|
|
48384
|
-
return {
|
|
48396
|
+
return {
|
|
48397
|
+
name: undefined,
|
|
48398
|
+
element: createCheckbox(menuItem.label, showCheck),
|
|
48399
|
+
dialog: clickHandler,
|
|
48400
|
+
init: undefined
|
|
48401
|
+
}
|
|
48385
48402
|
|
|
48386
48403
|
}
|
|
48387
48404
|
|
|
@@ -48503,38 +48520,88 @@
|
|
|
48503
48520
|
});
|
|
48504
48521
|
}
|
|
48505
48522
|
|
|
48523
|
+
list.push('<hr/>');
|
|
48524
|
+
const softClips = clickedAlignment.softClippedBlocks();
|
|
48506
48525
|
list.push({
|
|
48507
48526
|
label: 'View read sequence',
|
|
48508
48527
|
click: () => {
|
|
48509
|
-
const seqstring = clickedAlignment.seq;
|
|
48510
|
-
|
|
48511
|
-
this.browser.alert.present("Read sequence: *");
|
|
48512
|
-
} else {
|
|
48513
|
-
this.browser.alert.present(seqstring);
|
|
48514
|
-
}
|
|
48528
|
+
const seqstring = clickedAlignment.seq;
|
|
48529
|
+
this.browser.alert.present(seqstring && seqstring !== "*" ? seqstring : "Read sequence: *");
|
|
48515
48530
|
}
|
|
48516
48531
|
});
|
|
48517
48532
|
|
|
48533
|
+
if (softClips.left && softClips.left.len > 0) {
|
|
48534
|
+
list.push({
|
|
48535
|
+
label: 'View left soft-clipped sequence',
|
|
48536
|
+
click: () => {
|
|
48537
|
+
const clippedSequence = clickedAlignment.seq.substring(softClips.left.seqOffset, softClips.left.seqOffset + softClips.left.len);
|
|
48538
|
+
this.browser.alert.present(clippedSequence);
|
|
48539
|
+
}
|
|
48540
|
+
});
|
|
48541
|
+
}
|
|
48542
|
+
|
|
48543
|
+
if (softClips.right && softClips.right.len > 0) {
|
|
48544
|
+
list.push({
|
|
48545
|
+
label: 'View right soft-clipped sequence',
|
|
48546
|
+
click: () => {
|
|
48547
|
+
const clippedSequence = clickedAlignment.seq.substring(softClips.right.seqOffset, softClips.right.seqOffset + softClips.right.len);
|
|
48548
|
+
this.browser.alert.present(clippedSequence);
|
|
48549
|
+
}
|
|
48550
|
+
});
|
|
48551
|
+
}
|
|
48552
|
+
|
|
48553
|
+
list.push('<hr/>');
|
|
48554
|
+
|
|
48518
48555
|
if (isSecureContext()) {
|
|
48519
48556
|
list.push({
|
|
48520
48557
|
label: 'Copy read sequence',
|
|
48521
48558
|
click: async () => {
|
|
48522
|
-
const seq = clickedAlignment.seq; //.map(b => String.fromCharCode(b)).join("");
|
|
48523
48559
|
try {
|
|
48524
|
-
await navigator.clipboard.writeText(seq);
|
|
48560
|
+
await navigator.clipboard.writeText(clickedAlignment.seq);
|
|
48525
48561
|
} catch (e) {
|
|
48526
48562
|
console.error(e);
|
|
48527
48563
|
this.browser.alert.present(`error copying sequence to clipboard ${e}`);
|
|
48528
48564
|
}
|
|
48529
|
-
|
|
48530
48565
|
}
|
|
48531
48566
|
});
|
|
48567
|
+
|
|
48568
|
+
if (softClips.left && softClips.left.len > 0) {
|
|
48569
|
+
list.push({
|
|
48570
|
+
label: 'Copy left soft-clipped sequence',
|
|
48571
|
+
click: async () => {
|
|
48572
|
+
try {
|
|
48573
|
+
const clippedSequence = clickedAlignment.seq.substring(softClips.left.seqOffset, softClips.left.seqOffset + softClips.left.len);
|
|
48574
|
+
await navigator.clipboard.writeText(clippedSequence);
|
|
48575
|
+
} catch (e) {
|
|
48576
|
+
console.error(e);
|
|
48577
|
+
this.browser.alert.present(`error copying sequence to clipboard ${e}`);
|
|
48578
|
+
}
|
|
48579
|
+
}
|
|
48580
|
+
});
|
|
48581
|
+
}
|
|
48582
|
+
|
|
48583
|
+
if (softClips.right && softClips.right.len > 0) {
|
|
48584
|
+
list.push({
|
|
48585
|
+
label: 'Copy right soft-clipped sequence',
|
|
48586
|
+
click: async () => {
|
|
48587
|
+
try {
|
|
48588
|
+
const clippedSequence = clickedAlignment.seq.substring(softClips.right.seqOffset, softClips.right.seqOffset + softClips.right.len);
|
|
48589
|
+
await navigator.clipboard.writeText(clippedSequence);
|
|
48590
|
+
} catch (e) {
|
|
48591
|
+
console.error(e);
|
|
48592
|
+
this.browser.alert.present(`error copying sequence to clipboard ${e}`);
|
|
48593
|
+
}
|
|
48594
|
+
}
|
|
48595
|
+
});
|
|
48596
|
+
}
|
|
48532
48597
|
}
|
|
48533
48598
|
|
|
48534
|
-
// TODO if genome supports blat
|
|
48599
|
+
// TODO test if genome supports blat
|
|
48535
48600
|
const seqstring = clickedAlignment.seq;
|
|
48536
48601
|
if (seqstring && "*" !== seqstring) {
|
|
48537
48602
|
|
|
48603
|
+
list.push('<hr/>');
|
|
48604
|
+
|
|
48538
48605
|
if (seqstring.length < maxSequenceSize$1) {
|
|
48539
48606
|
list.push({
|
|
48540
48607
|
label: 'BLAT read sequence',
|
|
@@ -48552,7 +48619,7 @@
|
|
|
48552
48619
|
list.push({
|
|
48553
48620
|
label: 'BLAT left soft-clipped sequence',
|
|
48554
48621
|
click: () => {
|
|
48555
|
-
const clippedSequence = seqstring.
|
|
48622
|
+
const clippedSequence = seqstring.substring(softClips.left.seqOffset, softClips.left.seqOffset + softClips.left.len);
|
|
48556
48623
|
const sequence = clickedAlignment.isNegativeStrand() ? reverseComplementSequence(clippedSequence) : clippedSequence;
|
|
48557
48624
|
const name = `${clickedAlignment.readName} - blat left clip`;
|
|
48558
48625
|
const title = `${this.name} - ${name}`;
|
|
@@ -48564,7 +48631,7 @@
|
|
|
48564
48631
|
list.push({
|
|
48565
48632
|
label: 'BLAT right soft-clipped sequence',
|
|
48566
48633
|
click: () => {
|
|
48567
|
-
const clippedSequence = seqstring.
|
|
48634
|
+
const clippedSequence = seqstring.substring(softClips.right.seqOffset, softClips.right.seqOffset + softClips.right.len);
|
|
48568
48635
|
const sequence = clickedAlignment.isNegativeStrand() ? reverseComplementSequence(clippedSequence) : clippedSequence;
|
|
48569
48636
|
const name = `${clickedAlignment.readName} - blat right clip`;
|
|
48570
48637
|
const title = `${this.name} - ${name}`;
|
|
@@ -48613,7 +48680,7 @@
|
|
|
48613
48680
|
const offsetY = y - this.top;
|
|
48614
48681
|
const genomicLocation = clickState.genomicLocation;
|
|
48615
48682
|
|
|
48616
|
-
if(features.packedGroups) {
|
|
48683
|
+
if (features.packedGroups) {
|
|
48617
48684
|
let minGroupY = Number.MAX_VALUE;
|
|
48618
48685
|
for (let group of features.packedGroups.values()) {
|
|
48619
48686
|
minGroupY = Math.min(minGroupY, group.pixelTop);
|
|
@@ -69452,7 +69519,7 @@ ${indent}columns: ${matrix.columns}
|
|
|
69452
69519
|
})
|
|
69453
69520
|
}
|
|
69454
69521
|
|
|
69455
|
-
const _version = "3.2.
|
|
69522
|
+
const _version = "3.2.6";
|
|
69456
69523
|
function version() {
|
|
69457
69524
|
return _version
|
|
69458
69525
|
}
|