Skip to content

Commit dd34226

Browse files
committed
Merge branch 'rel-0.4.0'
2 parents 466e876 + 1d85604 commit dd34226

39 files changed

+2756
-447
lines changed

.github/workflows/docker-image.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717

1818
steps:
1919
- name: Checkout
20-
uses: actions/checkout@v4
20+
uses: actions/checkout@v5
2121
with:
2222
submodules: recursive
2323

@@ -37,6 +37,9 @@ jobs:
3737
type=semver,pattern={{major}}.{{minor}}
3838
type=semver,pattern={{major}}
3939
type=sha
40+
labels: |
41+
org.opencontainers.image.source=${{ github.repository }}
42+
org.opencontainers.image.revision=${{ github.sha }}
4043
4144
- name: Set up QEMU
4245
uses: docker/setup-qemu-action@v3

.github/workflows/publish-pypi-release.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@ jobs:
1010
deploy:
1111

1212
runs-on: ubuntu-latest
13+
permissions:
14+
id-token: write
1315

1416
steps:
15-
- uses: actions/checkout@v4
17+
- uses: actions/checkout@v5
1618
- name: Set up Python
17-
uses: actions/setup-python@v5
19+
uses: actions/setup-python@v6
1820
with:
1921
python-version: '3.x'
2022
- name: Install dependencies
@@ -24,7 +26,4 @@ jobs:
2426
- name: Build package
2527
run: hatch build
2628
- name: Publish package
27-
uses: pypa/gh-action-pypi-publish@15c56dba361d8335944d31a2ecd17d700fc7bcbc
28-
with:
29-
user: __token__
30-
password: ${{ secrets.PYPI_API_TOKEN }}
29+
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e

Dockerfile

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
FROM python:3.11-slim as basis
1+
FROM python:3.11-slim AS basis
22

33
# set environment varibles
4-
ENV PYTHONDONTWRITEBYTECODE 1
5-
ENV PYTHONUNBUFFERED 1
4+
ENV PYTHONDONTWRITEBYTECODE=1
5+
ENV PYTHONUNBUFFERED=1
66

77

8-
FROM basis as builder
8+
FROM basis AS builder
99
RUN apt-get update \
1010
&& apt-get install -y --no-install-recommends \
1111
build-essential \
@@ -29,14 +29,15 @@ RUN ls -la \
2929
&& /app/bin/pip install dist/*.whl
3030

3131

32-
FROM basis as runtime
32+
FROM basis AS runtime
3333
RUN apt-get update \
3434
&& apt-get install -y --no-install-recommends \
3535
fasttree \
3636
libxml2 \
3737
mafft \
3838
mmseqs2 \
3939
procps \
40+
time \
4041
&& apt-get -y autoremove \
4142
&& apt-get -y autoclean \
4243
&& rm -rf /var/lib/apt/lists/*

FastOMA.nf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ process infer_roothogs{
237237
--hogmap hogmaps \
238238
--splice ${splice_folder} \
239239
--out-rhog-folder "omamer_rhogs" \
240+
--min-sequence-length ${params.min_sequence_length} \
240241
-vv
241242
"""
242243
}

FastOMA/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11

22
__packagename__ = "FastOMA"
3-
__version__ = "0.3.5"
3+
__version__ = "0.4.0"
4+
5+
import logging
6+
logger = logging.getLogger("FastOMA")

FastOMA/_hog_class.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121

2222
import itertools
23-
from . import _utils_subhog
24-
from ._wrappers import logger
23+
from . import _utils_subhog, logger
24+
2525

2626
# from .infer_subhogs import conf_infer_subhhogs #fastoma_infer_subhogs #
2727

@@ -144,6 +144,9 @@ def taxlevel(self):
144144
def rhogid(self):
145145
return self._rhogid
146146

147+
def __len__(self):
148+
return len(self._members)
149+
147150
def get_members(self):
148151
return set(self._members)
149152

@@ -334,10 +337,17 @@ def _sorter_key(sh):
334337
elif len(element_list) > 1:
335338
#hog_elemnt = ET.Element('orthologGroup', attrib={"id": str(self._hogid)})
336339
hog_elemnt = ET.Element('orthologGroup', attrib={"id": str(self._hogid)}, )
337-
num_species_tax_hog = len(set([i.split("||")[1] for i in self._members])) # 'tr|H2MU14|H2MU14_ORYLA||ORYLA||1056022282'
338-
completeness_score = round(num_species_tax_hog/self._tax_now.size, 4)
340+
species_of_members = set([i.split("||")[1] for i in self._members]) # 'tr|H2MU14|H2MU14_ORYLA||ORYLA||1056022282'
341+
num_species_tax_hog = len(species_of_members)
342+
mrca = self.taxlevel.get_common_ancestor(
343+
*[self.taxlevel.search_nodes(name=x)[0] for x in species_of_members])
344+
if mrca != self.taxlevel:
345+
logger.info(f"mrca ({mrca.name}) != self.taxlevel ({self.taxlevel.name})")
346+
logger.info(f"<{hog_elemnt.tag} {hog_elemnt.attrib}>")
347+
348+
completeness_score = round(num_species_tax_hog/mrca.size, 4)
339349
property_element = ET.SubElement(hog_elemnt, "score", attrib={"id": "CompletenessScore", "value": str(completeness_score)})
340-
property_element = ET.SubElement(hog_elemnt, "property", attrib={"name": "TaxRange", "value": str(self._tax_now.name)})
350+
property_element = ET.SubElement(hog_elemnt, "property", attrib={"name": "TaxRange", "value": str(mrca.name)})
341351

342352
for element in element_list:
343353
hog_elemnt.append(element)

0 commit comments

Comments
 (0)