jbrowse-plugin-msaview 2.7.4 → 2.8.0
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/dist/LaunchMsaView/components/OrthologQuery/OrthologPanel.js +16 -13
- package/dist/LaunchMsaView/components/TranscriptSelector.js +7 -1
- package/dist/jbrowse-plugin-msaview.umd.production.min.js +15 -15
- package/dist/jbrowse-plugin-msaview.umd.production.min.js.map +2 -2
- package/dist/utils/ncbiOrthologs.d.ts +34 -4
- package/dist/utils/ncbiOrthologs.js +33 -3
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/LaunchMsaView/components/OrthologQuery/OrthologPanel.tsx +22 -22
- package/src/LaunchMsaView/components/TranscriptSelector.tsx +6 -0
- package/src/utils/ncbiOrthologs.ts +33 -3
- package/src/version.ts +1 -1
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
export declare const COMMON_SPECIES: readonly [{
|
|
2
2
|
readonly label: "Human";
|
|
3
3
|
readonly taxId: 9606;
|
|
4
|
+
}, {
|
|
5
|
+
readonly label: "Chimpanzee";
|
|
6
|
+
readonly taxId: 9598;
|
|
7
|
+
}, {
|
|
8
|
+
readonly label: "Gorilla";
|
|
9
|
+
readonly taxId: 9595;
|
|
10
|
+
}, {
|
|
11
|
+
readonly label: "Rhesus macaque";
|
|
12
|
+
readonly taxId: 9544;
|
|
13
|
+
}, {
|
|
14
|
+
readonly label: "Marmoset";
|
|
15
|
+
readonly taxId: 9483;
|
|
4
16
|
}, {
|
|
5
17
|
readonly label: "Mouse";
|
|
6
18
|
readonly taxId: 10090;
|
|
@@ -8,14 +20,32 @@ export declare const COMMON_SPECIES: readonly [{
|
|
|
8
20
|
readonly label: "Rat";
|
|
9
21
|
readonly taxId: 10116;
|
|
10
22
|
}, {
|
|
11
|
-
readonly label: "
|
|
12
|
-
readonly taxId:
|
|
23
|
+
readonly label: "Guinea pig";
|
|
24
|
+
readonly taxId: 10141;
|
|
13
25
|
}, {
|
|
14
|
-
readonly label: "
|
|
15
|
-
readonly taxId:
|
|
26
|
+
readonly label: "Rabbit";
|
|
27
|
+
readonly taxId: 9986;
|
|
28
|
+
}, {
|
|
29
|
+
readonly label: "Cat";
|
|
30
|
+
readonly taxId: 9685;
|
|
16
31
|
}, {
|
|
17
32
|
readonly label: "Dog";
|
|
18
33
|
readonly taxId: 9615;
|
|
34
|
+
}, {
|
|
35
|
+
readonly label: "Horse";
|
|
36
|
+
readonly taxId: 9796;
|
|
37
|
+
}, {
|
|
38
|
+
readonly label: "Pig";
|
|
39
|
+
readonly taxId: 9823;
|
|
40
|
+
}, {
|
|
41
|
+
readonly label: "Cow";
|
|
42
|
+
readonly taxId: 9913;
|
|
43
|
+
}, {
|
|
44
|
+
readonly label: "Sheep";
|
|
45
|
+
readonly taxId: 9940;
|
|
46
|
+
}, {
|
|
47
|
+
readonly label: "Opossum";
|
|
48
|
+
readonly taxId: 13616;
|
|
19
49
|
}, {
|
|
20
50
|
readonly label: "Chicken";
|
|
21
51
|
readonly taxId: 9031;
|
|
@@ -23,14 +23,44 @@ const DATASETS = 'https://api.ncbi.nlm.nih.gov/datasets/v2';
|
|
|
23
23
|
const EUTILS = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils';
|
|
24
24
|
// The species panel offered in the launch dialog, ordered from the reference
|
|
25
25
|
// outward so a run that finds only close relatives still reads as a ladder.
|
|
26
|
-
// Orthologs absent for a given gene are skipped rather than erroring
|
|
26
|
+
// Orthologs absent for a given gene are skipped rather than erroring, and the
|
|
27
|
+
// index order here is the ROW order of the alignment (COMMON_TAX_RANK below).
|
|
28
|
+
//
|
|
29
|
+
// THE MAMMALS EARN THEIR PLACE, and the reason is measured rather than aesthetic.
|
|
30
|
+
// The thirteen this list used to hold were one per major clade, which reads well
|
|
31
|
+
// on a gene conserved to yeast and produces almost nothing on a gene that is not:
|
|
32
|
+
// NCBI publishes 165 orthologs for human NLRP1 and every one of them is a mammal,
|
|
33
|
+
// so of the old thirteen only Human, Mouse, Cow, Pig and Dog returned a row --
|
|
34
|
+
// five, and Rat not among them, since NLRP1 is absent in Rattus norvegicus. The
|
|
35
|
+
// same query against this list returns twelve. An inflammasome gene is not an
|
|
36
|
+
// unusual case; anything immune, reproductive or lineage-specific behaves the
|
|
37
|
+
// same way, and those are the genes a person opens an ortholog alignment on.
|
|
38
|
+
//
|
|
39
|
+
// Cat, rabbit and opossum are here despite contributing nothing to that gene.
|
|
40
|
+
// They are the three that most often separate "absent in this clade" from
|
|
41
|
+
// "absent in this species", which is the question a gap in the alignment raises.
|
|
42
|
+
//
|
|
43
|
+
// The cost is the run, and it is roughly linear: one NCBI protein fetch per
|
|
44
|
+
// species and a Clustal Omega job over what comes back, so ~23 rows is about
|
|
45
|
+
// twice the ~13-row wait. Still seconds rather than the minutes BLAST takes,
|
|
46
|
+
// which is the comparison the panel's own text makes.
|
|
27
47
|
export const COMMON_SPECIES = [
|
|
28
48
|
{ label: 'Human', taxId: 9606 },
|
|
49
|
+
{ label: 'Chimpanzee', taxId: 9598 },
|
|
50
|
+
{ label: 'Gorilla', taxId: 9595 },
|
|
51
|
+
{ label: 'Rhesus macaque', taxId: 9544 },
|
|
52
|
+
{ label: 'Marmoset', taxId: 9483 },
|
|
29
53
|
{ label: 'Mouse', taxId: 10090 },
|
|
30
54
|
{ label: 'Rat', taxId: 10116 },
|
|
31
|
-
{ label: '
|
|
32
|
-
{ label: '
|
|
55
|
+
{ label: 'Guinea pig', taxId: 10141 },
|
|
56
|
+
{ label: 'Rabbit', taxId: 9986 },
|
|
57
|
+
{ label: 'Cat', taxId: 9685 },
|
|
33
58
|
{ label: 'Dog', taxId: 9615 },
|
|
59
|
+
{ label: 'Horse', taxId: 9796 },
|
|
60
|
+
{ label: 'Pig', taxId: 9823 },
|
|
61
|
+
{ label: 'Cow', taxId: 9913 },
|
|
62
|
+
{ label: 'Sheep', taxId: 9940 },
|
|
63
|
+
{ label: 'Opossum', taxId: 13616 },
|
|
34
64
|
{ label: 'Chicken', taxId: 9031 },
|
|
35
65
|
{ label: 'Frog', taxId: 8364 },
|
|
36
66
|
{ label: 'Zebrafish', taxId: 7955 },
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "2.
|
|
1
|
+
export declare const version = "2.8.0";
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '2.
|
|
1
|
+
export const version = '2.8.0';
|
package/package.json
CHANGED
|
@@ -26,18 +26,22 @@ const useStyles = makeStyles()({
|
|
|
26
26
|
selectField: {
|
|
27
27
|
width: 180,
|
|
28
28
|
},
|
|
29
|
+
// A GRID, not a wrapping flex row of fixed-width items. The old form was three
|
|
30
|
+
// 160px columns inside a 560px box, which is five rows for thirteen species and
|
|
31
|
+
// eight for twenty-three -- and the checkbox list is the tallest thing in the
|
|
32
|
+
// dialog, so those rows are the dialog's height. Five auto-fitted columns is
|
|
33
|
+
// five rows for twenty-three, i.e. more species in less space, and it reflows
|
|
34
|
+
// rather than being pinned to a width the dialog may not have.
|
|
29
35
|
speciesBox: {
|
|
30
|
-
display: '
|
|
31
|
-
|
|
32
|
-
maxWidth:
|
|
33
|
-
marginTop:
|
|
36
|
+
display: 'grid',
|
|
37
|
+
gridTemplateColumns: 'repeat(auto-fit, minmax(130px, 1fr))',
|
|
38
|
+
maxWidth: 700,
|
|
39
|
+
marginTop: 4,
|
|
34
40
|
},
|
|
41
|
+
// The label carries the row height; the default control padding is what makes
|
|
42
|
+
// 23 rows of it tall.
|
|
35
43
|
species: {
|
|
36
|
-
|
|
37
|
-
},
|
|
38
|
-
infoText: {
|
|
39
|
-
marginTop: 20,
|
|
40
|
-
maxWidth: 620,
|
|
44
|
+
marginRight: 0,
|
|
41
45
|
},
|
|
42
46
|
})
|
|
43
47
|
|
|
@@ -69,13 +73,14 @@ const OrthologPanel = observer(function ({
|
|
|
69
73
|
return (
|
|
70
74
|
<>
|
|
71
75
|
<LaunchPanelContent error={e}>
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
{/* One line rather than seven. What a reader needs here is which tab
|
|
77
|
+
to pick, and that is the seconds-against-minutes comparison; the
|
|
78
|
+
rest (species labels, CDD overlay, the query row being the selected
|
|
79
|
+
transcript) is visible in the result or documented, and as prose it
|
|
80
|
+
was most of the dialog's height. */}
|
|
81
|
+
<Typography variant="body2">
|
|
82
|
+
NCBI's precomputed orthologs, one gene per species, aligned at EBI
|
|
83
|
+
in seconds rather than the 10+ minutes BLAST takes.
|
|
79
84
|
</Typography>
|
|
80
85
|
|
|
81
86
|
<div>
|
|
@@ -104,7 +109,7 @@ const OrthologPanel = observer(function ({
|
|
|
104
109
|
/>
|
|
105
110
|
</div>
|
|
106
111
|
|
|
107
|
-
<Typography variant="subtitle2" style={{ marginTop:
|
|
112
|
+
<Typography variant="subtitle2" style={{ marginTop: 8 }}>
|
|
108
113
|
Species to include (those without an ortholog are skipped)
|
|
109
114
|
</Typography>
|
|
110
115
|
<div className={classes.speciesBox}>
|
|
@@ -131,11 +136,6 @@ const OrthologPanel = observer(function ({
|
|
|
131
136
|
|
|
132
137
|
<TranscriptSelector feature={feature} {...transcriptSelection} />
|
|
133
138
|
|
|
134
|
-
<Typography className={classes.infoText} variant="body2">
|
|
135
|
-
The query row is the transcript selected above, not NCBI's
|
|
136
|
-
representative protein, so the alignment stays linked to the genome
|
|
137
|
-
view at codon resolution.
|
|
138
|
-
</Typography>
|
|
139
139
|
</LaunchPanelContent>
|
|
140
140
|
<SubmitCancelActions
|
|
141
141
|
submitDisabled={!proteinSequence || taxa.length < 2}
|
|
@@ -53,6 +53,12 @@ export default function TranscriptSelector({
|
|
|
53
53
|
<TextField
|
|
54
54
|
variant="outlined"
|
|
55
55
|
label={`Choose isoform of ${getGeneDisplayName(feature)}`}
|
|
56
|
+
// The query row is this transcript rather than NCBI's representative
|
|
57
|
+
// protein, which is what keeps the alignment linked to the genome view
|
|
58
|
+
// at codon resolution. It used to be a paragraph under the panel; as
|
|
59
|
+
// helper text it says the same thing where the choice is made and
|
|
60
|
+
// costs no height of its own.
|
|
61
|
+
helperText="the query row, so the alignment stays linked to the genome view"
|
|
56
62
|
select
|
|
57
63
|
className={classes.minWidth}
|
|
58
64
|
value={selectedId}
|
|
@@ -26,14 +26,44 @@ const EUTILS = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils'
|
|
|
26
26
|
|
|
27
27
|
// The species panel offered in the launch dialog, ordered from the reference
|
|
28
28
|
// outward so a run that finds only close relatives still reads as a ladder.
|
|
29
|
-
// Orthologs absent for a given gene are skipped rather than erroring
|
|
29
|
+
// Orthologs absent for a given gene are skipped rather than erroring, and the
|
|
30
|
+
// index order here is the ROW order of the alignment (COMMON_TAX_RANK below).
|
|
31
|
+
//
|
|
32
|
+
// THE MAMMALS EARN THEIR PLACE, and the reason is measured rather than aesthetic.
|
|
33
|
+
// The thirteen this list used to hold were one per major clade, which reads well
|
|
34
|
+
// on a gene conserved to yeast and produces almost nothing on a gene that is not:
|
|
35
|
+
// NCBI publishes 165 orthologs for human NLRP1 and every one of them is a mammal,
|
|
36
|
+
// so of the old thirteen only Human, Mouse, Cow, Pig and Dog returned a row --
|
|
37
|
+
// five, and Rat not among them, since NLRP1 is absent in Rattus norvegicus. The
|
|
38
|
+
// same query against this list returns twelve. An inflammasome gene is not an
|
|
39
|
+
// unusual case; anything immune, reproductive or lineage-specific behaves the
|
|
40
|
+
// same way, and those are the genes a person opens an ortholog alignment on.
|
|
41
|
+
//
|
|
42
|
+
// Cat, rabbit and opossum are here despite contributing nothing to that gene.
|
|
43
|
+
// They are the three that most often separate "absent in this clade" from
|
|
44
|
+
// "absent in this species", which is the question a gap in the alignment raises.
|
|
45
|
+
//
|
|
46
|
+
// The cost is the run, and it is roughly linear: one NCBI protein fetch per
|
|
47
|
+
// species and a Clustal Omega job over what comes back, so ~23 rows is about
|
|
48
|
+
// twice the ~13-row wait. Still seconds rather than the minutes BLAST takes,
|
|
49
|
+
// which is the comparison the panel's own text makes.
|
|
30
50
|
export const COMMON_SPECIES = [
|
|
31
51
|
{ label: 'Human', taxId: 9606 },
|
|
52
|
+
{ label: 'Chimpanzee', taxId: 9598 },
|
|
53
|
+
{ label: 'Gorilla', taxId: 9595 },
|
|
54
|
+
{ label: 'Rhesus macaque', taxId: 9544 },
|
|
55
|
+
{ label: 'Marmoset', taxId: 9483 },
|
|
32
56
|
{ label: 'Mouse', taxId: 10090 },
|
|
33
57
|
{ label: 'Rat', taxId: 10116 },
|
|
34
|
-
{ label: '
|
|
35
|
-
{ label: '
|
|
58
|
+
{ label: 'Guinea pig', taxId: 10141 },
|
|
59
|
+
{ label: 'Rabbit', taxId: 9986 },
|
|
60
|
+
{ label: 'Cat', taxId: 9685 },
|
|
36
61
|
{ label: 'Dog', taxId: 9615 },
|
|
62
|
+
{ label: 'Horse', taxId: 9796 },
|
|
63
|
+
{ label: 'Pig', taxId: 9823 },
|
|
64
|
+
{ label: 'Cow', taxId: 9913 },
|
|
65
|
+
{ label: 'Sheep', taxId: 9940 },
|
|
66
|
+
{ label: 'Opossum', taxId: 13616 },
|
|
37
67
|
{ label: 'Chicken', taxId: 9031 },
|
|
38
68
|
{ label: 'Frog', taxId: 8364 },
|
|
39
69
|
{ label: 'Zebrafish', taxId: 7955 },
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '2.
|
|
1
|
+
export const version = '2.8.0'
|