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.
@@ -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: "Cow";
12
- readonly taxId: 9913;
23
+ readonly label: "Guinea pig";
24
+ readonly taxId: 10141;
13
25
  }, {
14
- readonly label: "Pig";
15
- readonly taxId: 9823;
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: 'Cow', taxId: 9913 },
32
- { label: 'Pig', taxId: 9823 },
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.7.4";
1
+ export declare const version = "2.8.0";
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const version = '2.7.4';
1
+ export const version = '2.8.0';
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.7.4",
2
+ "version": "2.8.0",
3
3
  "license": "MIT",
4
4
  "name": "jbrowse-plugin-msaview",
5
5
  "repository": {
@@ -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: 'flex',
31
- flexWrap: 'wrap',
32
- maxWidth: 560,
33
- marginTop: 12,
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
- width: 160,
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
- <Typography>
73
- Builds the alignment from NCBI&apos;s precomputed orthologs — one gene
74
- per species — instead of searching. There is no job to wait on: the
75
- NCBI lookups take about a second, and only the multiple alignment at
76
- EBI costs real time (~10s), against 10+ minutes for BLAST. Rows come
77
- out labelled by species rather than by accession, and NCBI&apos;s CDD
78
- domains are overlaid automatically.
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&apos;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: 12 }}>
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&apos;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: 'Cow', taxId: 9913 },
35
- { label: 'Pig', taxId: 9823 },
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.7.4'
1
+ export const version = '2.8.0'