Skip to content

pandagma pan

pandagma pan #10

Workflow file for this run

name: pandagma pan
on:
workflow_dispatch:
inputs:
pandagma-conf:
# Glycine5_21_29_6 times out
default: '["Arachis3_5_2_0", "Cicer3_4_2_0", "Glycine_7_3_2", "Medicago3_8_0_15", "Vigna4_7_1_4"]'
description: Run pandagma pan for each config/NAME.conf file in the (JSON) array
required: true
ssh_enabled:
type: boolean
description: 'Stop after cloning repository and enable SSH access for debugging'
required: false
default: false
jobs:
pandagma:
strategy:
fail-fast: false
matrix:
PANDAGMA_CONF: ${{ fromJSON(github.event.inputs.pandagma-conf) }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup SSH session for debugging
uses: mxschmitt/action-tmate@v3
if: ${{ inputs.ssh_enabled }}
with:
limit-access-to-actor: false
- name: Fetch data
run: |
mkdir data
PATH=$PWD/bin:$PATH make -C data -f "${PWD}/get_data/${{ matrix.PANDAGMA_CONF }}.mk"
- name: Create conda environment
run: conda env create && conda clean --all -y
# Need transparent filesystem compression for larger datasets
- name: Create work filesystem
run: |
sudo apt update
sudo apt install -y --no-install-recommends zfsutils-linux
sudo truncate -s $((55*2**30)) /mnt/zpool
sudo zpool create work -O atime=off -O compression=lz4 /mnt/zpool
sudo chmod 777 /work
- name: Run pandagma
env:
PANDAGMA_CONF: ${{ matrix.PANDAGMA_CONF }}
# explicitly use bash to enforce pipefail
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference
shell: bash
run: |
mkdir -p ${PANDAGMA_OUT:=upload-artifact/pandagma-pan-${PANDAGMA_CONF}}
printf 'GITHUB_REPOSITORY: %s\n\n' "${GITHUB_REPOSITORY}" > ${PANDAGMA_OUT}/VERSION
git show --quiet >> ${PANDAGMA_OUT}/VERSION
cp config/${PANDAGMA_CONF}.conf ${PANDAGMA_OUT}
env PATH=$PWD/bin:$PATH time -v conda run -n pandagma --no-capture-output pandagma TEfilter -d data -c "config/${PANDAGMA_CONF}.conf" -w /work 2>&1 | tee ${PANDAGMA_OUT}/pandagma.log
env PATH=$PWD/bin:$PATH time -v conda run -n pandagma --no-capture-output pandagma pan -d data_TEfilter -c "config/${PANDAGMA_CONF}.conf" -w /work -r -o ${PANDAGMA_OUT} 2>&1 | tee ${PANDAGMA_OUT}/pandagma.log
- name: Upload output artifacts
uses: actions/upload-artifact@v4
with:
name: pandagma-pan-${{ matrix.PANDAGMA_CONF }}
# Need to create subdirectory to unzip as directory
# https://github.com/actions/upload-artifact/issues/248
path: upload-artifact
if-no-files-found: error
retention-days: 90
compression-level: 9