Skip to content

Commit 3c2cda7

Browse files
Metadata front matter for apps (#2372)
* Initialize Software catalog * Serve catalog.json Plenty of refactoring/reorganization * Add software catalog appendix * Allow for getting site_url from environment Default to production url * Remove extra whitespace * Refactoring * Software catalog, phase 1 * Ignore file for revision-date plugin * Ignore commit for revision date plugin * Remove leftover scripts * Temporary amendment to FAQ * Fixes for catalog-hook * Refactor type hints for older Python version --------- Co-authored-by: Rasmus Kronberg <[email protected]>
1 parent 8856ee1 commit 3c2cda7

File tree

185 files changed

+2386
-500
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

185 files changed

+2386
-500
lines changed

.git-revision-date-ignore-revs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Add metadata front matter
2+
d3b1642782b24ba19b6957d6e49ef67899ac132a
3+
d7aa3afdab66ff2e74dae96d5181676cb9aa93cb

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,9 @@ site/
66
.DS_Store
77
.idea/
88
__pycache__/
9+
10+
# These are generated by catalog-hook and only
11+
# written to the filesystem when MKDOCS_ENV=test:
12+
docs/apps/index.md
13+
docs/apps/by_discipline.md
14+
docs/apps/by_system.md

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ before_install:
99
env:
1010
global:
1111
- ENABLED_GIT_REVISION_DATE=false
12+
- MKDOCS_ENV=test
1213
script:
1314

1415
# Checks all files for commonly misspelled English words with client9's misspell

Dockerfile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ RUN if [ ! -d ".git" ]; then \
3232
git init && \
3333
git switch --force $repo_branch; \
3434
fi && \
35-
bash scripts/generate_alpha.sh && \
36-
bash scripts/generate_by_system.sh && \
3735
bash scripts/generate_new.sh && \
3836
bash scripts/generate_glossary.sh && \
3937
mkdocs build -d /usr/share/nginx/html

FAQ.md

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -355,13 +355,17 @@ Documentation for _Material for MkDocs_ has a [search feature](https://squidfunk
355355

356356
## How do I add a license tag to an application page?
357357

358-
The license tag is added inside a YAML front matter. The first lines in the Markdown file should be
359-
the front matter. Please note the enclosing dashes. A template for the front matter is
358+
The license tag is added inside the YAML front matter. Temporarily, the license type should be placed as a
359+
list item under `tags:` _and_ as a string in `license_type:`:
360360

361361
```yaml
362362
---
363363
tags:
364364
- <license>
365+
catalog:
366+
# ...
367+
license_type: <license>
368+
# ...
365369
---
366370
```
367371

@@ -372,36 +376,22 @@ The application will then be included on the Applications by license page automa
372376

373377
## How do I tag an application as available under a web interface?
374378

375-
As with [adding a license tag](#how-do-I-add-a-license-tag-to-an-application-page), an application
376-
can be tagged as available in a particular web interface. The application will then be listed under
377-
that web interface on the _Applications by availability_ page. The tags for web interfaces that an
378-
application is available on are added under the `system` key in the front matter.
379+
In the YAML front matter. The following would, for example, tag the application as available on
380+
Puhti, Mahti _and_ Puhti web interface.
379381

380382
```yaml
381383
---
382-
system:
383-
- www-<system1>
384-
- www-<system2>
384+
catalog:
385+
# ...
386+
available_on:
387+
- Puhti
388+
- Mahti
389+
- web_interfaces:
390+
- Puhti
391+
# ...
385392
---
386393
```
387394

388-
where `<system1>` or `<system2>` is one of the systems where a web interface is available, for
389-
example (prefixed with `www-`) `mahti` or `puhti`.
390-
391-
As a temporary workaround, to prevent an application getting listed under a system for merely
392-
mentioning the system, edit the [skip_system.txt](scripts/skip_system.txt) file.
393-
394-
```text
395-
Workaround:
396-
397-
...
398-
399-
SKIP_<system1> application.md
400-
SKIP_<system2> application.md
401-
```
402-
403-
where `<system1>` and `<system2>` are as above.
404-
405395
## How do I add footnotes?
406396

407397
Usage of the footnotes feature is described
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
.md-typeset .app-heading-row {
2+
display: flex;
3+
justify-content: start;
4+
align-content: center;
5+
margin: 0 0 1.25em;
6+
}
7+
8+
.md-typeset .app-heading {
9+
margin: unset;
10+
}
11+
12+
.md-typeset .app-description {
13+
font-weight: 300;
14+
text-align: center;
15+
color: var(--c-tertiary-800);
16+
margin-left: .5ch;
17+
}
18+
19+
.md-typeset .app-heading-row .app-description {
20+
font-size: 1.50em;
21+
}
22+
23+
.md-typeset .app-link {
24+
margin-right: 1em;
25+
}
26+
27+
.md-typeset nav .app-tags {
28+
margin: 0 0 .75em;
29+
}
30+
31+
.md-typeset c-accordion-item {
32+
margin-bottom: 1em;
33+
}
34+
35+
.md-typeset .alpha-toc {
36+
max-width: 80%;
37+
}
38+
39+
.md-typeset .alpha-toc ul {
40+
display: flex;
41+
justify-content: start;
42+
flex-wrap: wrap;
43+
margin-left: 0;
44+
}
45+
46+
.md-typeset .alpha-toc ul li {
47+
list-style-type: none;
48+
margin: 0 .25em;
49+
text-align: center;
50+
}
51+
52+
.md-typeset .alpha-toc a {
53+
padding: .125em .5em;
54+
border-radius: 25%;
55+
font-size: large;
56+
font-weight: var(--csc-font-weight--bold);
57+
}

csc-overrides/assets/stylesheets/extra.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@
1515
@import url(./tags.css);
1616
@import url(./title.css);
1717
@import url(./video.css);
18+
@import url(./catalog.css);
1819

1920
@import url(./sensitive-data.css);
Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
.md-tag {
1+
.md-typeset .md-tag {
22
border: 1px solid var(--md-primary-fg-color);
3-
color: var(--md-primary-fg-color) !important;
4-
background-color: transparent !important;
3+
color: var(--md-primary-fg-color);
4+
background-color: transparent;
55
border-radius: 15px;
6-
font-weight: 400 !important;
7-
text-decoration: none !important;
6+
font-weight: 400;
7+
text-decoration: none;
88
}
99

10-
:target>.md-tag {
11-
color: var(--md-primary-bg-color) !important;
12-
background-color: var(--md-primary-fg-color) !important;
10+
.md-typeset :target>.md-tag {
11+
color: var(--md-primary-bg-color);
12+
background-color: var(--md-primary-fg-color);
1313
}
1414

15-
a.md-tag:is(:active, :hover) {
16-
background-color: var(--md-accent-bg-color) !important;
15+
.md-typeset .md-tag:is(:active, :hover) {
16+
background-color: var(--md-accent-bg-color);
1717
}

csc-overrides/assets/stylesheets/variables.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* Museo Sans font */
22
@import url("https://use.typekit.net/csv4mjm.css");
33
/* CSC Design System custom properties */
4-
@import url(https://cdn.jsdelivr.net/npm/@cscfi/csc-ui@2.1.11/dist/styles/css/theme.css);
4+
@import url(https://cdn.jsdelivr.net/npm/@cscfi/csc-ui@2.3.0/dist/styles/css/theme.css);
55

66
:root {
77
--md-text-font: "museo-sans";

development/packages.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ mkdocs-git-revision-date-localized-plugin
55
mkdocs-redirects
66
mkdocs-section-index
77
feedparser
8+
pyhumps

docs/apps/abaqus.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
---
22
tags:
33
- Academic
4+
catalog:
5+
name: ABAQUS
6+
description: Dassault Systemes' SIMULIA academic research suite
7+
license_type: Academic
8+
disciplines:
9+
- Computational Engineering
10+
available_on:
11+
- Puhti
412
---
513

614
# ABAQUS

docs/apps/accelerated-visualization.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
---
22
tags:
33
- Free
4-
system:
5-
- www-puhti
6-
- www-lumi
4+
catalog:
5+
name: Accelerated visualization
6+
description: A selection of GPU accelerated visualization applications
7+
license_type: Free
8+
disciplines:
9+
- Miscellaneous
10+
available_on:
11+
- web_interfaces:
12+
- LUMI
13+
- Puhti
14+
- LUMI
715
---
816

917
# Accelerated visualization

docs/apps/alphafold.md

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
---
22
tags:
33
- Free
4+
catalog:
5+
name: Alphafold
6+
description: Protein 3D structure prediction
7+
license_type: Free
8+
disciplines:
9+
- Biosciences
10+
available_on:
11+
- Puhti
12+
- Mahti
413
---
514

615
# Alphafold
@@ -9,20 +18,20 @@ AlphaFold is an AI system developed by [DeepMind](https://www.deepmind.com/) tha
918

1019
[TOC]
1120

12-
# AlphaFold 3
21+
## AlphaFold 3
1322

1423
AlphaFold 3 is available on Mahti.
1524

16-
## License
25+
### License
1726

1827
The AlphaFold 3 inference code is available under a [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en) license.
1928
The model parameters are available under a separate terms of use agreement and have to be obtained by each user directly from Google as described in the [AlphaFold 3 documentation](https://github.com/google-deepmind/alphafold3?tab=readme-ov-file#obtaining-model-parameters).
2029

21-
## Available
30+
### Available
2231

2332
- Mahti: 3.0.1
2433

25-
## Usage
34+
### Usage
2635

2736
To initialize on Mahti use:
2837
```bash
@@ -34,14 +43,14 @@ To print the available command line options:
3443
run_alphafold --helpshort
3544
```
3645

37-
### Database
46+
#### Database
3847

3948
The genetic databases needed for evolutionary search are hosted at `/mnt/datasets/alphafold`.
4049
CSC maintains a single version of these databases. If you need a different version, you can download it yourself.
4150
See [download instructions](https://github.com/google-deepmind/alphafold3/blob/main/docs/installation.md#obtaining-genetic-databases) and the Job Script Examples.
4251
At time of writing the databases were about 700 GB and it took 30 minutes to download them.
4352

44-
### Job Script Examples
53+
#### Job Script Examples
4554
All the examples here use the example input from the [AlphaFold 3 GitHub page](https://github.com/google-deepmind/alphafold3?tab=readme-ov-file#installation-and-running-your-first-prediction):
4655
```json
4756
{
@@ -60,7 +69,7 @@ All the examples here use the example input from the [AlphaFold 3 GitHub page](h
6069
}
6170
```
6271

63-
#### Data pipeline job
72+
##### Data pipeline job
6473
Since GPUs are not needed for the first stage of the workflow, it may make sense to perform this on a CPU node as follows:
6574
```bash
6675
#!/bin/bash
@@ -78,7 +87,7 @@ module load alphafold/3.0.1
7887
srun time run_alphafold --json_path=af_input/fold_input.json --output_dir=af_output --db_dir=/mnt/datasets/alphafold --norun_inference --run_data_pipeline --jackhmmer_n_cpu=8
7988
```
8089

81-
#### Inference job
90+
##### Inference job
8291
And then perform the second stage on a GPU node.
8392
```bash
8493
#!/bin/bash
@@ -97,7 +106,7 @@ module load alphafold/3.0.1
97106
time run_alphafold --json_path=af_output/2pv7/2pv7_data.json --model_dir=</path/to/dir/containing/weight/file/> --output_dir=af_output --run_inference --norun_data_pipeline
98107
```
99108

100-
#### Data pipeline job using fast local disk
109+
##### Data pipeline job using fast local disk
101110
It is also possible to copy the databases to the node local disk.
102111
Since copying the databases to the local disk introduces some overhead (during testing it took about 40 minutes), this may only lead to overall performance gains when running many large queries in bulk.
103112
```bash
@@ -121,7 +130,7 @@ srun ls $LOCAL_SCRATCH
121130
srun time run_alphafold --json_path=af_input/fold_input.json --output_dir=af_output2 --db_dir=$LOCAL_SCRATCH --norun_inference --run_data_pipeline --jackhmmer_n_cpu=8
122131
```
123132

124-
#### Download databases
133+
##### Download databases
125134
CSC hosts these databases under `/mnt/datasets/alphafold`. If you need a newer version you can download it with this job script and [this](https://github.com/google-deepmind/alphafold3/blob/main/fetch_databases.sh) download script.
126135
```bash
127136
#!/bin/bash
@@ -138,30 +147,30 @@ export DB_DIR=/scratch/${SLURM_JOB_ACCOUNT}/${USER}/db_dir
138147
bash <path/to/script/>/fetch_databases.sh $DB_DIR
139148
```
140149

141-
#### Chaining Jobs
150+
##### Chaining Jobs
142151
To run the data pipeline first and then start the inference job as soon as the first one is finished, you can chain them like this:
143152
```bash
144153
sbatch run_datapipeline.slurm
145154
sbatch --dependency=afterok:<JOBID> run_inference.slurm
146155
```
147156

148-
## More Information
157+
### More Information
149158
See [AlphaFold 3 documentation](https://github.com/google-deepmind/alphafold3?tab=readme-ov-file#alphafold-3).
150159

151-
# AlphaFold 2
160+
## AlphaFold 2
152161

153162
Alphafold 2 is available on Puhti.
154163

155-
## License
164+
### License
156165

157166
Free to use and open source under [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).
158167

159-
## Available
168+
### Available
160169

161170
- Puhti: 2.0.1, 2.3.0, 2.3.2-1
162171

163172

164-
## Usage
173+
### Usage
165174

166175
To initialize in Puhti use:
167176

@@ -187,7 +196,7 @@ $ALPHAFOLD_DIR/alphafold_gpu.slurm
187196
```
188197

189198

190-
### Which version to use
199+
#### Which version to use
191200

192201
AlphaFold analysis consists of three stages:
193202
- Multiple sequence alignment (CPU only)
@@ -206,7 +215,7 @@ It may be difficult to know beforehand, so do some testing. If the run is taking
206215
more than 3-4 hours on CPU, you should try using GPU.
207216

208217

209-
### Database
218+
#### Database
210219

211220
AlphaFold needs a set of sequence databases to run. The total size of of these
212221
databases is almost 3 TiB.
@@ -245,7 +254,7 @@ cp -r /scratch/project_12345/alphafold_db .
245254
export ALPHAFOLD_DATADIR=$LOCAL_SCRATCH/alphafold_db
246255
```
247256

248-
## More Information
257+
### More Information
249258

250259
* [AlphaFold Homepage](https://github.com/google-deepmind/alphafold/)
251260
* The Puhti installation is based on [Alphafold_singularity](https://github.com/prehensilecode/alphafold_singularity)

0 commit comments

Comments
 (0)