system HF Staff commited on
Commit
fc9c792
·
verified ·
1 Parent(s): c71d024

Bootstrap automatic contribution interface

Browse files
Files changed (5) hide show
  1. app.js +10 -5
  2. contribute.html +234 -0
  3. index.html +175 -22
  4. style.css +54 -0
  5. submission-template.yaml +33 -0
app.js CHANGED
@@ -1,9 +1,11 @@
1
  (() => {
2
  "use strict";
3
 
4
- const GITHUB_CONTRIBUTING =
5
- "https://github.com/DanielTabaresLopez/" +
6
- "Gene-Embeddings-Contributions/blob/main/CONTRIBUTING.md";
 
 
7
 
8
  const DATASET_BASE =
9
  "https://huggingface.co/datasets/" +
@@ -18,10 +20,13 @@
18
  let catalog = [];
19
 
20
  document.getElementById("contribute-link").href =
21
- GITHUB_CONTRIBUTING;
22
 
23
  document.getElementById("contribute-link-bottom").href =
24
- GITHUB_CONTRIBUTING;
 
 
 
25
 
26
  document
27
  .getElementById("close-detail")
 
1
  (() => {
2
  "use strict";
3
 
4
+ const HF_UPLOAD_URL =
5
+ "https://huggingface.co/datasets/" +
6
+ "embeddingsSSRF/gene_embeddings_staging/upload/main";
7
+
8
+ const SUBMISSION_GUIDE = "contribute.html";
9
 
10
  const DATASET_BASE =
11
  "https://huggingface.co/datasets/" +
 
20
  let catalog = [];
21
 
22
  document.getElementById("contribute-link").href =
23
+ HF_UPLOAD_URL;
24
 
25
  document.getElementById("contribute-link-bottom").href =
26
+ HF_UPLOAD_URL;
27
+
28
+ document.getElementById("submission-guide-link").href =
29
+ SUBMISSION_GUIDE;
30
 
31
  document
32
  .getElementById("close-detail")
contribute.html ADDED
@@ -0,0 +1,234 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta
6
+ name="viewport"
7
+ content="width=device-width, initial-scale=1"
8
+ />
9
+ <title>Submit a Gene Embedding</title>
10
+ <link rel="stylesheet" href="style.css" />
11
+ </head>
12
+
13
+ <body>
14
+ <header class="hero">
15
+ <div class="hero-inner">
16
+ <p class="eyebrow">
17
+ Community contribution portal
18
+ </p>
19
+
20
+ <h1>Submit an embedding</h1>
21
+
22
+ <p class="lead">
23
+ Upload one standardized gene-embedding package directly
24
+ to the library-owned Hugging Face Dataset as a Pull
25
+ Request.
26
+ </p>
27
+
28
+ <div class="actions">
29
+ <a
30
+ class="button primary"
31
+ href="https://huggingface.co/datasets/embeddingsSSRF/gene_embeddings_staging/upload/main"
32
+ target="_blank"
33
+ rel="noopener noreferrer"
34
+ >
35
+ Open Hugging Face uploader
36
+ </a>
37
+
38
+ <a
39
+ class="button"
40
+ href="submission-template.yaml"
41
+ download
42
+ >
43
+ Download submission template
44
+ </a>
45
+
46
+ <a
47
+ class="button"
48
+ href="index.html"
49
+ >
50
+ Return to catalog
51
+ </a>
52
+ </div>
53
+ </div>
54
+ </header>
55
+
56
+ <main class="guide-layout">
57
+ <section class="guide-card">
58
+ <h2>What you need</h2>
59
+
60
+ <p>
61
+ You need a Hugging Face account. You do not need a
62
+ GitHub account, GitHub fork, personal Dataset, or commit
63
+ SHA.
64
+ </p>
65
+
66
+ <p>
67
+ Prepare exactly one folder with a unique embedding ID:
68
+ </p>
69
+
70
+ <pre><code>&lt;embedding_id&gt;/
71
+ ├── embeddings.npz
72
+ ├── genes.tsv
73
+ ├── metadata.json
74
+ ├── README.md
75
+ └── submission.yaml</code></pre>
76
+
77
+ <p>
78
+ The embedding ID must contain 3–80 lowercase letters,
79
+ numbers, dots, underscores, or hyphens. It must begin
80
+ with a letter or number.
81
+ </p>
82
+ </section>
83
+
84
+ <section class="guide-card">
85
+ <h2>Package contract</h2>
86
+
87
+ <ul>
88
+ <li>
89
+ <code>embeddings.npz</code> contains exactly one
90
+ two-dimensional array named
91
+ <code>embeddings</code>.
92
+ </li>
93
+
94
+ <li>
95
+ The embedding matrix uses
96
+ <code>float32</code>.
97
+ </li>
98
+
99
+ <li>
100
+ <code>genes.tsv</code> contains one unique,
101
+ non-empty
102
+ <code>ensembl_gene_id</code> column.
103
+ </li>
104
+
105
+ <li>
106
+ Gene-table rows correspond exactly to matrix rows.
107
+ </li>
108
+
109
+ <li>
110
+ <code>metadata.json</code> describes the stored
111
+ embedding.
112
+ </li>
113
+
114
+ <li>
115
+ <code>submission.yaml</code> contains contributor,
116
+ scientific, provenance, licensing, and attestation
117
+ information.
118
+ </li>
119
+ </ul>
120
+ </section>
121
+
122
+ <section class="guide-card warning-card">
123
+ <h2>Upload as a Pull Request</h2>
124
+
125
+ <ol>
126
+ <li>
127
+ Click <strong>Open Hugging Face uploader</strong>.
128
+ </li>
129
+
130
+ <li>
131
+ Upload all five files under:
132
+ <pre><code>incoming/&lt;embedding_id&gt;/</code></pre>
133
+ </li>
134
+
135
+ <li>
136
+ Add a descriptive message such as:
137
+ <pre><code>Submit &lt;embedding_id&gt;</code></pre>
138
+ </li>
139
+
140
+ <li>
141
+ Select <strong>Open as a pull request</strong>.
142
+ </li>
143
+
144
+ <li>
145
+ Do not commit the files directly to
146
+ <code>main</code>.
147
+ </li>
148
+
149
+ <li>
150
+ Confirm that the Pull Request is Open or Ready for
151
+ review.
152
+ </li>
153
+ </ol>
154
+ </section>
155
+
156
+ <section class="guide-card">
157
+ <h2>Command-line alternative</h2>
158
+
159
+ <p>
160
+ Uploading through the browser is the primary route. The
161
+ equivalent command-line submission is:
162
+ </p>
163
+
164
+ <pre><code>hf upload \
165
+ embeddingsSSRF/gene_embeddings_staging \
166
+ ./&lt;embedding_id&gt; \
167
+ incoming/&lt;embedding_id&gt; \
168
+ --repo-type dataset \
169
+ --create-pr \
170
+ --commit-message "Submit &lt;embedding_id&gt;"</code></pre>
171
+
172
+ <p>
173
+ Programmatic uploads may initially appear as Draft.
174
+ Change the Pull Request status to Open or Ready for
175
+ review before processing.
176
+ </p>
177
+ </section>
178
+
179
+ <section class="guide-card">
180
+ <h2>Catalog category</h2>
181
+
182
+ <p>Recommended categories are:</p>
183
+
184
+ <p>
185
+ DNA, Expression, Functional Genomics, Knowledge,
186
+ Literature, Multimodal, Network, Protein, RNA,
187
+ Regulatory, and Single-cell.
188
+ </p>
189
+
190
+ <p>
191
+ Matching is case-insensitive. Another submitted value is
192
+ preserved but displayed under
193
+ <strong>Other</strong>.
194
+ </p>
195
+ </section>
196
+
197
+ <section class="guide-card">
198
+ <h2>Privacy and publication</h2>
199
+
200
+ <p>
201
+ Do not upload personal email addresses, credentials,
202
+ access tokens, patient information, patient-level data,
203
+ or other sensitive material.
204
+ </p>
205
+
206
+ <p>
207
+ A strict validation PASS is centrally archived under:
208
+ </p>
209
+
210
+ <pre><code>data/embeddings/&lt;embedding_id&gt;/</code></pre>
211
+
212
+ <p>
213
+ The registry and static catalog then link to this
214
+ library-owned copy.
215
+ </p>
216
+ </section>
217
+
218
+ <section class="guide-card staging-card">
219
+ <h2>Staging access</h2>
220
+
221
+ <p>
222
+ This page currently targets the staging Dataset. While
223
+ that Dataset is private, submission is limited to users
224
+ who already have access to the organization repository.
225
+ </p>
226
+
227
+ <p>
228
+ The production button will target the public production
229
+ Dataset after final approval.
230
+ </p>
231
+ </section>
232
+ </main>
233
+ </body>
234
+ </html>
index.html CHANGED
@@ -2,53 +2,206 @@
2
  <html lang="en">
3
  <head>
4
  <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
 
 
 
6
  <title>Gene Embeddings</title>
7
  <link rel="stylesheet" href="style.css" />
8
  </head>
 
9
  <body>
10
  <header class="hero">
11
  <div class="hero-inner">
12
- <p class="eyebrow">Unified human gene representations</p>
 
 
 
13
  <h1>Gene Embeddings</h1>
14
- <p class="lead">Browse standardized gene-level representations across sequence, expression, literature, pathway, network, regulatory, knowledge-graph, and single-cell modalities.</p>
 
 
 
 
 
 
15
  <div class="actions">
16
- <a class="button primary" id="contribute-link" href="#" target="_blank" rel="noopener noreferrer">Contribute an embedding</a>
17
- <a class="button" href="https://huggingface.co/datasets/embeddingsSSRF/gene_embeddings" target="_blank" rel="noopener noreferrer">Open Core Dataset</a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  </div>
19
- <p class="notice">Community contributions are automatically checked for compliance with the technical policy. Inclusion is not independent scientific or legal endorsement.</p>
 
 
 
 
 
20
  </div>
21
  </header>
22
 
23
  <main>
24
- <section class="stats" aria-label="Catalog summary">
25
- <article><strong id="stat-count">—</strong><span>embedding sets</span></article>
26
- <article><strong id="stat-genes">—</strong><span>maximum genes</span></article>
27
- <article><strong id="stat-dims">—</strong><span>dimension range</span></article>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  </section>
29
 
30
  <section class="controls">
31
- <input id="search" type="search" placeholder="Search names, modalities, or methods" aria-label="Search catalog" />
32
- <select id="category" aria-label="Filter by category"><option value="All">All categories</option></select>
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  </section>
34
 
35
- <p id="result-count" class="result-count"></p>
36
- <section id="grid" class="grid" aria-live="polite"></section>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
- <section class="contribute" id="contribute">
39
- <h2>Automatic contribution workflow</h2>
40
  <ol>
41
- <li>Put <code>embeddings.npz</code>, <code>genes.tsv</code>, <code>metadata.json</code>, and <code>README.md</code> in a public Hugging Face Dataset.</li>
42
- <li>Freeze the candidate at a full commit SHA.</li>
43
- <li>Add one submission YAML through a GitHub Pull Request.</li>
44
- <li>GitHub validates the frozen package. A strict PASS is merged and published automatically.</li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  </ol>
46
- <a class="button primary" id="contribute-link-bottom" href="#" target="_blank" rel="noopener noreferrer">Open contribution instructions</a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  </section>
48
  </main>
49
 
50
  <dialog id="detail-dialog">
51
- <button id="close-detail" class="close" aria-label="Close">×</button>
 
 
 
 
 
 
 
52
  <div id="detail-content"></div>
53
  </dialog>
54
 
 
2
  <html lang="en">
3
  <head>
4
  <meta charset="utf-8" />
5
+ <meta
6
+ name="viewport"
7
+ content="width=device-width, initial-scale=1"
8
+ />
9
  <title>Gene Embeddings</title>
10
  <link rel="stylesheet" href="style.css" />
11
  </head>
12
+
13
  <body>
14
  <header class="hero">
15
  <div class="hero-inner">
16
+ <p class="eyebrow">
17
+ Unified human gene representations
18
+ </p>
19
+
20
  <h1>Gene Embeddings</h1>
21
+
22
+ <p class="lead">
23
+ Browse standardized gene-level representations across
24
+ sequence, expression, literature, pathway, network,
25
+ regulatory, knowledge-graph, and single-cell modalities.
26
+ </p>
27
+
28
  <div class="actions">
29
+ <a
30
+ class="button primary"
31
+ id="contribute-link"
32
+ href="#"
33
+ target="_blank"
34
+ rel="noopener noreferrer"
35
+ >
36
+ Upload an embedding
37
+ </a>
38
+
39
+ <a
40
+ class="button"
41
+ id="submission-guide-link"
42
+ href="contribute.html"
43
+ >
44
+ Submission guide
45
+ </a>
46
+
47
+ <a
48
+ class="button"
49
+ href="https://huggingface.co/datasets/embeddingsSSRF/gene_embeddings"
50
+ target="_blank"
51
+ rel="noopener noreferrer"
52
+ >
53
+ Open Core Dataset
54
+ </a>
55
  </div>
56
+
57
+ <p class="notice">
58
+ Community contributions are automatically checked for
59
+ compliance with the technical policy. Inclusion is not
60
+ independent scientific or legal endorsement.
61
+ </p>
62
  </div>
63
  </header>
64
 
65
  <main>
66
+ <section
67
+ class="stats"
68
+ aria-label="Catalog summary"
69
+ >
70
+ <article>
71
+ <strong id="stat-count">—</strong>
72
+ <span>embedding sets</span>
73
+ </article>
74
+
75
+ <article>
76
+ <strong id="stat-genes">—</strong>
77
+ <span>maximum genes</span>
78
+ </article>
79
+
80
+ <article>
81
+ <strong id="stat-dims">—</strong>
82
+ <span>dimension range</span>
83
+ </article>
84
  </section>
85
 
86
  <section class="controls">
87
+ <input
88
+ id="search"
89
+ type="search"
90
+ placeholder="Search names, modalities, or methods"
91
+ aria-label="Search catalog"
92
+ />
93
+
94
+ <select
95
+ id="category"
96
+ aria-label="Filter by category"
97
+ >
98
+ <option value="All">
99
+ All categories
100
+ </option>
101
+ </select>
102
  </section>
103
 
104
+ <p
105
+ id="result-count"
106
+ class="result-count"
107
+ ></p>
108
+
109
+ <section
110
+ id="grid"
111
+ class="grid"
112
+ aria-live="polite"
113
+ ></section>
114
+
115
+ <section
116
+ class="contribute"
117
+ id="contribute"
118
+ >
119
+ <h2>Submit directly through Hugging Face</h2>
120
+
121
+ <p>
122
+ A Hugging Face account is required. A GitHub account,
123
+ GitHub fork, separate Dataset, and commit SHA are not
124
+ required.
125
+ </p>
126
 
 
 
127
  <ol>
128
+ <li>
129
+ Prepare one folder containing
130
+ <code>embeddings.npz</code>,
131
+ <code>genes.tsv</code>,
132
+ <code>metadata.json</code>,
133
+ <code>README.md</code>, and
134
+ <code>submission.yaml</code>.
135
+ </li>
136
+
137
+ <li>
138
+ Name the folder using a unique lowercase embedding ID.
139
+ </li>
140
+
141
+ <li>
142
+ Click <strong>Open Hugging Face uploader</strong> and
143
+ place the files under
144
+ <code>incoming/&lt;embedding_id&gt;/</code>.
145
+ </li>
146
+
147
+ <li>
148
+ Select <strong>Open as a pull request</strong>.
149
+ Do not commit the files directly to
150
+ <code>main</code>.
151
+ </li>
152
+
153
+ <li>
154
+ Ensure the resulting Pull Request is marked
155
+ <strong>Open</strong> or
156
+ <strong>Ready for review</strong>, not Draft.
157
+ </li>
158
  </ol>
159
+
160
+ <div class="button-row">
161
+ <a
162
+ class="button primary"
163
+ id="contribute-link-bottom"
164
+ href="#"
165
+ target="_blank"
166
+ rel="noopener noreferrer"
167
+ >
168
+ Open Hugging Face uploader
169
+ </a>
170
+
171
+ <a
172
+ class="button"
173
+ href="contribute.html"
174
+ >
175
+ Read full submission guide
176
+ </a>
177
+
178
+ <a
179
+ class="button"
180
+ href="submission-template.yaml"
181
+ download
182
+ >
183
+ Download submission template
184
+ </a>
185
+ </div>
186
+
187
+ <p class="staging-note">
188
+ Staging note: submissions are currently processed after
189
+ a maintainer starts the validation workflow. Automatic
190
+ discovery will be enabled after the staging interface
191
+ has been verified.
192
+ </p>
193
  </section>
194
  </main>
195
 
196
  <dialog id="detail-dialog">
197
+ <button
198
+ id="close-detail"
199
+ class="close"
200
+ aria-label="Close"
201
+ >
202
+ ×
203
+ </button>
204
+
205
  <div id="detail-content"></div>
206
  </dialog>
207
 
style.css CHANGED
@@ -65,3 +65,57 @@ dialog::backdrop { background: rgba(12,20,40,.55); }
65
  color: var(--success);
66
  }
67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  color: var(--success);
66
  }
67
 
68
+ .button-row {
69
+ display: flex;
70
+ flex-wrap: wrap;
71
+ gap: 12px;
72
+ margin-top: 22px;
73
+ }
74
+
75
+ .staging-note {
76
+ margin-top: 22px;
77
+ padding: 14px 16px;
78
+ border-left: 4px solid var(--brand);
79
+ background: var(--wash);
80
+ color: var(--muted);
81
+ line-height: 1.55;
82
+ }
83
+
84
+ .guide-layout {
85
+ display: grid;
86
+ gap: 18px;
87
+ padding-top: 38px;
88
+ }
89
+
90
+ .guide-card {
91
+ background: var(--paper);
92
+ border: 1px solid var(--line);
93
+ border-radius: 16px;
94
+ padding: 26px;
95
+ }
96
+
97
+ .guide-card h2 {
98
+ margin-top: 0;
99
+ }
100
+
101
+ .guide-card p,
102
+ .guide-card li {
103
+ line-height: 1.65;
104
+ }
105
+
106
+ .guide-card pre {
107
+ overflow-x: auto;
108
+ padding: 16px;
109
+ border-radius: 10px;
110
+ background: #111a2e;
111
+ color: #edf2ff;
112
+ }
113
+
114
+ .warning-card {
115
+ border-left: 5px solid #c77a00;
116
+ }
117
+
118
+ .staging-card {
119
+ border-left: 5px solid var(--brand);
120
+ }
121
+
submission-template.yaml ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ schema_version: 1
2
+ embedding_id: replace_with_unique_embedding_id
3
+ display_name: Replace with the displayed embedding name
4
+ contributor:
5
+ name: Replace with contributor name
6
+ affiliation: Replace with institution or organization
7
+ scientific:
8
+ broad_modality: Protein
9
+ detailed_modality: Replace with a precise modality description
10
+ original_method: Replace with the model or generation method
11
+ model_checkpoint: Replace with checkpoint/version or not-applicable
12
+ source_publication: ''
13
+ description: Replace this text with a clear description of the embedding, how it
14
+ was generated, and its intended use.
15
+ provenance:
16
+ embedding_generated_by: Replace with model, software, or authors
17
+ input_data_source: Replace with the original data source
18
+ input_data_release: Replace with version or release
19
+ species: Homo sapiens
20
+ pooling_strategy: Replace with pooling strategy or not-applicable
21
+ identifier_before_mapping: Replace with original identifier type
22
+ mapping_method: Replace with the identifier mapping procedure
23
+ licensing:
24
+ source_license: cc-by-4.0
25
+ redistribution_allowed: true
26
+ terms_url: Replace with the applicable license or terms URL
27
+ attestations:
28
+ information_is_accurate: true
29
+ rights_to_redistribute: true
30
+ no_sensitive_human_data: true
31
+ no_patient_level_data: true
32
+ source_terms_reviewed: true
33
+ acceptance_of_automatic_checks: true