Comments (4)
Thank you, that was very helpful. I've integrated some basic CI testing now. The docker file is still incomplete, but will work on that shortly.
from checkm2.
A dockerfile that builds:
FROM mambaorg/micromamba:1.1.0
USER root
RUN apt-get update && \
apt-get install -y build-essential git && \
apt-get clean && \
apt-get purge && \
rm -rf /var/lib/apt/lists/* /tmp/*
USER $MAMBA_USER
ARG MAMBA_DOCKERFILE_ACTIVATE=1
COPY --chown=$MAMBA_USER:$MAMBA_USER env.yaml /tmp/env.yaml
RUN micromamba install -y -n base -f /tmp/env.yaml && \
micromamba clean --all --yes
RUN git clone --recursive https://github.com/chklovski/checkm2.git && \
cd checkm2 && \
python setup.py install && \
cd .. && rm -rf checkm2
ENTRYPOINT ["/usr/local/bin/_entrypoint.sh", "checkm2", "-h"]
...in case https://github.com/chklovski/CheckM2/blob/main/docker/Dockerfile.in isn't working.
More generally, it would be good to point out the OS-level dependencies (e.g., gcc
).
from checkm2.
If you'd like to set up CI for the repo, this action should get you most of the way there:
name: CheckM2
on: [push, pull_request]
jobs:
build:
name: build (${{ matrix.python-version }}, ${{ matrix.os }})
runs-on: ubuntu-latest
env:
DATADIR: data
strategy:
matrix:
python-version: [3.9]
build_type: [Release]
compiler: [g++-9]
include:
- compiler: g++-9
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Checkout submodules
run: git submodule update --init --recursive
- uses: conda-incubator/setup-miniconda@v2
with:
miniconda-version: 'latest'
auto-update-conda: true
mamba-version: "*"
python-version: ${{ matrix.python-version }}
channels: conda-forge,bioconda
environment-file: checkm2.yml
activate-environment: checkm2
- name: package install
shell: bash -l {0}
working-directory: ${{runner.workspace}}/checkm2/
run: |
python setup.py install
- name: checkm2 unit tests
shell: bash -l {0}
working-directory: ${{runner.workspace}}/checkm2/tests
run: |
pytest [checkm unit tests]
- name: checkm2 CLI tests
shell: bash -l {0}
working-directory: ${{runner.workspace}}/checkm2/tests
run: |
checkm2 -h
checkm2 predict -h
from checkm2.
I found that the grpcio
dependency issue is not a problem if python=3.8 is used.
If python=3.9 is used, then conda installs a version of grpcio
much more recent than 1.32.0
.
So, python setup.py install
with the python=3.9 conda env results in pip trying to install grpcio=1.32.0, and that leads to the issues.
@chklovski I'm guessing that you've been developing checkm2 with python3.8?
This is an instance where CI testing using multiple versions of python can be very helpful.
from checkm2.
Related Issues (20)
- TypeError: metaclass conflict HOT 7
- coding density
- Can Checkm2 be fine-tuned for euMAGs? HOT 1
- running checkm2 issue HOT 8
- KeyError: 'key' while downloading database HOT 6
- N50 values
- checkm2 database --download fail HOT 2
- Can I use protein fasta as input? HOT 2
- [Question] How to determine the number of splits used for Diamond annotation? HOT 1
- Average_Gene_Length HOT 1
- How to remove the contamination sequence from MAGs HOT 2
- Cannot install ChekM2 HOT 1
- Question about Checkm2 Annotation HOT 1
- Checkm2 flags certain species and genera as contaminated on a consistent basis.
- the version checkm2 v1.0.2 was not available on conda HOT 1
- Error in DIAMOND execution HOT 2
- [Feature Request] Use #!/usr/bin/env python instead of hardcoding python path
- AttributeError: 'Predictor' object has no attribute '__set_up_prodigal_thread' HOT 2
- Random errors on clusters HOT 3
- Database update? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from checkm2.