diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..555190c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +.git/ +docs/ +Dockerfile diff --git a/.github/workflows/dockerhub.yml b/.github/workflows/dockerhub.yml new file mode 100644 index 0000000..1de107b --- /dev/null +++ b/.github/workflows/dockerhub.yml @@ -0,0 +1,39 @@ +name: dockerhub + +on: + release: + types: [published] + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - + name: Remove leading v from the release tag + id: rmv + run: | + sansv=$(echo ${{ github.event.release.tag_name }} | tr -d v) + echo "::set-output name=tag::${{ github.repository }}:$sansv" + - + name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - + name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Build and push + id: docker_build + uses: docker/build-push-action@v2 + with: + push: true + tags: ${{steps.rmv.outputs.tag}} + - + name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} + \ No newline at end of file diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 0000000..25a823d --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,18 @@ +ports: + - port: 6080 + onOpen: open-preview +tasks: + - init: | + eval $(command gp env -e) + pip install synapseclient + synapse -u "$SYN_USER" -p "$SYN_TOKEN" \ + get syn27202293 --downloadLocation /workspace/testdata + synapse -u "$SYN_USER" -p "$SYN_TOKEN" \ + get syn27202298 --downloadLocation /workspace/testdata/csv + synapse -u "$SYN_USER" -p "$SYN_TOKEN" \ + get syn28413455 --downloadLocation /workspace/testdata/mask + synapse -u "$SYN_USER" -p "$SYN_TOKEN" \ + get syn27202398 --downloadLocation /workspace/testdata/seg + synapse -u "$SYN_USER" -p "$SYN_TOKEN" \ + get syn27204544 --downloadLocation /workspace/testdata/tif + cp /workspace/cylinter/cylinter/config.yml /workspace/testdata diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..70c21c9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM gitpod/workspace-full-vnc:latest + +# Qt5 graphics libraries for napari +RUN sudo apt-get update && \ + sudo apt-get install -y \ + libpython3.8-dev \ + qtbase5-dev \ + qtchooser \ + qt5-qmake \ + qtbase5-dev-tools && \ + sudo rm -rf /var/lib/apt/lists/* + +RUN python -m pip install "napari[all]" + +# Install cylinter +COPY --chown=gitpod:gitpod . /app +RUN python -m pip install /app + +RUN chmod +x /app/cylinter/start.sh +CMD [ "/bin/bash", "-ci", "/app/cylinter/start.sh" ] diff --git a/cylinter/config.yml b/cylinter/config.yml index 3c268d5..45b62d0 100755 --- a/cylinter/config.yml +++ b/cylinter/config.yml @@ -1,11 +1,11 @@ # GENERAL PROGRAM CONFIGURATIONS -inDir: /Users//Desktop/cylinter_demo +inDir: /data # Path to CyLinter input directory containing multi-channel # image files (TIFF or OME-TIFF), segmentation outlines (OME-TIFF), # segmentation masks (TIFF), and corresponding single-cell feature tables (CSV) -outDir: /Users//Desktop/cylinter_demo/output +outDir: /data/output # CyLinter output directory. Path is created if it does not exist. sampleMetadata: diff --git a/cylinter/start.sh b/cylinter/start.sh new file mode 100644 index 0000000..01ae29a --- /dev/null +++ b/cylinter/start.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +/usr/bin/gp-vncsession +cylinter /data/config.yml \ No newline at end of file diff --git a/setup.py b/setup.py index 28f4ad8..1b3a210 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -with open("README.md", "r", encoding="utf-8") as fh: +with open("ReadMe.md", "r", encoding="utf-8") as fh: LONG_DESCRIPTION = fh.read() requires = [