diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 0874573..d588fd9 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -20,20 +20,25 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 + uses: conda-incubator/setup-miniconda@v3 with: python-version: ${{ matrix.python-version }} + environment-file: environment.yml + auto-activate-base: false + activate-environment: probest + channels: conda-forge,bioconda,defaults - name: Install dependencies + shell: bash -l {0} run: | - python -m pip install --upgrade pip - python -m pip install flake8 pytest pytest-cov - pip install -e .[dev] + python setup.py install - name: Lint with flake8 + shell: bash -l {0} run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest + shell: bash -l {0} run: | pytest \ No newline at end of file diff --git a/README.md b/README.md index 55eab62..ccbc714 100644 --- a/README.md +++ b/README.md @@ -17,9 +17,8 @@ At the core of PROBEst is an AI-enhanced workflow that combines Primer3 for init ```bash git clone https://github.com/CTLab-ITMO/PROBEst.git cd PROBEst -conda create -n probest +conda env create -f environment.yml conda activate probest -conda install --file requirements.txt python setup.py install ``` diff --git a/environment.yml b/environment.yml new file mode 100644 index 0000000..cdfe384 --- /dev/null +++ b/environment.yml @@ -0,0 +1,27 @@ +name: probest +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - biopython>=1.81 + - pandas>=1.5.0 + - numpy>=1.21.0 + - requests>=2.28.0 + - beautifulsoup4>=4.11.0 + - pytest>=7.0.0 + - pytest-cov>=4.0.0 + - tqdm>=4.67.1 + - scikit-learn>=1.0.2 + - matplotlib>=3.5.0 + - seaborn>=0.12.0 + - pytorch>=2.0.0 + - blast>=2.16.0 + - primer3>=2.6.1 + - flake8>=7.3.0 + - pip: + - ViennaRNA==2.6.4 + #optional: PDF parsing + #- PyMuPDF>=1.23.0 + #- pdfplumber>=0.9.0 + #- PyPDF2>=3.0.0 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 97c55e0..0000000 --- a/requirements.txt +++ /dev/null @@ -1,19 +0,0 @@ -biopython>=1.81 -pandas>=1.5.0 -numpy>=1.21.0 -requests>=2.28.0 -beautifulsoup4>=4.11.0 -pytest>=7.0.0 -pytest-cov>=4.0.0 -ViennaRNA>=2.6.4 -tqdm>=4.67.1 -scikit-learn>=1.0.2 -matplotlib>=3.5.0 -seaborn>=0.12.0 -pytorch>=2.0.0 -blast>=2.16.0 -primer3>=2.6.1 -# optional: PDF parsing -## PyMuPDF>=1.23.0 -## pdfplumber>=0.9.0 -## PyPDF2>=3.0.0 \ No newline at end of file diff --git a/setup.py b/setup.py index ac2a794..4dbbb9f 100644 --- a/setup.py +++ b/setup.py @@ -1,18 +1,12 @@ from setuptools import setup, find_packages import os -def read_requirements(): - """Read requirements from requirements.txt.""" - with open('requirements.txt') as f: - return [line.strip() for line in f if line.strip() and not line.startswith('#')] - setup( name='PROBESt', version='0.1.4', packages=find_packages(where='src'), package_dir={'': 'src'}, python_requires='>=3.8', - install_requires=read_requirements(), author='Your Name', author_email='your.email@example.com', description='PROBESt: package for nucleotide probes generation',