Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
run: |
sed -i "s?main?${{ github.event.pull_request.head.ref }}?g" pixi-setup.sh
sed -i "s?init.sh | bash?init.sh | sed 's,main,${{ github.event.pull_request.head.ref }},g' | bash?" pixi-setup.sh
./pixi-setup.sh
printf "\n1\n" | ./pixi-setup.sh

osx-64:
runs-on: macos-13
Expand All @@ -48,7 +48,7 @@ jobs:
run: |
sed -i "s?main?${{ github.event.pull_request.head.ref }}?g" pixi-setup.sh
sed -i "s?init.sh | bash?init.sh | sed 's,main,${{ github.event.pull_request.head.ref }},g' | bash?" pixi-setup.sh
./pixi-setup.sh
printf "\n1\n" | ./pixi-setup.sh

osx-arm64:
runs-on: macos-14
Expand All @@ -71,4 +71,4 @@ jobs:
run: |
sed -i "s?main?${{ github.event.pull_request.head.ref }}?g" pixi-setup.sh
sed -i "s?init.sh | bash?init.sh | sed 's,main,${{ github.event.pull_request.head.ref }},g' | bash?" pixi-setup.sh
./pixi-setup.sh
printf "\n1\n" | ./pixi-setup.sh
18 changes: 9 additions & 9 deletions .github/workflows/dispatch_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ jobs:
- name: Run setup script
shell: pixi exec --spec sed -- bash -e {0}
run: |
sed -i "s?main?${{ github.event.pull_request.head.ref }}?g" pixi-setup.sh
sed -i "s?init.sh | bash?init.sh | sed 's,main,${{ github.event.pull_request.head.ref }},g' | bash?" pixi-setup.sh
./pixi-setup.sh
sed -i "s?StatFunGen/pixi-setup/main?${{ github.repository }}/${{ github.ref_name }}?g" pixi-setup.sh
sed -i "s?init.sh | bash?init.sh | sed 's,StatFunGen/pixi-setup/main,${{ github.repository }}/${{ github.ref_name }},g' | bash?" pixi-setup.sh
printf "\n1\n" | ./pixi-setup.sh

osx-64_pixi:
runs-on: macos-latest
Expand All @@ -46,9 +46,9 @@ jobs:
- name: Run setup script
shell: pixi exec --spec sed -- bash -e {0}
run: |
sed -i "s?main?${{ github.event.pull_request.head.ref }}?g" pixi-setup.sh
sed -i "s?init.sh | bash?init.sh | sed 's,main,${{ github.event.pull_request.head.ref }},g' | bash?" pixi-setup.sh
./pixi-setup.sh
sed -i "s?StatFunGen/pixi-setup/main?${{ github.repository }}/${{ github.ref_name }}?g" pixi-setup.sh
sed -i "s?init.sh | bash?init.sh | sed 's,StatFunGen/pixi-setup/main,${{ github.repository }}/${{ github.ref_name }},g' | bash?" pixi-setup.sh
printf "\n1\n" | ./pixi-setup.sh

osx-arm64_pixi:
runs-on: macos-14
Expand All @@ -69,6 +69,6 @@ jobs:
- name: Run setup script
shell: pixi exec --spec sed -- bash -e {0}
run: |
sed -i "s?main?${{ github.event.pull_request.head.ref }}?g" pixi-setup.sh
sed -i "s?init.sh | bash?init.sh | sed 's,main,${{ github.event.pull_request.head.ref }},g' | bash?" pixi-setup.sh
./pixi-setup.sh
sed -i "s?StatFunGen/pixi-setup/main?${{ github.repository }}/${{ github.ref_name }}?g" pixi-setup.sh
sed -i "s?init.sh | bash?init.sh | sed 's,StatFunGen/pixi-setup/main,${{ github.repository }}/${{ github.ref_name }},g' | bash?" pixi-setup.sh
printf "\n1\n" | ./pixi-setup.sh
191 changes: 191 additions & 0 deletions envs/full_packages.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
# Full package list - complete bioinformatics environment
# Sections: [global], [global_linux], [python], [r]

# [global]
ark
awscli
bamtools
bcftools
bedtools
curl
deeptools
diffutils
ensembl-vep
fastqc
fastp
findutils
gatk4
gawk
gffread
git
go-ghq
grep
gtex-pipeline-gene_model
gtex-pipeline-qtl
gtex-pipeline-rnaseq
htslib
king
kent-tools
less
metal
multiqc
pandoc
parallel
perl
picard
plink
plink2
python=3.12
quantas
r-base=4.4
regtools
ripgrep
rnaseqc
rsem
ruby
samtools
sed
snpeff
snpsift
star
tree
trimmomatic
unzip
util-linux
vim
wget

# [global_linux]
code-server
fastlmmc
gcta
ldstore
procps-ng
regenie

# [python]
altair
bash_kernel
bitarray
cython
dill
feather-format
imageio
ipykernel
ipywidgets
ipympl
ipyparallel
ipython
jedi-language-server
jupyterlab
jupyter_client
jupyter_console
jupyter_core
jupyter_server
jupyter-lsp
jupyterlab-lsp
jupyterlab-sos
jupyterhub
markdown
markdown-kernel
matplotlib-base
mofapy2
multipy
nb_conda_kernels
nbconvert-core
nbdime
nbformat
notebook
numba
numexpr
numpy
openpyxl
pandas
pgenlib
pillow
ptpython
pyarrow
pybigwig
python-ldstore
python-lsp-server
qvalue
scikit-learn
scipy
seaborn
statsmodels
sympy
tqdm
tensorqtl
wand
widgetsnbextension
sos
sos-bash
sos-notebook
sos-python
sos-r

# [r]
bioconductor-annotationdbi
bioconductor-clusterprofiler
bioconductor-edger
bioconductor-illuminahumanmethylation450kmanifest
bioconductor-illuminahumanmethylationepicmanifest
bioconductor-impute
bioconductor-limma
bioconductor-minfi
bioconductor-mofa2
bioconductor-org.hs.eg.db
bioconductor-pcatools
bioconductor-preprocesscore
bioconductor-psichomics
bioconductor-qvalue
bioconductor-sesame
bioconductor-sesamedata
bioconductor-variantannotation
r-abind
r-arrow
r-ape
r-bedtoolsr
r-bigsnpr
r-biocmanager
r-bitops
r-catools
r-colocboost
r-complexupset
r-corrplot
r-devtools
r-flashpcar
r-fsusier
r-gbj
r-genio
r-glmnet
r-gplots
r-gtools
r-gwasrapidd
r-harmonicmeanp
r-httpgd
r-hudson
r-igraph
r-irkernel
r-languageserver
r-mediation
r-missforest
r-mr.ash.alpha
r-mr.mash.alpha
r-mvsusier
r-pacman
r-pecotmr
r-pgenlibr
r-plinkqc
r-profvis
r-qgg
r-qqman
r-qrank
r-quadprog
r-quantreg
r-rfast
r-rgl
r-rmtstat
r-seurat
r-tidyverse
r-watershedr
74 changes: 74 additions & 0 deletions envs/minimal_packages.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Minimal package list - general purpose only, no bioinformatics tools
# Sections: [global], [python], [r]

# [global]
curl
diffutils
findutils
gawk
git
grep
less
parallel
pandoc
perl
python=3.12
r-base=4.4
ripgrep
ruby
sed
tree
unzip
vim
wget

# [python]
cython
dill
ipykernel
ipywidgets
ipympl
ipyparallel
ipython
jedi-language-server
jupyterlab
jupyter_client
jupyter_console
jupyter_core
jupyter_server
jupyter-lsp
jupyterlab-lsp
matplotlib-base
nb_conda_kernels
nbconvert-core
nbdime
nbformat
notebook
numba
numexpr
numpy
openpyxl
pandas
pillow
ptpython
pyarrow
python-lsp-server
scikit-learn
scipy
seaborn
statsmodels
sympy
tqdm
widgetsnbextension

# [r]
r-biocmanager
r-corrplot
r-devtools
r-glmnet
r-httpgd
r-igraph
r-irkernel
r-languageserver
r-pacman
r-tidyverse
27 changes: 16 additions & 11 deletions init.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
#!/usr/bin/env bash

set -o errexit -o nounset -o xtrace -o pipefail
set -o errexit -o nounset -o pipefail

# Use PIXI_HOME if set (e.g. custom HPC path), otherwise fall back to default
PIXI_HOME="${PIXI_HOME:-${HOME}/.pixi}"

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

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

tee ${HOME}/.config/rstudio/rserver.conf << EOF
rsession-which-r=${HOME}/.pixi/envs/r-base/bin/R
rsession-which-r=${PIXI_HOME}/envs/r-base/bin/R
auth-none=1
database-config-file=${HOME}/.config/rstudio/database.conf
server-daemonize=0
server-data-dir=${HOME}/.local/var/run/rstudio-server
server-user=${USER}
EOF

# Register Juypter kernels
find ${HOME}/.pixi/envs/python/share/jupyter/kernels/ -maxdepth 1 -mindepth 1 -type d | \
# Register Jupyter kernels
find ${PIXI_HOME}/envs/python/share/jupyter/kernels/ -maxdepth 1 -mindepth 1 -type d | \
xargs -I % jupyter-kernelspec install --log-level=50 --user %
find ${HOME}/.pixi/envs/r-base/share/jupyter/kernels/ -maxdepth 1 -mindepth 1 -type d | \
find ${PIXI_HOME}/envs/r-base/share/jupyter/kernels/ -maxdepth 1 -mindepth 1 -type d | \
xargs -I % jupyter-kernelspec install --log-level=50 --user %
# ark --install

Expand All @@ -49,7 +52,9 @@ else
code-server --install-extension usernamehw.errorlens
fi

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