Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Break up actions #54

Merged
merged 2 commits into from
May 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,36 +1,45 @@

# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: diploshic
name: Build

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
on: push

jobs:
build:

Build_Package:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11"]
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.10
uses: actions/setup-python@v2
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Install dependencies
python-version: ${{ matrix.python-version }}
- name: Setup conda
uses: s-weigand/setup-conda@v1
with:
activate-conda: true
update-conda: true
python-version: ${{ matrix.python-version }}
conda-channels: conda-forge
- name: Install dependencies
run: |
conda install pip setuptools
python -m pip install --upgrade pip
pip install flake8 pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Lint with flake8
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
- name: Install diploSHIC
run: |
pip install .
- name: List installed
run: |
pytest
conda list
12 changes: 9 additions & 3 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,18 @@
# separate terms of service, privacy policy, and support
# documentation.

name: Upload Python Package
name: Publish

on: [push, pull_request]
on:
push:
branches:
- main
- master
tags:
- v*

jobs:
manylinux:
Build_Wheel:
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand Down
9 changes: 7 additions & 2 deletions diploshic/fvTools.py
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@ def readFa(faFileName, upper=False):
fopen = open
with fopen(faFileName, "rt") as faFile:
reading = False
currChr = None
for line in faFile:
if line.startswith(">"):
if reading:
Expand Down Expand Up @@ -493,6 +494,10 @@ def readMaskDataForTraining(
readingMasks = False
isAccessible, isAccessibleArm = [], []
genoMaskInfo = []
currChr = None
genos = None
positions = None
positions2SnpIndices = None
with fopen(maskFileName, "rt") as maskFile:
for line in maskFile:
if line.startswith(">"):
Expand Down Expand Up @@ -916,7 +921,7 @@ def calcAndAppendStatValDiplo(
- statVals["pi"][instanceIndex][subWinIndex]
)
elif statName == "HapCount":
statVals[statName][instanceIndex].append(len(hapsInSubWin.distinct()))
statVals[statName][instanceIndex].append(len(genosInSubWin.distinct()))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hey @bruce-edelman -- slightly worried about this change? does this not throw off the Haplotype stuff?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I may have been confused but looking at the code the Haplo/diplo functions seem to be split and each called when specifying haplo or diplo modes. In the haplo version there is the variable hapsInSubWin provided but in the diplo version of the same function there isn't. So that means that this if statement must never be true otherwise there would be undefined variable errors.

I had (maybe overconfidently) assumed that this function maybe was copied from the haplo version and this variable was meant to be genosInSubWin

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since it appears that maybe the "HapCount" stat won't ever actually be called for the diplo version of the calculating the stats then maybe we can just remove it ?

elif statName == "nDiplos":
diplotypeCounts = dps.getHaplotypeFreqSpec(genosNAlt)
nDiplos = diplotypeCounts[genosNAlt.shape[1]]
Expand Down Expand Up @@ -1021,7 +1026,7 @@ def calcAndAppendStatValForScanDiplo(
)
elif statName == "HapCount":
# AK: undefined variables
statVals[statName].append(len(hapsInSubWin.distinct()))
statVals[statName].append(len(genosInSubWin.distinct()))
elif statName == "nDiplos":
diplotypeCounts = dps.getHaplotypeFreqSpec(genosNAlt)
nDiplos = diplotypeCounts[genosNAlt.shape[1]]
Expand Down