Skip to content

Commit 5f7d420

Browse files
authored
Add/update software (#322)
* Add/update software Fixes #315 * added SMR * offline build info * remove deprecated R raveio package
1 parent caeac77 commit 5f7d420

16 files changed

Lines changed: 124 additions & 8 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ Removed features goes here
3737

3838
Miscellaneous goes here
3939

40+
## 1.15.0 - 2026-02-23
41+
42+
### Added
43+
44+
* Added `OPERA` and `SMR` tools to `gwas.sif` container, with corresponding tests.
45+
* Added Python and R packages to `python3.sif` and `r.sif` containers, with corresponding tests.
46+
4047
## 1.14.0 - 2025-12-05
4148

4249
### Updated

docker/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,23 @@ The build process is defined in the corresponding [.github/workflows/docker_buil
1717
In general, a created PR will trigger the build process and run the unit tests automatically.
1818
Resulting container files will be uploaded to the [GitHub packages](https://github.com/orgs/comorment/packages?repo_name=containers) when new Git tags are pushed on the main branch.
1919

20+
### Offline builds
21+
22+
It should be possible to build the Docker containers offline, using the provided Dockerfiles.
23+
Suggested steps for building the containers offline are as follows:
24+
25+
```{bash}
26+
docker build --platform=linux/amd64 -t ghcr.io/comorment/<image> -f dockerfiles/<image>/Dockerfile .
27+
```
28+
29+
To successfully build the `r` container, a GITHUB_PAT file with a valid GitHub Personal Access Token (PAT) is required, which can be created in the GitHub account settings and should have at least `read:packages` scope.
30+
This is needed to access a number of R package GitHub repositories.
31+
32+
```{bash}
33+
docker build --secret id=github_pat,src=~/secrets/GITHUB_PAT --platform=linux/amd64 -t ghcr.io/comorment/r -f dockerfiles/r/Dockerfile .
34+
```
35+
36+
2037
## Note about NREC machine (old)
2138

2239
We use NREC machine to develop and build containers.

docker/dockerfiles/gwas/Dockerfile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,4 +202,18 @@ COPY /scripts/install_liftover.sh /tmp/liftover/
202202
RUN bash /tmp/liftover/install_liftover.sh && \
203203
rm -rf /tmp/liftover
204204

205+
# OPERA
206+
WORKDIR /tmp/opera
207+
RUN wget --progress=dot:giga https://github.com/wuyangf7/OPERA/blob/main/opera_Linux.zip?raw=true -O opera_Linux.zip && \
208+
unzip opera_Linux.zip && \
209+
rm opera_Linux.zip && \
210+
mv opera_Linux/opera_Linux /usr/bin/opera
211+
212+
# SMR
213+
WORKDIR /tmp/smr
214+
RUN wget --progress=dot:giga https://yanglab.westlake.edu.cn/software/smr/download/smr-1.4.0-linux-x86_64.zip && \
215+
unzip smr-1.4.0-linux-x86_64.zip && \
216+
rm smr-1.4.0-linux-x86_64.zip && \
217+
mv smr-1.4.0-linux-x86_64/smr /usr/bin/smr
218+
205219
WORKDIR /tools

docker/dockerfiles/python3/Dockerfile

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,21 @@ RUN conda install mamba -n base -c conda-forge && \
2222
# keep the list of packages sorted alphabetically
2323
# https://www.online-utility.org/text/sort.jsp
2424
RUN mamba install python=3.12.12 \
25+
BeautifulSoup4=4.14.3 \
26+
bottleneck=1.6.0 \
2527
configparser=7.2.0 \
2628
dask=2025.11.0 \
2729
fastparquet=2024.11.0 \
30+
fsspec=2026.2.0 \
31+
gcsfs=2026.2.0 \
2832
graphviz=14.0.5 \
2933
"h5py=3.15.1=nompi*" \
34+
html5lib=1.1 \
35+
Jinja2=3.1.6 \
3036
jupyterlab=4.5.0 \
3137
lightgbm=4.6.0 \
3238
lifelines=0.30.0 \
39+
lxml=6.0.2 \
3340
imbalanced-learn=0.14.0 \
3441
intervaltree=3.1.0 \
3542
matplotlib-venn=1.1.2 \
@@ -40,27 +47,42 @@ RUN mamba install python=3.12.12 \
4047
networkx=3.6 \
4148
numdifftools=0.9.41 \
4249
numba=0.62.1 \
50+
numexpr=2.14.1 \
4351
numpy=2.3.5 \
52+
odfpy=1.4.1 \
4453
openpyxl=3.1.5 \
4554
pandas=2.3.3 \
55+
pandas-gbq=0.28.0 \
4656
pandas-plink=2.3.2 \
4757
paramiko=4.0.0 \
4858
psutil=7.1.3 \
59+
psycopg2=2.9.11 \
4960
pyarrow=22.0.0 \
5061
pydot=4.0.1 \
62+
pymysql=1.1.2 \
63+
pyqt=5.15.11 \
64+
pyreadr=0.5.4 \
5165
pyreadstat=1.3.2 \
5266
pytables=3.10.2 \
5367
python-graphviz=0.21 \
68+
python-blosc2=4.0.0 \
69+
pyxlsb=1.0.10 \
5470
pyyaml=6.0.3 \
71+
qtpy=2.4.3 \
72+
s3fs=2026.2.0 \
5573
scikit-learn=1.7.2 \
5674
scikit-survival=0.25.0 \
5775
scipy=1.16.3 \
5876
seaborn=0.13.2 \
5977
semantic_version=2.10.0 \
6078
shap=0.48.0 \
6179
statsmodels=0.14.5 \
80+
SQLAlchemy=2.0.46 \
81+
tabulate=0.9.0 \
82+
xarray=2026.2.0 \
6283
xgboost=3.1.2 \
6384
xlrd=2.0.2 \
85+
xlsxwriter=3.2.9 \
6486
xmltodict=1.0.2 \
6587
--yes && \
6688
mamba clean -a -y

docker/scripts/R/bioconductor.R

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ packages <- c(
2323
'GWASTools',
2424
'limma',
2525
'org.Hs.eg.db',
26+
'rhdf5',
2627
'rtracklayer',
2728
'snpStats',
2829
'survcomp',

docker/scripts/R/cran.R

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ packages <- list(
7272
'lightgbm',
7373
'lmerTest',
7474
'magrittr',
75+
'matlab',
76+
'matlab2r',
7577
'MatrixEQTL',
7678
'matrixStats',
7779
'MendelianRandomization',
@@ -97,6 +99,8 @@ packages <- list(
9799
'remotes',
98100
'RiskScorescvd',
99101
'rjags',
102+
'rmatio',
103+
'R.matlab',
100104
'ROCR',
101105
'rmarkdown',
102106
'rstan',
@@ -120,6 +124,7 @@ packages <- list(
120124
'vctrs',
121125
'xgboost',
122126
'zlib')
127+
123128

124129
# install package from CRAN and quit with error if installation fails
125130
# for (package in names(packages)) {

docker/scripts/R/github.R

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ packages <- list(
2626
"qingyuanzhao/mr.raps" = "27b96f31e26ae97a395422bd757f514a7f96cc85",
2727
"MRCIEU/TwoSampleMR" = "578c68fa754c57d764553812bf85d69ecf43b011",
2828
"MRCIEU/gwasglue" = "c2d5660eed389e1a9b3e04406b88731d642243f1",
29+
# misc
2930
"noahlorinczcomi/MRBEE" = "6295549a1f5a158c6701eb793646d60c8aef11ca",
3031
"norment/normentR" = "dfa1fbae9587db6c3613b0405df4f9cfa98ee0e1",
3132
"psychgen/phenotools" = "62dd11e111d8d952837c9f207557e9b297ba56bc",
@@ -38,7 +39,9 @@ packages <- list(
3839
"JBPG/Gsens" = "6cac02ba1ccaf38870e2526076f0306c0cf0dc0a",
3940
"MRCIEU/genetics.binaRies" = "2fcd3ee3088b729c7eb34cf2aac9dc2e04fe4412",
4041
"mrcieu/gwasglue2" = "c93b3a1fca7d2eae5d40bd62117091b1ad57f0fa",
41-
"gqi/MRMix" = "56afdb2bc96760842405396f5d3f02e60e305039")
42+
"gqi/MRMix" = "56afdb2bc96760842405396f5d3f02e60e305039",
43+
"JianYang-Lab/gsmr2" = "e7953cc136ad1cfae14674facde21e90caddea5f",
44+
"n-mounier/MRlap" = "660f026864f8bfbbad5a8206bdff7d58f5d5d05b")
4245

4346
# install package from GitHub and quit with error if installation fails
4447
for (package in names(packages)) {

docker/scripts/apt_get_essential.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ apt-get update && apt-get install -y --no-install-recommends \
2020
less=590-2ubuntu2.1 \
2121
libatlas-base-dev=3.10.3-13ubuntu1 \
2222
libcurl4-openssl-dev=8.5.0-2ubuntu10.6 \
23-
libgomp1=14.2.0-4ubuntu2~24.04 \
23+
libgomp1=14.2.0-4ubuntu2~24.04.1 \
2424
libgsl-dev=2.7.1+dfsg-6ubuntu2 \
2525
libnss3=2:3.98-1build1 \
2626
libpcre2-dev=10.42-4ubuntu2.1 \

docker/scripts/install_eagle.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
set -euo pipefail
33

44
apt-get update && apt-get install --no-install-recommends \
5-
libopenblas-dev=0.3.26+ds-1 \
5+
libopenblas-dev=0.3.26+ds-1ubuntu0.1 \
66
-y && \
77
apt-get clean && \
88
rm -rf /var/lib/apt/lists/*

docker/scripts/install_htslib.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set -euo pipefail
55
apt-get update && apt-get install --no-install-recommends \
66
libbz2-dev=1.0.8-5.1build0.1 \
77
liblzma-dev=5.6.1+really5.4.5-1ubuntu0.2 \
8-
libssl-dev=3.0.13-0ubuntu3.6 \
8+
libssl-dev=3.0.13-0ubuntu3.7 \
99
-y
1010

1111
apt-get clean && \

0 commit comments

Comments
 (0)