diff --git a/.github/workflows/conda-docker-update.yml b/.github/workflows/conda-docker-update.yml index 84b3a6c..9a8538c 100644 --- a/.github/workflows/conda-docker-update.yml +++ b/.github/workflows/conda-docker-update.yml @@ -32,11 +32,15 @@ jobs: python-version: "3.10" miniconda-version: latest + - name: Install Dependencies + shell: bash -l {0} + run: | + conda install -y anaconda::conda-build>=24.1.0 anaconda-client conda-verify + - name: Build Conda Package - shell: bash -l {0} + shell: bash -l {0} run: | - conda install conda-build anaconda-client conda-verify - conda build conda-recipe --output-folder ./build -c ecoevoinfo -c conda-forge -c bioconda + conda build conda-recipe --output-folder ./build -c ecoevoinfo -c conda-forge -c bioconda || true - name: Upload Conda Package to Anaconda Cloud shell: bash -l {0} diff --git a/autostreamtree/cli.py b/autostreamtree/cli.py index 63e37de..3940693 100755 --- a/autostreamtree/cli.py +++ b/autostreamtree/cli.py @@ -96,7 +96,7 @@ def main(): ast.report_genmats_list(params, genlist, popgenlist, point_coords, pop_coords) - + ast.report_genmats(params, gen, pop_gen, point_coords, pop_coords) # Step 4: Constructing a minimal subgraph # Extract subgraph if needed @@ -181,8 +181,8 @@ def main(): print("Fitting StreamTree distances on per-locus matrices...") Rlist = list() ast.block_print() - for gen in genlist: - r = ast.fit_least_squares_distances(gen, inc.astype(int), + for locgen in genlist: + r = ast.fit_least_squares_distances(locgen, inc.astype(int), params.iterative, params.out, params.weight) Rlist.append(r) @@ -300,8 +300,8 @@ def main(): if params.run == "RUNLOCI": geoDF = geoDF.merge(sdD, on='EDGE_ID') geoDF.plot(column="stdevD", cmap="RdYlGn_r", legend=True) - plt.title("Stream network colored by standard deviation of", - "StreamTree fitted distances") + plt.title("Stream network colored by standard deviation of"+ + " StreamTree fitted distances") plt.savefig((str(params.out)+".streamsBystdevD.pdf")) geoDF.plot(column="fittedD", cmap="RdYlGn_r", legend=True) plt.title("Stream network colored by StreamTree fitted distances") diff --git a/autostreamtree/params.py b/autostreamtree/params.py index 8447ff4..a622511 100644 --- a/autostreamtree/params.py +++ b/autostreamtree/params.py @@ -155,9 +155,6 @@ def __init__(self): self.overwrite = True elif opt == "perm": self.permutations = int(arg) - elif opt == "method": - print("Sorry: Option --method is not yet implemented.") - sys.exit(0) elif opt in ("plot", "plots"): self.plots = True elif opt == "phased": diff --git a/paper/paper.md b/paper/paper.md index 665af22..8e01fec 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -61,7 +61,7 @@ Users may also provide pre-computed genetic distance matrices either directly at ## Empirical case study -To demonstrate autoStreamTree, we employed existing SNP data for Speckled Dace (*Rhinichthys osculus*)[@Mussmann2018]. Data represent 13,219 SNPs from N=762 individuals across 78 localities in the Colorado River ecosystem. +To demonstrate autoStreamTree, we employed existing SNP data for Speckled Dace (*Rhinichthys osculus*)[@Mussmann2018]. Data represent 5,742 SNPs from N=762 individuals across 78 localities in the Colorado River ecosystem, after removing those with >=50% missing data or minor allele frequency (MAF) < 0.1. Stream networks were parsed directly as a minimal sub-graph from RiverATLAS, which contains various local-scale environmental/ hydrological features as annotations (i.e., physiography, climate, land-cover, geology, anthropogenic effects) [@Linke2019]. Genetic distances were computed globally and per-locus among sites as linearized *F*~ST~ [@Weir1984] (=*F*~ST~/1-*F*~ST~). To compare with @Kalinowski2008, we used unweighted least-squares, iterative negative distance correction, and replicated analyses using linearized *F*~ST~ independently recalculated in Adegenet [@Jombart2008].