igv 3.5.1 → 3.5.2
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 +54 -5
- package/dist/igv.esm.min.js +4 -4
- package/dist/igv.esm.min.js.map +1 -1
- package/dist/igv.js +54 -5
- package/dist/igv.min.js +4 -4
- package/dist/igv.min.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,19 +18,19 @@ Below are examples and a quickstart guide. See the [developer documentation](ht
|
|
|
18
18
|
|
|
19
19
|
# Examples
|
|
20
20
|
|
|
21
|
-
***[Alignments](https://igv.org/web/release/3.5.
|
|
21
|
+
***[Alignments](https://igv.org/web/release/3.5.2/examples/cram-vcf.html)***
|
|
22
22
|
|
|
23
|
-
***[Interactions](https://igv.org/web/release/3.5.
|
|
23
|
+
***[Interactions](https://igv.org/web/release/3.5.2/examples/interact.html)***
|
|
24
24
|
|
|
25
|
-
***[Copy number](https://igv.org/web/release/3.5.
|
|
25
|
+
***[Copy number](https://igv.org/web/release/3.5.2/examples/copyNumber.html)***
|
|
26
26
|
|
|
27
|
-
***[Multiple regions](https://igv.org/web/release/3.5.
|
|
27
|
+
***[Multiple regions](https://igv.org/web/release/3.5.2/examples/multi-locus.html)***
|
|
28
28
|
|
|
29
|
-
***[Mutation Annotation Format (MAF)](https://igv.org/web/release/3.5.
|
|
29
|
+
***[Mutation Annotation Format (MAF)](https://igv.org/web/release/3.5.2/examples/maf-tcga.html)***
|
|
30
30
|
|
|
31
|
-
***[Variant color options](https://igv.org/web/release/3.5.
|
|
31
|
+
***[Variant color options](https://igv.org/web/release/3.5.2/examples/variant-colors.html)***
|
|
32
32
|
|
|
33
|
-
***[More](https://igv.org/web/release/3.5.
|
|
33
|
+
***[More](https://igv.org/web/release/3.5.2/examples/)***
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
# Quickstart
|
|
@@ -39,18 +39,18 @@ Below are examples and a quickstart guide. See the [developer documentation](ht
|
|
|
39
39
|
igv.js consists of a single javascript file with no external dependencies.
|
|
40
40
|
|
|
41
41
|
Pre-built files for script include, AMD, or CJS module systems (igv.min.js) and an ES6 module (igv.esm.min.js)
|
|
42
|
-
can be downloaded from [https://cdn.jsdelivr.net/npm/igv@3.5.
|
|
42
|
+
can be downloaded from [https://cdn.jsdelivr.net/npm/igv@3.5.2/dist/](https://cdn.jsdelivr.net/npm/igv@3.5.2/dist/).
|
|
43
43
|
|
|
44
44
|
To import igv as an ES6 module
|
|
45
45
|
|
|
46
46
|
```javascript
|
|
47
|
-
import igv from "https://cdn.jsdelivr.net/npm/igv@3.5.
|
|
47
|
+
import igv from "https://cdn.jsdelivr.net/npm/igv@3.5.2/dist/igv.esm.min.js"
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
Or as a script include (defines the "igv" global)
|
|
51
51
|
|
|
52
52
|
```html
|
|
53
|
-
<script src="https://cdn.jsdelivr.net/npm/igv@3.5.
|
|
53
|
+
<script src="https://cdn.jsdelivr.net/npm/igv@3.5.2/dist/igv.min.js"></script>
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
Alternatively you can install with npm
|
package/dist/igv.esm.js
CHANGED
|
@@ -27011,14 +27011,14 @@ function getAminoAcidLetterWithExonGap(strand, phase, phaseExtentStart, phaseExt
|
|
|
27011
27011
|
if (phase) {
|
|
27012
27012
|
stringA = sequenceInterval.getSequence(phaseExtentStart, phaseExtentEnd);
|
|
27013
27013
|
|
|
27014
|
-
if (
|
|
27014
|
+
if (!stringA) {
|
|
27015
27015
|
return undefined
|
|
27016
27016
|
}
|
|
27017
27017
|
|
|
27018
27018
|
[ss, ee] = [getEonStart(riteExon), getEonStart(riteExon) + (3 - phase)];
|
|
27019
27019
|
stringB = sequenceInterval.getSequence(ss, ee);
|
|
27020
27020
|
|
|
27021
|
-
if (
|
|
27021
|
+
if (!stringB) {
|
|
27022
27022
|
return undefined
|
|
27023
27023
|
}
|
|
27024
27024
|
|
|
@@ -27030,7 +27030,7 @@ function getAminoAcidLetterWithExonGap(strand, phase, phaseExtentStart, phaseExt
|
|
|
27030
27030
|
if (remainder) {
|
|
27031
27031
|
stringB = sequenceInterval.getSequence(remainder.start, remainder.end);
|
|
27032
27032
|
|
|
27033
|
-
if (
|
|
27033
|
+
if (!stringB) {
|
|
27034
27034
|
return undefined
|
|
27035
27035
|
}
|
|
27036
27036
|
|
|
@@ -27038,7 +27038,7 @@ function getAminoAcidLetterWithExonGap(strand, phase, phaseExtentStart, phaseExt
|
|
|
27038
27038
|
const leftEnd = getExonEnd(leftExon);
|
|
27039
27039
|
stringA = sequenceInterval.getSequence(leftEnd - leftPhase, leftEnd);
|
|
27040
27040
|
|
|
27041
|
-
if (
|
|
27041
|
+
if (!stringA) {
|
|
27042
27042
|
return undefined
|
|
27043
27043
|
}
|
|
27044
27044
|
|
|
@@ -42825,6 +42825,49 @@ class Locus {
|
|
|
42825
42825
|
const end = Number.parseInt(se[1].replace(/,/g, ""));
|
|
42826
42826
|
return new Locus({chr, start, end})
|
|
42827
42827
|
}
|
|
42828
|
+
|
|
42829
|
+
/**
|
|
42830
|
+
* Return true if the locus string represents a single base, e.g. "chr1:12345" or "chr1:12345-12345"
|
|
42831
|
+
* @param locus
|
|
42832
|
+
* @returns {boolean}
|
|
42833
|
+
*/
|
|
42834
|
+
static isSingleBaseLocusString(locus) {
|
|
42835
|
+
|
|
42836
|
+
if (!locus || typeof locus !== 'string') {
|
|
42837
|
+
return false
|
|
42838
|
+
}
|
|
42839
|
+
|
|
42840
|
+
const parts = locus.split(':');
|
|
42841
|
+
if (parts.length <= 1) {
|
|
42842
|
+
return false
|
|
42843
|
+
}
|
|
42844
|
+
|
|
42845
|
+
const range = parts[1].replace(/,/g, '');
|
|
42846
|
+
if (!range) {
|
|
42847
|
+
return false
|
|
42848
|
+
}
|
|
42849
|
+
|
|
42850
|
+
const rangeParts = range.split('-');
|
|
42851
|
+
const startString = rangeParts[0];
|
|
42852
|
+
const start = parseInt(startString, 10);
|
|
42853
|
+
|
|
42854
|
+
if (String(start) !== startString || !Number.isInteger(start)) {
|
|
42855
|
+
return false
|
|
42856
|
+
}
|
|
42857
|
+
|
|
42858
|
+
if (rangeParts.length === 1) {
|
|
42859
|
+
return true
|
|
42860
|
+
}
|
|
42861
|
+
|
|
42862
|
+
const endString = rangeParts[1];
|
|
42863
|
+
const end = parseInt(endString, 10);
|
|
42864
|
+
|
|
42865
|
+
if (String(end) !== endString || !Number.isInteger(end)) {
|
|
42866
|
+
return false
|
|
42867
|
+
}
|
|
42868
|
+
|
|
42869
|
+
return start === end
|
|
42870
|
+
}
|
|
42828
42871
|
}
|
|
42829
42872
|
|
|
42830
42873
|
/*!
|
|
@@ -66980,7 +67023,7 @@ function createReferenceFrameList(loci, genome, browserFlanking, minimumBases, v
|
|
|
66980
67023
|
})
|
|
66981
67024
|
}
|
|
66982
67025
|
|
|
66983
|
-
const _version = "3.5.
|
|
67026
|
+
const _version = "3.5.2";
|
|
66984
67027
|
function version() {
|
|
66985
67028
|
return _version
|
|
66986
67029
|
}
|
|
@@ -74235,6 +74278,12 @@ class Browser {
|
|
|
74235
74278
|
|
|
74236
74279
|
await this.loadTrackList(nonLocalTrackConfigurations);
|
|
74237
74280
|
|
|
74281
|
+
// If an initial locus is defined and represents a single basedo a "search" here. This will force micro
|
|
74282
|
+
// adjustments after width of track column(s) is known. This can be an issue when the center gide is shown
|
|
74283
|
+
// Without this adjustment the single base would be off center by a few pixels.
|
|
74284
|
+
if (session.locus && Locus.isSingleBaseLocusString(session.locus)) {
|
|
74285
|
+
await this.search(session.locus);
|
|
74286
|
+
}
|
|
74238
74287
|
}
|
|
74239
74288
|
|
|
74240
74289
|
cleanHouseForSession() {
|