Skip to content

Commit

Permalink
Merge pull request #1242 from ComparativeGenomicsToolkit/docker-fixes
Browse files Browse the repository at this point in the history
prep release 2.7.0
  • Loading branch information
glennhickey authored Dec 5, 2023
2 parents 2bc8908 + f80850b commit 48410bd
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 12 deletions.
10 changes: 5 additions & 5 deletions BIN-INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ pre-compile binary, static linked distribution.
## Extracting
If you have not already extract the distribution and cd into the cactus directory:
```
tar -xzf cactus-bin-v2.6.13.tar.gz
cd cactus-bin-v2.6.13
tar -xzf cactus-bin-v2.7.0.tar.gz
cd cactus-bin-v2.7.0
```

## Setup

To build a python virtualenv and activate, do the following steps. This requires Python version >= 3.7 (so Ubuntu 18.04 users should use `-p python3.8` below):
```
virtualenv -p python3 venv-cactus-v2.6.13
printf "export PATH=$(pwd)/bin:\$PATH\nexport PYTHONPATH=$(pwd)/lib:\$PYTHONPATH\n" >> venv-cactus-v2.6.13/bin/activate
source venv-cactus-v2.6.13/bin/activate
virtualenv -p python3 venv-cactus-v2.7.0
printf "export PATH=$(pwd)/bin:\$PATH\nexport PYTHONPATH=$(pwd)/lib:\$PYTHONPATH\n" >> venv-cactus-v2.7.0/bin/activate
source venv-cactus-v2.7.0/bin/activate
python3 -m pip install -U setuptools pip wheel
python3 -m pip install -U .
python3 -m pip install -U -r ./toil-requirement.txt
Expand Down
8 changes: 6 additions & 2 deletions ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
# Release 2.7.0 2023-??-??
# Release 2.7.0 2023-12-05

This release changes how outgroups are used during chaining:
This release changes how outgroups are used during chaining during progressive alignment, and adds some pangenome options

- Add `--xg` option for `xg` pangenome output.
- Add (experimental) `cactus-pagnenome --noSplit` option in order to bypass reference chromosome splitting. This was previously only possible by running step-by-step and not using `cactus-graphmap-join`.
- Add pangenome tutorial (developed for recent hackathon) to documentation.
- Update to `vg` version [1.53.0](https://github.com/vgteam/vg/releases/tag/v1.53.0).
- Updated local alignment selection criteria. At each internal node of the guide tree Cactus picks a set of pairwise local alignments between the genomes being aligned to construct an initial sequence graph representing the whole genome alignment. This sequence graph is then refined and an ancestral sequence inferred to complete the alignment process for the internal node. The pairwise local alignments are generated with LASTZ (or SegAlign if using the GPU mode). To create a reliable subset of local alignments Cactus employs a chaining process that organizes the pairwise local alignments into pairwise chains of syntenic alignments, using a process akin to the chains and nets procedure used by the UCSC Browser. Previously, each genome being aligned, including both ingroup and outgroup genomes, was used to select a set of primary chains. That is, for each genome sequence non-overlapping chains of pairwise alignments were chosen, each of which could be to any of the other genomes in the set. Only these primary chains were then fed into the Cactus process to construct the sequence graph. This heuristic works reasonably well, in effect it allows each subsequence to choose a sequence in another genome with which it shares a most recent common ancestor. In the new, updated version we tweak this process slightly to avoid rare edge cases. Now each sequence in each ingroup genome picks primary chains only to other ingroup genomes. Thus the set of primary chains for ingroup genomes does not include any outgroup alignments. The outgroup genomes then get to pick primary chains to the ingroups, effectively voting on which parts of the ingroups they are syntenic too. The result of this change is that the outgroups are effectively only used to determine ancestral orderings and do not ever prevent the syntenic portions of two ingroups from aligning together.

# Release 2.6.13 2023-11-15
Expand Down
6 changes: 3 additions & 3 deletions doc/progressive.md
Original file line number Diff line number Diff line change
Expand Up @@ -170,12 +170,12 @@ The Cactus Docker image contains everything you need to run Cactus (python envir

```
wget -q https://raw.githubusercontent.com/ComparativeGenomicsToolkit/cactus/master/examples/evolverMammals.txt -O evolverMammals.txt
docker run -v $(pwd):/data --rm -it quay.io/comparative-genomics-toolkit/cactus:v2.6.13 cactus /data/jobStore /data/evolverMammals.txt /data/evolverMammals.hal
docker run -v $(pwd):/data --rm -it quay.io/comparative-genomics-toolkit/cactus:v2.7.0 cactus /data/jobStore /data/evolverMammals.txt /data/evolverMammals.hal
```

Or you can proceed interactively by running
```
docker run -v $(pwd):/data --rm -it quay.io/comparative-genomics-toolkit/cactus:v2.6.13 bash
docker run -v $(pwd):/data --rm -it quay.io/comparative-genomics-toolkit/cactus:v2.7.0 bash
cactus /data/jobStore /data/evolverMammals.txt /data/evolverMammals.hal
```
Expand Down Expand Up @@ -221,7 +221,7 @@ You cannot run `cactus --batchSystem slurm` from *inside* the Cactus docker cont
To run Progressive Cactus with CPU (default) lastz, you should increase the chunk size. This will divide the input assemblies into fewer pieces, resulting in fewer jobs on the cluster.

```
cp cactus-bin-v2.6.13/src/cactus/cactus_progressive_config.xml ./config-slurm.xml
cp cactus-bin-v2.7.0/src/cactus/cactus_progressive_config.xml ./config-slurm.xml
sed -i config-slurm.xml -e 's/blast chunkSize="30000000"/blast chunkSize="90000000"/g'
sed -i config-slurm.xml -e 's/dechunkBatchSize="1000"/dechunkBatchSize="200"/g'
```
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def run(self):

setup(
name = "Cactus",
version = "2.6.13",
version = "2.7.0",
author = "Benedict Paten",
package_dir = {'': 'src'},
packages = find_packages(where='src'),
Expand Down
2 changes: 1 addition & 1 deletion src/cactus/shared/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ def getDockerTag(gpu=False):
return "latest"
else:
# must be manually kept current with each release
return 'v2.6.13' + ('-gpu' if gpu else '')
return 'v2.7.0' + ('-gpu' if gpu else '')

def getDockerImage(gpu=False):
"""Get fully specified Docker image name."""
Expand Down

0 comments on commit 48410bd

Please sign in to comment.