Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
Rob Patro committed Nov 23, 2017
2 parents 0b9f1eb + 09ae268 commit a36a551
Show file tree
Hide file tree
Showing 140 changed files with 28,096 additions and 26,222 deletions.
3 changes: 3 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
#whitelist
sudo: required
dist: precise

branches:
only:
- master
Expand Down
36 changes: 23 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ enable_testing()

project (Salmon)

set(CPACK_PACKAGE_VERSION "0.8.2")
set(CPACK_PACKAGE_VERSION "0.9.0")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "8")
set(CPACK_PACKAGE_VERSION_PATCH "2")
set(CPACK_PACKAGE_VERSION_MINOR "9")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(PROJECT_VERSION ${CPACK_PACKAGE_VERSION})
set(CPACK_GENERATOR "TGZ")
set(CPACK_SOURCE_GENERATOR "TGZ")
Expand All @@ -20,13 +20,24 @@ set(CPACK_SOURCE_PACKAGE_FILE_NAME

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")

if( NOT CMAKE_BUILD_TYPE )
set( CMAKE_BUILD_TYPE Release CACHE STRING
"Choose the type of build, options are: Debug Release."
FORCE )
endif()

if (APPLE)
set (WARNING_IGNORE_FLAGS "-Wno-deprecated-register")
else()
set (WARNING_IGNORE_FLAGS "")
endif()


set (BOOST_CXX_FLAGS "${WARNING_IGNORE_FLAGS} -std=c++11")
if (FETCH_BOOST)
set (BOOST_CXX_FLAGS "${BOOST_CXX_FLAGS} -I${CMAKE_CURRENT_SOURCE_DIR}/external/install/include -L${CMAKE_CURRENT_SOURCE_DIR}/external/install/lib")
endif()

## Prefer static to dynamic libraries
SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})

Expand Down Expand Up @@ -447,10 +458,10 @@ ExternalProject_Add(libbwa
DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
#URL https://github.com/COMBINE-lab/bwa/archive/0.7.12.3.tar.gz
#DOWNLOAD_NAME bwa-master.tar.gz
DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/bwa/archive/0.7.12.3.tar.gz -o bwa-master.tar.gz &&
${SHASUM} e1665acd44f971f6d8b90c25992c680a7fec0a822268437d6fd4e51dbf603181 bwa-master.tar.gz &&
mkdir -p bwa-master &&
tar -xzvf bwa-master.tar.gz --strip-components=1 -C bwa-master
DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/bwa/archive/v0.7.12.5.tar.gz -o bwa-master.tar.gz &&
${SHASUM} 1ac5661d9e12e9017a47f0264201a75d9128f28dbd9a26952925f7745ddf6036 bwa-master.tar.gz &&
mkdir -p bwa-master &&
tar -xzvf bwa-master.tar.gz --strip-components=1 -C bwa-master
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/bwa-master
INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
CONFIGURE_COMMAND ""
Expand Down Expand Up @@ -519,7 +530,7 @@ endif()
ExternalProject_Add(libtbb
DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
DOWNLOAD_COMMAND curl -k -L https://github.com/01org/tbb/archive/2017_U3.tar.gz -o tbb-2017_U3.tgz &&
${SHASUM} 00a8b2798c498507572e24c2db7bf4896f05b760a38ed9ba566ffd348a7c6cef tbb-2017_U3.tgz &&
${SHASUM} 00a8b2798c498507572e24c2db7bf4896f05b760a38ed9ba566ffd348a7c6cef tbb-2017_U3.tgz &&
tar -xzvf tbb-2017_U3.tgz
##
#URL https://github.com/01org/tbb/archive/2017_U3.tar.gz
Expand Down Expand Up @@ -638,16 +649,16 @@ message("Build system will fetch SPDLOG")
message("==================================================================")
ExternalProject_Add(libspdlog
DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/spdlog/archive/v0.12.0.tar.gz -o spdlog-v0.12.0.tar.gz &&
${SHASUM} 5cfd6a0b3182a88e1eb35bcb65a7ef9035140d7c73b16ba6095939dbf07325b9 spdlog-v0.12.0.tar.gz &&
tar -xzf spdlog-v0.12.0.tar.gz
DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/spdlog/archive/v0.14.0.tar.gz -o spdlog-v0.14.0.tar.gz &&
${SHASUM} eb5beb4e53f4bfff5b32eb4db8588484bdc15a17b90eeefef3a9fc74fec1d83d spdlog-v0.14.0.tar.gz &&
tar -xzf spdlog-v0.14.0.tar.gz
##
#URL https://github.com/COMBINE-lab/spdlog/archive/v0.12.0.tar.gz
#DOWNLOAD_NAME spdlog-v0.12.0.tar.gz
#TLS_VERIFY FALSE
#URL_HASH SHA1=c868b4d1a27c4d9fb3b748f0566a8f0390d83ffb
##
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/spdlog-0.12.0
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/spdlog-0.14.0
INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
Expand Down Expand Up @@ -751,7 +762,6 @@ message("CPACK_SOURCE_IGNORE_FILES = ${CPACK_SOURCE_IGNORE_FILES}")
# Recurse into Salmon source directory
add_subdirectory ( src )
#add_dependencies(salmon RapMap)

# build a CPack driven installer package
include (CPack)

Expand Down
1 change: 1 addition & 0 deletions doc/source/salmon.rst
Original file line number Diff line number Diff line change
Expand Up @@ -677,6 +677,7 @@ and/or `carlk@cs.cmu.edu`). If you encounter any bugs, please file a
References
----------


.. [#express] Roberts, Adam, and Lior Pachter. "Streaming fragment assignment for real-time analysis of sequencing experiments." Nature Methods 10.1 (2013): 71-73.
.. [#roberts] Roberts, Adam, et al. "Improving RNA-Seq expression estimates by correcting for fragment bias." Genome Biology 12.3 (2011): 1.
Expand Down
3 changes: 2 additions & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# image: COMBINE-lab/salmon
# This dockerfile is based on the one created by
# Titus Brown (available at https://github.com/ctb/2015-docker-building/blob/master/salmon/Dockerfile)
#FROM insilicodb/bioconductor
FROM ubuntu:16.04
MAINTAINER salmon.maintainer@gmail.com

ENV PACKAGES git gcc make g++ cmake libboost-all-dev liblzma-dev libbz2-dev \
ca-certificates zlib1g-dev curl unzip autoconf
ENV SALMON_VERSION 0.8.2
ENV SALMON_VERSION 0.9.0

# salmon binary will be installed in /home/salmon/bin/salmon

Expand Down
Empty file modified docker/build_test.sh
100755 → 100644
Empty file.
83 changes: 41 additions & 42 deletions include/AlignmentGroup.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,64 +2,63 @@
#define ALIGNMENT_GROUP

extern "C" {
#include "io_lib/scram.h"
#include "io_lib/os.h"
#include "io_lib/scram.h"
#undef max
#undef min
}


// Cereal includes
#include "cereal/types/vector.hpp"
#include "cereal/archives/binary.hpp"
#include "cereal/types/vector.hpp"

#include <vector>
#include "SalmonMath.hpp"
#include "ReadPair.hpp"
#include "SalmonMath.hpp"
#include <vector>

template <typename FragT>
class AlignmentGroup {
public:
AlignmentGroup() : read_(nullptr), isUniquelyMapped_(true) { alignments_.reserve(10); }
AlignmentGroup(AlignmentGroup& other) = delete;
AlignmentGroup(AlignmentGroup&& other) = default;
AlignmentGroup& operator=(AlignmentGroup& other) = delete;
AlignmentGroup& operator=(AlignmentGroup&& other) = delete;
template <typename FragT> class AlignmentGroup {
public:
AlignmentGroup() : read_(nullptr), isUniquelyMapped_(true) {
alignments_.reserve(10);
}
AlignmentGroup(AlignmentGroup& other) = delete;
AlignmentGroup(AlignmentGroup&& other) = default;
AlignmentGroup& operator=(AlignmentGroup& other) = delete;
AlignmentGroup& operator=(AlignmentGroup&& other) = delete;

void setRead(std::string* r) { read_ = r; }
std::string* read() { return read_; }
void setRead(std::string* r) { read_ = r; }
std::string* read() { return read_; }

inline std::vector<FragT>& alignments() { return alignments_; }
void emplaceAlignment(FragT&& p) { alignments_.emplace_back(p); }
void addAlignment(FragT& p) { alignments_.push_back(p); }
inline std::vector<FragT>& alignments() { return alignments_; }
void emplaceAlignment(FragT&& p) { alignments_.emplace_back(p); }
void addAlignment(FragT& p) { alignments_.push_back(p); }

void clearAlignments() {
alignments_.clear();
isUniquelyMapped_ = true;
}
void clearAlignments() {
alignments_.clear();
isUniquelyMapped_ = true;
}

inline bool& isUniquelyMapped() { return isUniquelyMapped_; }
inline size_t numAlignments() { return alignments_.size(); }
inline size_t size() { return numAlignments(); }
inline bool& isUniquelyMapped() { return isUniquelyMapped_; }
inline size_t numAlignments() { return alignments_.size(); }
inline size_t size() { return numAlignments(); }

template <typename Archive>
void serialize(Archive& archive) {
archive(alignments_);
}
template <typename Archive> void serialize(Archive& archive) {
archive(alignments_);
}

/**
* Sort the alignments by their transcript ids
*/
inline void sortHits() {
std::sort(alignments_.begin(), alignments_.end(),
[](const FragT& x, const FragT& y) -> bool {
return x->transcriptID() < y->transcriptID();
});
}
/**
* Sort the alignments by their transcript ids
*/
inline void sortHits() {
std::sort(alignments_.begin(), alignments_.end(),
[](const FragT& x, const FragT& y) -> bool {
return x->transcriptID() < y->transcriptID();
});
}

private:
std::vector<FragT> alignments_;
std::string* read_;
bool isUniquelyMapped_;
private:
std::vector<FragT> alignments_;
std::string* read_;
bool isUniquelyMapped_;
};
#endif // ALIGNMENT_GROUP
Loading

0 comments on commit a36a551

Please sign in to comment.