Skip to content

Commit 8d02659

Browse files
authored
Merge pull request #7 from RuiDongDR/main
add minimal installation and allow user to set installation path
2 parents 64642d3 + ded4a77 commit 8d02659

7 files changed

Lines changed: 401 additions & 61 deletions

File tree

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
run: |
2626
sed -i "s?main?${{ github.event.pull_request.head.ref }}?g" pixi-setup.sh
2727
sed -i "s?init.sh | bash?init.sh | sed 's,main,${{ github.event.pull_request.head.ref }},g' | bash?" pixi-setup.sh
28-
./pixi-setup.sh
28+
printf "\n1\n" | ./pixi-setup.sh
2929
3030
osx-64:
3131
runs-on: macos-13
@@ -48,7 +48,7 @@ jobs:
4848
run: |
4949
sed -i "s?main?${{ github.event.pull_request.head.ref }}?g" pixi-setup.sh
5050
sed -i "s?init.sh | bash?init.sh | sed 's,main,${{ github.event.pull_request.head.ref }},g' | bash?" pixi-setup.sh
51-
./pixi-setup.sh
51+
printf "\n1\n" | ./pixi-setup.sh
5252
5353
osx-arm64:
5454
runs-on: macos-14
@@ -71,4 +71,4 @@ jobs:
7171
run: |
7272
sed -i "s?main?${{ github.event.pull_request.head.ref }}?g" pixi-setup.sh
7373
sed -i "s?init.sh | bash?init.sh | sed 's,main,${{ github.event.pull_request.head.ref }},g' | bash?" pixi-setup.sh
74-
./pixi-setup.sh
74+
printf "\n1\n" | ./pixi-setup.sh

.github/workflows/dispatch_ci.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ jobs:
2323
- name: Run setup script
2424
shell: pixi exec --spec sed -- bash -e {0}
2525
run: |
26-
sed -i "s?main?${{ github.event.pull_request.head.ref }}?g" pixi-setup.sh
27-
sed -i "s?init.sh | bash?init.sh | sed 's,main,${{ github.event.pull_request.head.ref }},g' | bash?" pixi-setup.sh
28-
./pixi-setup.sh
26+
sed -i "s?StatFunGen/pixi-setup/main?${{ github.repository }}/${{ github.ref_name }}?g" pixi-setup.sh
27+
sed -i "s?init.sh | bash?init.sh | sed 's,StatFunGen/pixi-setup/main,${{ github.repository }}/${{ github.ref_name }},g' | bash?" pixi-setup.sh
28+
printf "\n1\n" | ./pixi-setup.sh
2929
3030
osx-64_pixi:
3131
runs-on: macos-latest
@@ -46,9 +46,9 @@ jobs:
4646
- name: Run setup script
4747
shell: pixi exec --spec sed -- bash -e {0}
4848
run: |
49-
sed -i "s?main?${{ github.event.pull_request.head.ref }}?g" pixi-setup.sh
50-
sed -i "s?init.sh | bash?init.sh | sed 's,main,${{ github.event.pull_request.head.ref }},g' | bash?" pixi-setup.sh
51-
./pixi-setup.sh
49+
sed -i "s?StatFunGen/pixi-setup/main?${{ github.repository }}/${{ github.ref_name }}?g" pixi-setup.sh
50+
sed -i "s?init.sh | bash?init.sh | sed 's,StatFunGen/pixi-setup/main,${{ github.repository }}/${{ github.ref_name }},g' | bash?" pixi-setup.sh
51+
printf "\n1\n" | ./pixi-setup.sh
5252
5353
osx-arm64_pixi:
5454
runs-on: macos-14
@@ -69,6 +69,6 @@ jobs:
6969
- name: Run setup script
7070
shell: pixi exec --spec sed -- bash -e {0}
7171
run: |
72-
sed -i "s?main?${{ github.event.pull_request.head.ref }}?g" pixi-setup.sh
73-
sed -i "s?init.sh | bash?init.sh | sed 's,main,${{ github.event.pull_request.head.ref }},g' | bash?" pixi-setup.sh
74-
./pixi-setup.sh
72+
sed -i "s?StatFunGen/pixi-setup/main?${{ github.repository }}/${{ github.ref_name }}?g" pixi-setup.sh
73+
sed -i "s?init.sh | bash?init.sh | sed 's,StatFunGen/pixi-setup/main,${{ github.repository }}/${{ github.ref_name }},g' | bash?" pixi-setup.sh
74+
printf "\n1\n" | ./pixi-setup.sh

envs/full_packages.txt

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
# Full package list - complete bioinformatics environment
2+
# Sections: [global], [global_linux], [python], [r]
3+
4+
# [global]
5+
ark
6+
awscli
7+
bamtools
8+
bcftools
9+
bedtools
10+
curl
11+
deeptools
12+
diffutils
13+
ensembl-vep
14+
fastqc
15+
fastp
16+
findutils
17+
gatk4
18+
gawk
19+
gffread
20+
git
21+
go-ghq
22+
grep
23+
gtex-pipeline-gene_model
24+
gtex-pipeline-qtl
25+
gtex-pipeline-rnaseq
26+
htslib
27+
king
28+
kent-tools
29+
less
30+
metal
31+
multiqc
32+
pandoc
33+
parallel
34+
perl
35+
picard
36+
plink
37+
plink2
38+
python=3.12
39+
quantas
40+
r-base=4.4
41+
regtools
42+
ripgrep
43+
rnaseqc
44+
rsem
45+
ruby
46+
samtools
47+
sed
48+
snpeff
49+
snpsift
50+
star
51+
tree
52+
trimmomatic
53+
unzip
54+
util-linux
55+
vim
56+
wget
57+
58+
# [global_linux]
59+
code-server
60+
fastlmmc
61+
gcta
62+
ldstore
63+
procps-ng
64+
regenie
65+
66+
# [python]
67+
altair
68+
bash_kernel
69+
bitarray
70+
cython
71+
dill
72+
feather-format
73+
imageio
74+
ipykernel
75+
ipywidgets
76+
ipympl
77+
ipyparallel
78+
ipython
79+
jedi-language-server
80+
jupyterlab
81+
jupyter_client
82+
jupyter_console
83+
jupyter_core
84+
jupyter_server
85+
jupyter-lsp
86+
jupyterlab-lsp
87+
jupyterlab-sos
88+
jupyterhub
89+
markdown
90+
markdown-kernel
91+
matplotlib-base
92+
mofapy2
93+
multipy
94+
nb_conda_kernels
95+
nbconvert-core
96+
nbdime
97+
nbformat
98+
notebook
99+
numba
100+
numexpr
101+
numpy
102+
openpyxl
103+
pandas
104+
pgenlib
105+
pillow
106+
ptpython
107+
pyarrow
108+
pybigwig
109+
python-ldstore
110+
python-lsp-server
111+
qvalue
112+
scikit-learn
113+
scipy
114+
seaborn
115+
statsmodels
116+
sympy
117+
tqdm
118+
tensorqtl
119+
wand
120+
widgetsnbextension
121+
sos
122+
sos-bash
123+
sos-notebook
124+
sos-python
125+
sos-r
126+
127+
# [r]
128+
bioconductor-annotationdbi
129+
bioconductor-clusterprofiler
130+
bioconductor-edger
131+
bioconductor-illuminahumanmethylation450kmanifest
132+
bioconductor-illuminahumanmethylationepicmanifest
133+
bioconductor-impute
134+
bioconductor-limma
135+
bioconductor-minfi
136+
bioconductor-mofa2
137+
bioconductor-org.hs.eg.db
138+
bioconductor-pcatools
139+
bioconductor-preprocesscore
140+
bioconductor-psichomics
141+
bioconductor-qvalue
142+
bioconductor-sesame
143+
bioconductor-sesamedata
144+
bioconductor-variantannotation
145+
r-abind
146+
r-arrow
147+
r-ape
148+
r-bedtoolsr
149+
r-bigsnpr
150+
r-biocmanager
151+
r-bitops
152+
r-catools
153+
r-colocboost
154+
r-complexupset
155+
r-corrplot
156+
r-devtools
157+
r-flashpcar
158+
r-fsusier
159+
r-gbj
160+
r-genio
161+
r-glmnet
162+
r-gplots
163+
r-gtools
164+
r-gwasrapidd
165+
r-harmonicmeanp
166+
r-httpgd
167+
r-hudson
168+
r-igraph
169+
r-irkernel
170+
r-languageserver
171+
r-mediation
172+
r-missforest
173+
r-mr.ash.alpha
174+
r-mr.mash.alpha
175+
r-mvsusier
176+
r-pacman
177+
r-pecotmr
178+
r-pgenlibr
179+
r-plinkqc
180+
r-profvis
181+
r-qgg
182+
r-qqman
183+
r-qrank
184+
r-quadprog
185+
r-quantreg
186+
r-rfast
187+
r-rgl
188+
r-rmtstat
189+
r-seurat
190+
r-tidyverse
191+
r-watershedr

envs/minimal_packages.txt

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Minimal package list - general purpose only, no bioinformatics tools
2+
# Sections: [global], [python], [r]
3+
4+
# [global]
5+
curl
6+
diffutils
7+
findutils
8+
gawk
9+
git
10+
grep
11+
less
12+
parallel
13+
pandoc
14+
perl
15+
python=3.12
16+
r-base=4.4
17+
ripgrep
18+
ruby
19+
sed
20+
tree
21+
unzip
22+
vim
23+
wget
24+
25+
# [python]
26+
cython
27+
dill
28+
ipykernel
29+
ipywidgets
30+
ipympl
31+
ipyparallel
32+
ipython
33+
jedi-language-server
34+
jupyterlab
35+
jupyter_client
36+
jupyter_console
37+
jupyter_core
38+
jupyter_server
39+
jupyter-lsp
40+
jupyterlab-lsp
41+
matplotlib-base
42+
nb_conda_kernels
43+
nbconvert-core
44+
nbdime
45+
nbformat
46+
notebook
47+
numba
48+
numexpr
49+
numpy
50+
openpyxl
51+
pandas
52+
pillow
53+
ptpython
54+
pyarrow
55+
python-lsp-server
56+
scikit-learn
57+
scipy
58+
seaborn
59+
statsmodels
60+
sympy
61+
tqdm
62+
widgetsnbextension
63+
64+
# [r]
65+
r-biocmanager
66+
r-corrplot
67+
r-devtools
68+
r-glmnet
69+
r-httpgd
70+
r-igraph
71+
r-irkernel
72+
r-languageserver
73+
r-pacman
74+
r-tidyverse

init.sh

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
#!/usr/bin/env bash
22

3-
set -o errexit -o nounset -o xtrace -o pipefail
3+
set -o errexit -o nounset -o pipefail
4+
5+
# Use PIXI_HOME if set (e.g. custom HPC path), otherwise fall back to default
6+
PIXI_HOME="${PIXI_HOME:-${HOME}/.pixi}"
47

58
# Use Rprofile.site so that only pixi-installed R can see r-base packages
6-
mkdir -p ${HOME}/.pixi/envs/python/lib/R/etc
7-
echo ".libPaths('${HOME}/.pixi/envs/r-base/lib/R/library')" > ${HOME}/.pixi/envs/python/lib/R/etc/Rprofile.site
9+
mkdir -p ${PIXI_HOME}/envs/python/lib/R/etc
10+
echo ".libPaths('${PIXI_HOME}/envs/r-base/lib/R/library')" > ${PIXI_HOME}/envs/python/lib/R/etc/Rprofile.site
811

912
# Create config files for rstudio
1013
mkdir -p ${HOME}/.config/rstudio
@@ -13,18 +16,18 @@ directory=${HOME}/.local/var/lib/rstudio-server
1316
EOF
1417

1518
tee ${HOME}/.config/rstudio/rserver.conf << EOF
16-
rsession-which-r=${HOME}/.pixi/envs/r-base/bin/R
19+
rsession-which-r=${PIXI_HOME}/envs/r-base/bin/R
1720
auth-none=1
1821
database-config-file=${HOME}/.config/rstudio/database.conf
1922
server-daemonize=0
2023
server-data-dir=${HOME}/.local/var/run/rstudio-server
2124
server-user=${USER}
2225
EOF
2326

24-
# Register Juypter kernels
25-
find ${HOME}/.pixi/envs/python/share/jupyter/kernels/ -maxdepth 1 -mindepth 1 -type d | \
27+
# Register Jupyter kernels
28+
find ${PIXI_HOME}/envs/python/share/jupyter/kernels/ -maxdepth 1 -mindepth 1 -type d | \
2629
xargs -I % jupyter-kernelspec install --log-level=50 --user %
27-
find ${HOME}/.pixi/envs/r-base/share/jupyter/kernels/ -maxdepth 1 -mindepth 1 -type d | \
30+
find ${PIXI_HOME}/envs/r-base/share/jupyter/kernels/ -maxdepth 1 -mindepth 1 -type d | \
2831
xargs -I % jupyter-kernelspec install --log-level=50 --user %
2932
# ark --install
3033

@@ -49,7 +52,9 @@ else
4952
code-server --install-extension usernamehw.errorlens
5053
fi
5154

52-
# Temporary fix to run post-link scripts
53-
bash -c "PREFIX=${HOME}/.pixi/envs/r-base PATH=${HOME}/.pixi/envs/r-base/bin:${PATH} .bioconductor-genomeinfodbdata-post-link.sh"
54-
find ${HOME}/.pixi/envs/r-base/bin -name '*bioconductor-*-post-link.sh' | \
55-
xargs -I % bash -c "PREFIX=${HOME}/.pixi/envs/r-base PATH=${HOME}/.pixi/envs/r-base/bin:${PATH} %"
55+
# Temporary fix to run post-link scripts (only present in full install with bioconductor packages)
56+
if [ -f "${PIXI_HOME}/envs/r-base/bin/.bioconductor-genomeinfodbdata-post-link.sh" ]; then
57+
bash -c "PREFIX=${PIXI_HOME}/envs/r-base PATH=${PIXI_HOME}/envs/r-base/bin:${PATH} .bioconductor-genomeinfodbdata-post-link.sh"
58+
fi
59+
find ${PIXI_HOME}/envs/r-base/bin -name '*bioconductor-*-post-link.sh' | \
60+
xargs -I % bash -c "PREFIX=${PIXI_HOME}/envs/r-base PATH=${PIXI_HOME}/envs/r-base/bin:${PATH} %"

0 commit comments

Comments
 (0)