Skip to content
Commits on Source (8)
......@@ -26,6 +26,7 @@
class HashAgnosticCascadingBloom
{
public:
typedef uint64_t hash_t;
/** Default constructor */
HashAgnosticCascadingBloom()
: m_k(0)
......@@ -91,7 +92,7 @@ class HashAgnosticCascadingBloom
* Return true if the element with the given hash values
* has count >= levels.
*/
bool contains(const std::vector<size_t>& hashes) const
bool contains(const std::vector<hash_t>& hashes) const
{
assert(m_data.back() != NULL);
return m_data.back()->contains(hashes);
......@@ -101,14 +102,14 @@ class HashAgnosticCascadingBloom
* Return true if the element with the given hash values
* has count >= levels.
*/
bool contains(const size_t hashes[]) const
bool contains(const hash_t hashes[]) const
{
assert(m_data.back() != NULL);
return m_data.back()->contains(hashes);
}
/** Add the object with the specified index to this multiset. */
void insert(const std::vector<size_t>& hashes)
void insert(const std::vector<hash_t>& hashes)
{
for (unsigned i = 0; i < m_data.size(); ++i) {
assert(m_data.at(i) != NULL);
......@@ -120,7 +121,7 @@ class HashAgnosticCascadingBloom
}
/** Add the object with the specified index to this multiset. */
void insert(const size_t hashes[])
void insert(const hash_t hashes[])
{
for (unsigned i = 0; i < m_data.size(); ++i) {
assert(m_data.at(i) != NULL);
......
......@@ -29,6 +29,7 @@ class RollingBloomDBGVisitor : public DefaultBFSVisitor<GraphT>
typedef std::vector<std::pair<std::string, BloomFilter*>> BloomProperties;
typedef typename BloomProperties::const_iterator BloomPropertiesIt;
typedef uint64_t hash_t;
/** Constructor */
template<typename VertexSetT>
......@@ -110,7 +111,7 @@ class RollingBloomDBGVisitor : public DefaultBFSVisitor<GraphT>
m_out << "," << it->first;
}
size_t hashes[MAX_HASHES];
hash_t hashes[MAX_HASHES];
v.rollingHash().getHashes(hashes);
for (BloomPropertiesIt it = m_bloomProperties.begin(); it != m_bloomProperties.end();
......
......@@ -205,9 +205,10 @@ struct graph_traits< RollingBloomDBG<BF> > {
/**
* Identifier for accessing a vertex in the graph.
* The second member of the pair (std::vector<size_t>) is
* The second member of the pair (std::vector<hash_t>) is
* a set of hash values associated with the k-mer.
*/
typedef uint64_t hash_t;
typedef RollingBloomDBGVertex vertex_descriptor;
typedef boost::directed_tag directed_category;
struct traversal_category
......@@ -223,11 +224,11 @@ struct graph_traits< RollingBloomDBG<BF> > {
typedef unsigned degree_size_type;
// VertexListGraph
typedef size_t vertices_size_type;
typedef uint64_t vertices_size_type;
typedef void vertex_iterator;
// EdgeListGraph
typedef size_t edges_size_type;
typedef uint64_t edges_size_type;
typedef void edge_iterator;
// AdjacencyGraph
......@@ -438,7 +439,8 @@ vertex_exists(
const typename graph_traits<RollingBloomDBG<BloomT> >::vertex_descriptor& u,
const RollingBloomDBG<BloomT>& g)
{
size_t hashes[MAX_HASHES];
typedef uint64_t hash_t;
hash_t hashes[MAX_HASHES];
u.rollingHash().getHashes(hashes);
return g.m_bloom.contains(hashes);
}
......
......@@ -19,11 +19,13 @@ class RollingHash
{
private:
typedef uint64_t hash_t;
/**
* Determine the canonical hash value, given hash values for
* forward and reverse-complement of the same k-mer.
*/
uint64_t canonicalHash(uint64_t hash, uint64_t rcHash) const
hash_t canonicalHash(hash_t hash, hash_t rcHash) const
{
return (rcHash < hash) ? rcHash : hash;
}
......@@ -136,7 +138,7 @@ public:
*
* @param hashes array for returned hash values
*/
void getHashes(size_t hashes[]) const
void getHashes(hash_t hashes[]) const
{
for (unsigned i = 0; i < m_numHashes; ++i)
hashes[i] = NTE64(m_hash, m_k, i);
......@@ -208,12 +210,12 @@ private:
/** k-mer length */
unsigned m_k;
/** value of first hash function for current k-mer */
uint64_t m_hash1;
hash_t m_hash1;
/** value of first hash function for current k-mer, after
* reverse-complementing */
uint64_t m_rcHash1;
hash_t m_rcHash1;
/** current canonical hash value */
uint64_t m_hash;
hash_t m_hash;
};
#endif
......@@ -98,6 +98,7 @@ private:
public:
typedef uint64_t hash_t;
/**
* Default constructor. Creates an iterator pointing to
* the end of the iterator range.
......@@ -142,7 +143,7 @@ public:
}
/** get reference to hash values for current k-mer */
const size_t* operator*() const
const hash_t* operator*() const
{
assert(m_pos + m_k <= m_seq.length());
return m_hashes;
......@@ -216,7 +217,7 @@ private:
/** number of hash functions */
unsigned m_numHashes;
/** hash values */
size_t m_hashes[MAX_HASHES];
hash_t m_hashes[MAX_HASHES];
/** k-mer size */
unsigned m_k;
/** internal state for rolling hash */
......
2019-08-12 Johnathan Wong <jowong@bcgsc.ca>
* Release version 2.2.1
* Fix abyss-bloom for macOS
2019-08-01 Johnathan Wong <jowong@bcgsc.ca>
* Release version 2.2.0
......
......@@ -279,7 +279,7 @@ parseArgs = do
where
help = putStr (usageInfo usage options) >> exitSuccess
tryHelp = "Try 'abyss-samtobreak --help' for more information."
version = "abyss-samtobreak (ABySS) 2.2.0\n"
version = "abyss-samtobreak (ABySS) 2.2.1\n"
usage = "Usage: samtobreak [OPTION]... [FILE]...\n\
\Calculate contig and scaffold contiguity and correctness metrics.\n"
......
......@@ -25,7 +25,7 @@ TEST(HashAgnosticCascadingBloom, base)
RollingHashIterator itB(b, numHashes, k);
RollingHashIterator itC(c, numHashes, k);
RollingHashIterator itD(d, numHashes, k);
size_t hash;
hash_t hash;
x.insert(*itA);
EXPECT_EQ(x.popcount(), 0U);
......
......@@ -11,6 +11,7 @@ using namespace boost;
typedef RollingBloomDBG<BloomFilter> Graph;
typedef graph_traits<Graph> GraphTraits;
typedef graph_traits<Graph>::vertex_descriptor V;
typedef uint64_t hash_t;
/** Test fixture for RollingBloomDBG tests. */
class RollingBloomDBGTest : public ::testing::Test
......@@ -42,7 +43,7 @@ protected:
* complements of these k-mers.
*/
size_t hashes[MAX_HASHES];
hash_t hashes[MAX_HASHES];
RollingHash("CGACT", m_numHashes, m_k).getHashes(hashes);
m_bloom.insert(hashes);
RollingHash("TGACT", m_numHashes, m_k).getHashes(hashes);
......@@ -156,7 +157,7 @@ TEST_F(RollingBloomDBGTest, pathTraversal)
const V GACTC("GACTC", RollingHash("GACTC", m_numHashes, m_k));
const V ACTCG("ACTCG", RollingHash("ACTCG", m_numHashes, m_k));
size_t hashes[MAX_HASHES];
hash_t hashes[MAX_HASHES];
CGACT.rollingHash().getHashes(hashes);
bloom.insert(hashes);
GACTC.rollingHash().getHashes(hashes);
......@@ -268,7 +269,7 @@ protected:
* any additional edges in the graph.
*/
size_t hashes[MAX_HASHES];
hash_t hashes[MAX_HASHES];
RollingHash("CGACT", m_numHashes, m_k).getHashes(hashes);
m_bloom.insert(hashes);
RollingHash("TGACT", m_numHashes, m_k).getHashes(hashes);
......
jobs:
- job: linux_gcc8_32bit
pool:
vmImage: Ubuntu 16.04
steps:
- script: |
sudo apt-get update -qq
sudo apt-get install -qq software-properties-common
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get update -qq
sudo apt-get install -qq autoconf automake gcc g++ libboost-dev libgtest-dev libopenmpi-dev libsparsehash-dev make pandoc
displayName: Install common
- script: sudo apt-get install -qq gcc-8 g++-8
displayName: Install gcc-8
- script: sudo apt-get install gcc-8-multilib g++-8-multilib
displayName: Install 32-bit compilation support
- script: |
./autogen.sh
./configure CC=gcc-8 CXX=g++-8 --build=i686-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32" --with-mpi=/usr/lib/openmpi
make -j12 distcheck
displayName: Compiling ABySS with gcc-8
- job: linux_clang6
pool:
vmImage: Ubuntu 16.04
......@@ -118,3 +139,19 @@ jobs:
displayName: Install clang-format
- script: make clang-format
displayName: Run clang-format
- job: macOS_gcc8
pool:
vmImage: macOS-10.14
steps:
- script: |
brew update
brew install automake boost@1.70 openmpi google-sparsehash make pandoc ghc
displayName: Install common
- script: brew install gcc@8
displayName: Install gcc
- script: |
./autogen.sh
./configure CC=gcc-8 CXX=g++-8 --with-boost=/usr/local/Cellar/boost/1.70.0/include/ --with-mpi=/usr/local/Cellar/open-mpi/4.0.1_2/ CPPFLAGS=-I/usr/local/Cellar/google-sparsehash/2.0.3/include/
make -j12 distcheck
displayName: Compiling ABySS with gcc 8
......@@ -398,7 +398,7 @@ help:
@echo 'Report bugs to https://github.com/bcgsc/abyss/issues or abyss-users@bcgsc.ca.'
version:
@echo "abyss-pe (ABySS) 2.2.0"
@echo "abyss-pe (ABySS) 2.2.1"
@echo "Written by Shaun Jackman and Anthony Raymond."
@echo
@echo "Copyright 2012 Canada's Michael Smith Genome Science Centre"
......
AC_PREREQ(2.62)
AC_INIT(ABySS, 2.2.0, abyss-users@bcgsc.ca, abyss,
AC_INIT(ABySS, 2.2.1, abyss-users@bcgsc.ca, abyss,
http://www.bcgsc.ca/platform/bioinfo/software/abyss)
AC_CONFIG_MACRO_DIR([m4])
......
abyss (2.2.1-1) unstable; urgency=medium
* New upstream release, should fix failing builds on 32-bit architectures.
* Remove unused libgtest-dev dependency, as it is unused and may be causing
an error on hurd
* debhelper-compat 12
* Standards-Version: 4.4.0
* Use secure URI in debian/watch.
* Set upstream metadata fields: Contact.
-- Michael R. Crusoe <michael.crusoe@gmail.com> Tue, 13 Aug 2019 12:38:14 +0200
abyss (2.2.0-1) unstable; urgency=medium
* New upstream.
......
......@@ -4,17 +4,16 @@ Uploaders: Andreas Tille <tille@debian.org>,
Michael R. Crusoe <michael.crusoe@gmail.com>
Section: science
Priority: optional
Build-Depends: debhelper (>= 12~),
Build-Depends: debhelper-compat (= 12),
python-markdown,
libboost-graph-dev,
libopenmpi-dev,
libsparsehash-dev,
libtext-multimarkdown-perl,
libgtest-dev,
libsqlite3-dev,
pkg-config,
help2man
Standards-Version: 4.3.0
pkg-config,
help2man
Standards-Version: 4.4.0
Vcs-Browser: https://salsa.debian.org/med-team/abyss
Vcs-Git: https://salsa.debian.org/med-team/abyss.git
Homepage: http://www.bcgsc.ca/platform/bioinfo/software/abyss
......@@ -27,9 +26,9 @@ Depends: make,
${perl:Depends},
bsdmainutils,
# For openmpi error messages:
openmpi-common,
openmpi-common,
# for /usr/bin/orted and possibly other MPI components:
openmpi-bin
openmpi-bin
Description: de novo, parallel, sequence assembler for short reads
ABySS is a de novo, parallel, sequence assembler that is designed for
short reads. It may be used to assemble genome or transcriptome
......
Name: ABySS
Reference:
Author: >
Jared T. Simpson and Kim Wong and Shaun D. Jackman and
Jacqueline E. Schein and Steven J.M. Jones and İnanç Birol
Author: "Jared T. Simpson and Kim Wong and Shaun D. Jackman and Jacqueline E. Schein\
\ and Steven J.M. Jones and İnanç Birol\n"
Title: "ABySS: A parallel assembler for short read sequence data"
Journal: Genome Research
Year: 2009
......@@ -14,9 +13,10 @@ Reference:
URL: http://genome.cshlp.org/content/19/6/1117
eprint: http://genome.cshlp.org/content/19/6/1117.full.pdf+html
Registry:
- Name: bio.tools
Entry: ABySS
- Name: OMICtools
Entry: OMICS_00006
- Name: SciCrunch
Entry: SCR_010709
- Name: bio.tools
Entry: ABySS
- Name: OMICtools
Entry: OMICS_00006
- Name: SciCrunch
Entry: SCR_010709
Contact: Shaun Jackman <sjackman@gmail.com>
version=4
https://github.com/bcgsc/abyss/releases .*/archive/(\d[\d.-]+)\.(?:tar(?:\.gz|\.bz2)?|tgz)
# http://www.bcgsc.ca/downloads/abyss/ abyss-(.+)\.tar\.gz
# https://www.bcgsc.ca/downloads/abyss/ abyss-(.+)\.tar\.gz
.TH ABYSS "1" "2015-May" "ABYSS (ABySS) 2.2.0" "User Commands"
.TH ABYSS "1" "2015-May" "ABYSS (ABySS) 2.2.1" "User Commands"
.SH NAME
ABYSS \- assemble short reads into contigs
.SH SYNOPSIS
......
.TH abyss-pe "1" "2015-May" "abyss-pe (ABySS) 2.2.0" "User Commands"
.TH abyss-pe "1" "2015-May" "abyss-pe (ABySS) 2.2.1" "User Commands"
.SH NAME
abyss-pe - assemble reads into contigs
.SH SYNOPSIS
......
.TH abyss-tofastq "1" "2015-May" "ABySS 2.2.0" "User Commands"
.TH abyss-tofastq "1" "2015-May" "ABySS 2.2.1" "User Commands"
.SH NAME
abyss-tofastq \- convert various file formats to FASTQ format
.br
......