cgeorgiaw HF Staff commited on
Commit
447bf4f
·
verified ·
1 Parent(s): 7d9eeed

Rename Data Bank to Database throughout the Space

Browse files
Files changed (5) hide show
  1. FEATURE_BACKLOG.md +2 -2
  2. README.md +1 -1
  3. app.css +5 -5
  4. app.py +4 -4
  5. taxonomy.py +1 -1
FEATURE_BACKLOG.md CHANGED
@@ -103,7 +103,7 @@ Decisions and dependencies for implementation:
103
 
104
  **Goal:** Keep accession searches and annotation retrieval responsive as the app expands beyond its bundled sample.
105
 
106
- Current baseline: the Data bank uses a compact, read-only SQLite index covering every published annotation Parquet object in its dated inventory. Shared assembly/provenance metadata and indexed accession fields keep the database small. It fetches selected row groups on demand, checks source content hashes, and uses a bounded cache. Whole-contig and segmented records are supported. The full builder saves resumable checkpoints and reuses unchanged objects on refresh.
107
 
108
  Remaining work includes automatic refresh/publication, pagination beyond 200 matches, and reducing large-row-group transfer costs.
109
 
@@ -146,4 +146,4 @@ Give each new feature a stable ID, a goal, a status, desired behavior, and open
146
 
147
  ## Atlas research sections
148
 
149
- Planned: add RefSeq annotation exploration beneath the eukaryotic tree in the **Genome atlas** tab, and experimental results in the dedicated **Wet Lab Experiments** tab. The wet-lab tab exists with a coming-soon state; no results have been added yet. Decide on the comparison views and experimental summaries when those data are ready. Accession lookup, segment viewing, and downloads now live in the separate **Data bank** tab.
 
103
 
104
  **Goal:** Keep accession searches and annotation retrieval responsive as the app expands beyond its bundled sample.
105
 
106
+ Current baseline: the Database uses a compact, read-only SQLite index covering every published annotation Parquet object in its dated inventory. Shared assembly/provenance metadata and indexed accession fields keep the database small. It fetches selected row groups on demand, checks source content hashes, and uses a bounded cache. Whole-contig and segmented records are supported. The full builder saves resumable checkpoints and reuses unchanged objects on refresh.
107
 
108
  Remaining work includes automatic refresh/publication, pagination beyond 200 matches, and reducing large-row-group transfer costs.
109
 
 
146
 
147
  ## Atlas research sections
148
 
149
+ Planned: add RefSeq annotation exploration beneath the eukaryotic tree in the **Genome atlas** tab, and experimental results in the dedicated **Wet Lab Experiments** tab. The wet-lab tab exists with a coming-soon state; no results have been added yet. Decide on the comparison views and experimental summaries when those data are ready. Accession lookup, segment viewing, and downloads now live in the separate **Database** tab.
README.md CHANGED
@@ -17,7 +17,7 @@ Future features and open design decisions are tracked in the [feature backlog](F
17
 
18
  ## GenBank taxonomy
19
 
20
- The landing page opens with an interactive **tree of eukaryotic life**, using NCBI's current GenBank assembly summary and taxonomy. Curved branches and nodes are colored by the fraction of assemblies with published annotations: gray for none found in the inventory, increasingly dark teal for higher percentages. Counts and percentages appear beside the groups, with details on hover. The default **Genome atlas** tab contains the tree and its lineage controls. A separate **Data bank** tab holds accession search, segment visualization, and downloads, using the full published-file snapshot. A third **Wet Lab Experiments** tab is ready for experimental results and currently shows a clearly labeled coming-soon state. RefSeq exploration can be added beneath the tree. The three equal-width navigation options span the top of the page.
21
 
22
  The viewer is restricted to **Eukaryota (NCBI taxid 2759) and its descendants**, including search, breadcrumbs, and parent navigation. The model predicts eukaryotic annotations; bacteria, archaea, and viruses are outside this display. The current eukaryotic snapshot contains **70,395 assemblies**, of which **17,561 (24.9%)** have published annotations. The underlying SQLite snapshot retains the full NCBI inventory for refresh/provenance, while the interface uses only the eukaryotic subtree and its denominators. Assemblies with unresolved taxonomy cannot be assigned to that subtree and are excluded.
23
 
 
17
 
18
  ## GenBank taxonomy
19
 
20
+ The landing page opens with an interactive **tree of eukaryotic life**, using NCBI's current GenBank assembly summary and taxonomy. Curved branches and nodes are colored by the fraction of assemblies with published annotations: gray for none found in the inventory, increasingly dark teal for higher percentages. Counts and percentages appear beside the groups, with details on hover. The default **Genome atlas** tab contains the tree and its lineage controls. A separate **Database** tab holds accession search, segment visualization, and downloads, using the full published-file snapshot. A third **Wet Lab Experiments** tab is ready for experimental results and currently shows a clearly labeled coming-soon state. RefSeq exploration can be added beneath the tree. The three equal-width navigation options span the top of the page.
21
 
22
  The viewer is restricted to **Eukaryota (NCBI taxid 2759) and its descendants**, including search, breadcrumbs, and parent navigation. The model predicts eukaryotic annotations; bacteria, archaea, and viruses are outside this display. The current eukaryotic snapshot contains **70,395 assemblies**, of which **17,561 (24.9%)** have published annotations. The underlying SQLite snapshot retains the full NCBI inventory for refresh/provenance, while the interface uses only the eukaryotic subtree and its denominators. Assemblies with unresolved taxonomy cannot be assigned to that subtree and are excluded.
23
 
app.css CHANGED
@@ -48,11 +48,11 @@
48
  #atlas-navigation > .tab-wrapper > .tab-container::before, #atlas-navigation > .tab-wrapper > .tab-container::after,
49
  #atlas-navigation > .tab-wrapper > .tab-container > button::before, #atlas-navigation > .tab-wrapper > .tab-container > button::after { content:none!important; display:none!important; }
50
  #atlas-navigation > .tab-wrapper > .overflow-menu { display:none!important; }
51
- #atlas-overview, #atlas-data-bank, #atlas-wet-lab { border:0; background:transparent; padding:0; min-width:0; max-width:100%; }
52
- .data-bank-heading { padding:14px 4px 12px; }
53
- .data-bank-heading .data-bank-eyebrow { color:#647467; font:11px/1.4 Arial,Helvetica,sans-serif; letter-spacing:2px; margin:0 0 12px; }
54
- .data-bank-heading h1 { color:#173c30; font:400 clamp(32px,5vw,48px)/1.1 Georgia,'Times New Roman',serif; letter-spacing:-1px; margin:0 0 12px; }
55
- .data-bank-heading p { color:#647467; font:14px/1.6 Arial,Helvetica,sans-serif; margin:0; }
56
  .wet-lab-empty { background:#f7f8f0; border:1px solid #e0e6d8; border-radius:24px; padding:48px 36px; margin:8px 0 32px; }
57
  .wet-lab-status { display:inline-block; padding:6px 12px; background:#e5eddf; color:#52694f; border-radius:999px; font:500 12px/1.4 Arial,sans-serif; }
58
  .wet-lab-empty h2 { font:400 32px/1.2 Georgia,'Times New Roman',serif; color:#173c30; margin:22px 0 12px; }
 
48
  #atlas-navigation > .tab-wrapper > .tab-container::before, #atlas-navigation > .tab-wrapper > .tab-container::after,
49
  #atlas-navigation > .tab-wrapper > .tab-container > button::before, #atlas-navigation > .tab-wrapper > .tab-container > button::after { content:none!important; display:none!important; }
50
  #atlas-navigation > .tab-wrapper > .overflow-menu { display:none!important; }
51
+ #atlas-overview, #atlas-database, #atlas-wet-lab { border:0; background:transparent; padding:0; min-width:0; max-width:100%; }
52
+ .database-heading { padding:14px 4px 12px; }
53
+ .database-heading .database-eyebrow { color:#647467; font:11px/1.4 Arial,Helvetica,sans-serif; letter-spacing:2px; margin:0 0 12px; }
54
+ .database-heading h1 { color:#173c30; font:400 clamp(32px,5vw,48px)/1.1 Georgia,'Times New Roman',serif; letter-spacing:-1px; margin:0 0 12px; }
55
+ .database-heading p { color:#647467; font:14px/1.6 Arial,Helvetica,sans-serif; margin:0; }
56
  .wet-lab-empty { background:#f7f8f0; border:1px solid #e0e6d8; border-radius:24px; padding:48px 36px; margin:8px 0 32px; }
57
  .wet-lab-status { display:inline-block; padding:6px 12px; background:#e5eddf; color:#52694f; border-radius:999px; font:500 12px/1.4 Arial,sans-serif; }
58
  .wet-lab-empty h2 { font:400 32px/1.2 Georgia,'Times New Roman',serif; color:#173c30; margin:22px 0 12px; }
app.py CHANGED
@@ -132,9 +132,9 @@ def build_app(catalog=None):
132
  with gr.Tabs(selected="atlas", elem_id="atlas-navigation"):
133
  with gr.Tab("Genome Atlas", id="atlas", elem_id="atlas-overview"):
134
  build_taxonomy_tab()
135
- with gr.Tab("Data Bank", id="data-bank", elem_id="atlas-data-bank"):
136
- gr.HTML('<header class="data-bank-heading"><p class="data-bank-eyebrow">THE ANNOTATION COLLECTION</p>'
137
- '<h1>Explore the data bank</h1><p>Find an accession, explore its coding landscape, and download the annotations.</p></header>',
138
  apply_default_css=False)
139
  with gr.Column(elem_classes="atlas-panel"):
140
  gr.HTML(section_header("01", "Find an accession", "Start with an assembly or contig to explore its predicted coding regions."), apply_default_css=False)
@@ -194,7 +194,7 @@ def build_app(catalog=None):
194
  gr.Dataframe(value=catalog.table(all_ids), interactive=False)
195
  gr.JSON(value=catalog.manifest, label="Index provenance" if remote_mode else "Sample provenance")
196
  with gr.Tab("Wet Lab", id="wet-lab", elem_id="atlas-wet-lab"):
197
- gr.HTML('<header class="data-bank-heading"><p class="data-bank-eyebrow">FROM PREDICTION TO EXPERIMENT</p>'
198
  '<h1>Wet lab experiments</h1><p>Explore the experimental evidence behind our genome annotations.</p></header>',
199
  apply_default_css=False)
200
  gr.HTML('<section class="wet-lab-empty"><span class="wet-lab-status">Coming soon</span>'
 
132
  with gr.Tabs(selected="atlas", elem_id="atlas-navigation"):
133
  with gr.Tab("Genome Atlas", id="atlas", elem_id="atlas-overview"):
134
  build_taxonomy_tab()
135
+ with gr.Tab("Database", id="database", elem_id="atlas-database"):
136
+ gr.HTML('<header class="database-heading"><p class="database-eyebrow">THE ANNOTATION COLLECTION</p>'
137
+ '<h1>Explore the database</h1><p>Find an accession, explore its coding landscape, and download the annotations.</p></header>',
138
  apply_default_css=False)
139
  with gr.Column(elem_classes="atlas-panel"):
140
  gr.HTML(section_header("01", "Find an accession", "Start with an assembly or contig to explore its predicted coding regions."), apply_default_css=False)
 
194
  gr.Dataframe(value=catalog.table(all_ids), interactive=False)
195
  gr.JSON(value=catalog.manifest, label="Index provenance" if remote_mode else "Sample provenance")
196
  with gr.Tab("Wet Lab", id="wet-lab", elem_id="atlas-wet-lab"):
197
+ gr.HTML('<header class="database-heading"><p class="database-eyebrow">FROM PREDICTION TO EXPERIMENT</p>'
198
  '<h1>Wet lab experiments</h1><p>Explore the experimental evidence behind our genome annotations.</p></header>',
199
  apply_default_css=False)
200
  gr.HTML('<section class="wet-lab-empty"><span class="wet-lab-status">Coming soon</span>'
taxonomy.py CHANGED
@@ -248,7 +248,7 @@ def build_taxonomy_tab():
248
  "The tree layout is illustrative; **counts and colors use the actual assembly inventory**.\n\n"
249
  "Coverage means the fraction of current GenBank assembly versions with published annotations, including partial assemblies. "
250
  "It does not measure the fraction of bases annotated. Parent counts include descendants once each. "
251
- "Exact accession versions are matched. The Data bank tab searches a dated snapshot of all published annotation files.\n\n"
252
  "Sources: [NCBI assembly summary](https://ftp.ncbi.nlm.nih.gov/genomes/ASSEMBLY_REPORTS/assembly_summary_genbank.txt), "
253
  "[NCBI Taxonomy](https://ftp.ncbi.nlm.nih.gov/pub/taxonomy/taxdump.tar.gz), "
254
  "and [published annotations](https://huggingface.co/buckets/HuggingFaceBio/genbank-annotations).")
 
248
  "The tree layout is illustrative; **counts and colors use the actual assembly inventory**.\n\n"
249
  "Coverage means the fraction of current GenBank assembly versions with published annotations, including partial assemblies. "
250
  "It does not measure the fraction of bases annotated. Parent counts include descendants once each. "
251
+ "Exact accession versions are matched. The Database tab searches a dated snapshot of all published annotation files.\n\n"
252
  "Sources: [NCBI assembly summary](https://ftp.ncbi.nlm.nih.gov/genomes/ASSEMBLY_REPORTS/assembly_summary_genbank.txt), "
253
  "[NCBI Taxonomy](https://ftp.ncbi.nlm.nih.gov/pub/taxonomy/taxdump.tar.gz), "
254
  "and [published annotations](https://huggingface.co/buckets/HuggingFaceBio/genbank-annotations).")