salmon: Transcript-level quantification of RNA-seq from lightweight alignments

This commit is contained in:
Jason Bacon 2018-09-13 15:44:28 -05:00
parent 394417ddbc
commit 32656ad631
12 changed files with 398 additions and 0 deletions

View File

@ -4082,6 +4082,7 @@ SUBDIR+= safekeep
SUBDIR+= sailor
SUBDIR+= sais
SUBDIR+= sais-demo-data
SUBDIR+= salmon
SUBDIR+= samhain
SUBDIR+= samtools0119
SUBDIR+= sara

6
salmon/DESCR Normal file
View File

@ -0,0 +1,6 @@
Salmon is a wicked-fast program to produce a highly-accurate, transcript-level
quantification estimates from RNA-seq data. Salmon achieves is accuracy and
speed via a number of different innovations, including the use of quasi-mapping
(accurate but fast-to-compute proxies for traditional read alignments), and
massively-parallel stochastic collapsed variational inference. The result is a
versatile tool that fits nicely into many differnt pipelines.

84
salmon/Makefile Normal file
View File

@ -0,0 +1,84 @@
# $NetBSD$
#
###########################################################
# Generated by fbsd2pkg #
# Thu Sep 13 14:20:25 CDT 2018 #
###########################################################
###########################################################
# Unconverted and partially converted FreeBSD port syntax:
#LIBS+= -L${PREFIX}/lib -lthr
DISTNAME= salmon-${PV}
DIST_SUBDIR= salmon
CATEGORIES= biology
MASTER_SITES= ${MASTER_SITE_GITHUB:=COMBINE-lab/} \
https://github.com/COMBINE-lab/RapMap/archive/ \
https://github.com/COMBINE-lab/libgff/archive/ \
https://github.com/COMBINE-lab/staden-io_lib/archive/
DISTFILES= salmon-0.11.3.tar.gz salmon-v0.11.3.zip v1.1.tar.gz v1.14.8.1.tar.gz
EXTRACT_ONLY= salmon-0.11.3.tar.gz v1.14.8.1.tar.gz
#GITHUB_PROJECT= salmon
#GITHUB_TAG= v${PV}
MAINTAINER= bacon@NetBSD.org
HOMEPAGE= https://github.com/COMBINE-lab/salmon
COMMENT= Transcript-level quantification of RNA-seq from lightweight alignments
LICENSE= gnu-gpl-v3
SUBST_CLASSES+= tbb
SUBST_STAGE.tbb= post-patch
SUBST_SED.tbb+= -e 's|tbbmalloc_proxy||g'
SUBST_FILES.tbb+= ${WRKSRC}/CMakeLists.txt
SUBST_CLASSES+= staden
SUBST_STAGE.staden= post-patch
SUBST_SED.staden+= -e 's|&& make|&& gmake|g'
SUBST_FILES.staden+= ${WRKSRC}/CMakeFiles/libstadenio.dir/build.make
# Test and change if necessary.
# MAKE_JOBS_SAFE= no
DEPENDS= bash>=0:../../shells/bash \
autoconf>=0:../../devel/autoconf
USE_LANGUAGES= c c++
USE_TOOLS+= cmake gmake
# FreeBSD's SHEBANG_FILES may include bash, perl, python, etc.
# I don't know which is which, so you'll have to finish.
# Add bash, etc. to USE_TOOLS if used below.
#
REPLACE_BASH= scripts/*.sh
REPLACE_PYTHON= scripts/*.py
USE_CMAKE= yes
CMAKE_ARGS+= -DDISTDIR:PATH=${DISTDIR} \
https://github.com/COMBINE-lab/libgff/archive/ \
https://github.com/COMBINE-lab/staden-io_lib/archive/
CONFIGURE_ENV+= DISTDIR=${DISTDIR} DIST_SUBDIR=salmon
#MAKE_ENV+= WRKDIR=${WRKDIR} DISTDIR=${DISTDIR} DIST_SUBDIR=salmon
LDFLAGS+= -lz
PV= 0.11.3
DATADIR= ${PREFIX}/share/salmon
DOCSDIR= ${PREFIX}/share/doc/salmon
EXAMPLESDIR= ${PREFIX}/share/examples/salmon
# Sets OPSYS, OS_VERSION, MACHINE_ARCH, etc..
# .include "../../mk/bsd.prefs.mk"
# Keep this if there are user-selectable options.
# .include "options.mk"
# Specify which directories to create before install.
# You should only need this if using your own install target.
INSTALLATION_DIRS= bin include lib ${PKGMANDIR}/man1 share/doc share/examples
# Convert any _DEPENDS above that have a buildlink3.mk
.include "../../devel/libgetopt/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../devel/boost-libs/buildlink3.mk"
.include "../../wip/cereal/buildlink3.mk"
.include "../../wip/tbb/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

1
salmon/PLIST Normal file
View File

@ -0,0 +1 @@
@comment $NetBSD$

25
salmon/distinfo Normal file
View File

@ -0,0 +1,25 @@
$NetBSD$
SHA1 (salmon/salmon-0.11.3.tar.gz) = 3f385630c608c12ddd16523dda022119ad2616ef
RMD160 (salmon/salmon-0.11.3.tar.gz) = eb763cfe9dedfd50253202c68978da3182eca6b1
SHA512 (salmon/salmon-0.11.3.tar.gz) = adc7ee27e8096142f48f57d2d88d18bef81abfc509683737a22ecc0a5bfe8323faf4a63256972b2e6a03774399c13f3b7d9dfd50d4362c9bf195e231537a5100
Size (salmon/salmon-0.11.3.tar.gz) = 10945588 bytes
SHA1 (salmon/salmon-v0.11.3.zip) = 5a473884afd4382d70a1467b67401b2b9f351ab7
RMD160 (salmon/salmon-v0.11.3.zip) = 91dba61d070a18a78eed6c60fd455f1240889a9c
SHA512 (salmon/salmon-v0.11.3.zip) = e5bca29c25cb5f02804a64850d87e4956e87be7dd42544878494d12db1e8a78de46975c8e091b88fd702208595f96b4ebccd547365f4a43b00291d8199212025
Size (salmon/salmon-v0.11.3.zip) = 1163389 bytes
SHA1 (salmon/v1.1.tar.gz) = 37b3147d78391d1fabbe6a0df313fbf516abbc6f
RMD160 (salmon/v1.1.tar.gz) = f7f3b410799d16d95af3cf14d3550c8b14477b1c
SHA512 (salmon/v1.1.tar.gz) = af797fdc753c21a61a817f0b57da55c523220a9c831a71b73328a49ec66b667a503f1fcbddab714826f802a4e2becf310265535276973e2978d5ad73525fa0bb
Size (salmon/v1.1.tar.gz) = 79006 bytes
SHA1 (salmon/v1.14.8.1.tar.gz) = c79897aa508b0cda2d96e8d1760c74b9c4e7e94e
RMD160 (salmon/v1.14.8.1.tar.gz) = f8cfaf1198d9ae738321dffd89752a4732898399
SHA512 (salmon/v1.14.8.1.tar.gz) = 535c6701e61a1786ceb7b22905afe702d277e0383816fba82f69af553dd22ca497bf00766f9768fd9173621632483a02ea9919437e1786008b2236c1c2c8c69f
Size (salmon/v1.14.8.1.tar.gz) = 2506985 bytes
SHA1 (patch-.._staden-io__lib-1.14.8.1_progs_scram__flagstat.c) = 2ac5b7bea94d4738102da0c729c4ee75c8214300
SHA1 (patch-.._staden-io__lib-1.14.8.1_progs_scram__merge.c) = 09ee761a3630a0c9ff8ff8d1ffa7ac0faeacd91b
SHA1 (patch-.._staden-io__lib-1.14.8.1_progs_scram__test.c) = d707e1d76817ca92862193dea5d66ca5b8a2de89
SHA1 (patch-CMakeLists.txt) = db36ef16c1b889091fd6231e61f5a0fe926de596
SHA1 (patch-scripts_fetchRapMap.sh) = 616f79e16a67575f9d684ce351f7e31d002912f3
SHA1 (patch-src_CMakeLists.txt) = 824564cd7592f02902e607206c8bbb0bd4049f04
SHA1 (patch-work_staden-io__lib-1.14.8.1_progs_scram__merge.c) = adc83b19e793491b1c6ea0fd8b46cd9f32e592fc

View File

@ -0,0 +1,14 @@
$NetBSD$
--- ../staden-io_lib-1.14.8.1/progs/scram_flagstat.c.orig 2018-09-13 20:14:26.052077584 +0000
+++ ../staden-io_lib-1.14.8.1/progs/scram_flagstat.c
@@ -45,9 +45,7 @@
#include <ctype.h>
#include <errno.h>
-#if defined(__MINGW32__) || defined(__FreeBSD__) || defined(__APPLE__)
# include <getopt.h>
-#endif
#include <io_lib/scram.h>
#include <io_lib/os.h>

View File

@ -0,0 +1,14 @@
$NetBSD$
--- ../staden-io_lib-1.14.8.1/progs/scram_merge.c.orig 2018-09-13 20:12:38.101447761 +0000
+++ ../staden-io_lib-1.14.8.1/progs/scram_merge.c
@@ -45,9 +45,7 @@
#include <ctype.h>
#include <errno.h>
-#if defined(__MINGW32__) || defined(__FreeBSD__) || defined(__APPLE__)
# include <getopt.h>
-#endif
#include <io_lib/scram.h>
#include <io_lib/os.h>

View File

@ -0,0 +1,14 @@
$NetBSD$
--- ../staden-io_lib-1.14.8.1/progs/scram_test.c.orig 2018-09-13 20:14:39.851669404 +0000
+++ ../staden-io_lib-1.14.8.1/progs/scram_test.c
@@ -45,9 +45,7 @@
#include <ctype.h>
#include <errno.h>
-#if defined(__MINGW32__) || defined(__FreeBSD__) || defined(__APPLE__)
# include <getopt.h>
-#endif
#include <io_lib/scram.h>
#include <io_lib/os.h>

View File

@ -0,0 +1,200 @@
$NetBSD$
--- CMakeLists.txt.orig 2018-08-29 22:38:43.000000000 +0000
+++ CMakeLists.txt
@@ -47,7 +47,7 @@ set(CPACK_PACKAGE_NAME
set(CPACK_SOURCE_PACKAGE_FILE_NAME
"${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-Source")
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
+set (CMAKE_MODULE_PATH "/usr/pkgsrc/wip/salmon/work/.buildlink/cmake-Modules" ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
# Set a default build type if none was specified
set(default_build_type "Release")
@@ -499,14 +499,14 @@ ExternalProject_Add_Step(libdivsufsort m
set(SUFFARRAY_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/install/include)
-message("Build system will fetch and build the Cereal serialization library")
-message("==================================================================")
-include(ExternalProject)
-ExternalProject_Add(libcereal
- DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
- DOWNLOAD_COMMAND curl -k -L https://github.com/USCiLab/cereal/archive/v1.2.2.tar.gz -o cereal-v1.2.2.tar.gz &&
- ${SHASUM} 1921f26d2e1daf9132da3c432e2fd02093ecaedf846e65d7679ddf868c7289c4 cereal-v1.2.2.tar.gz &&
- tar -xzvf cereal-v1.2.2.tar.gz
+#message("Build system will fetch and build the Cereal serialization library")
+#message("==================================================================")
+#include(ExternalProject)
+#ExternalProject_Add(libcereal
+ #DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+ #DOWNLOAD_COMMAND curl -k -L https://github.com/USCiLab/cereal/archive/v1.2.2.tar.gz -o cereal-v1.2.2.tar.gz &&
+ #${SHASUM} 1921f26d2e1daf9132da3c432e2fd02093ecaedf846e65d7679ddf868c7289c4 cereal-v1.2.2.tar.gz &&
+ #tar -xzvf cereal-v1.2.2.tar.gz
##
#URL https://github.com/USCiLab/cereal/archive/v1.2.2.tar.gz
@@ -514,22 +514,23 @@ ExternalProject_Add(libcereal
#TLS_VERIFY FALSE
#URL_HASH SHA1=ffddf5fc5313cfbb893e07823ca8c473084eebca
##
- SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/cereal-1.2.2
- INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+ #SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/cereal-1.2.2
+ #INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+ #INSTALL_DIR ${LOCALBASE}
#UPDATE_COMMAND sh -c "mkdir -p <SOURCE_DIR>/build"
- BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/cereal-1.2.2/build
- CONFIGURE_COMMAND ""
- BUILD_COMMAND ""
- INSTALL_COMMAND sh -c "mkdir -p <INSTALL_DIR>/include && cp -r <SOURCE_DIR>/include/cereal <INSTALL_DIR>/include"
-)
-ExternalProject_Add_Step(libcereal makedir
- COMMAND mkdir -p <SOURCE_DIR>/build
- COMMENT "Make build directory"
- DEPENDEES download
- DEPENDERS configure)
+ #BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/cereal-1.2.2/build
+ #CONFIGURE_COMMAND ""
+ #BUILD_COMMAND ""
+ #INSTALL_COMMAND sh -c "mkdir -p <INSTALL_DIR>/include && cp -r <SOURCE_DIR>/include/cereal <INSTALL_DIR>/include"
+#)
+#ExternalProject_Add_Step(libcereal makedir
+ #COMMAND mkdir -p <SOURCE_DIR>/build
+ #COMMENT "Make build directory"
+ #DEPENDEES download
+ #DEPENDERS configure)
## Try and find TBB first
-find_package(TBB 2018.0 COMPONENTS tbb tbbmalloc tbbmalloc_proxy )
+find_package(TBB 2018.0 COMPONENTS tbb tbbmalloc )
##
#
@@ -627,9 +628,7 @@ message("Build system will compile libgf
message("==================================================================")
ExternalProject_Add(libgff
DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
- DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/libgff/archive/v1.1.tar.gz -o libgff.tgz &&
- ${SHASUM} 34597ecd3718e6d6e7a1dd4350220664be2c1cd992070d1218564a20d7aa5697 libgff.tgz &&
- tar -xzvf libgff.tgz
+ DOWNLOAD_COMMAND tar -xzf ${DISTDIR}/salmon/v1.1.tar.gz
##
#URL https://github.com/COMBINE-lab/libgff/archive/v1.1.tar.gz
#DOWNLOAD_NAME libff.tgz
@@ -665,12 +664,9 @@ message("Build system will compile Stade
message("==================================================================")
ExternalProject_Add(libstadenio
DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
- DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/staden-io_lib/archive/v1.14.8.1.tar.gz -o staden-io_lib-v1.14.8.tar.gz &&
- ${SHASUM} f6f30eefa478cfb708f3109a35fb6ffa0e24951d9d971985df2cef5919dd0bc3 staden-io_lib-v1.14.8.tar.gz &&
- mkdir -p staden-io_lib-1.14.8 &&
- tar -xzf staden-io_lib-v1.14.8.tar.gz --strip-components=1 -C staden-io_lib-1.14.8 &&
+ DOWNLOAD_COMMAND mkdir -p staden-io_lib-1.14.8 &&
rm -fr staden-io_lib &&
- mv -f staden-io_lib-1.14.8 staden-io_lib
+ ln -s ../../staden-io_lib-1.14.8.1 staden-io_lib
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/staden-io_lib
INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
CONFIGURE_COMMAND ./configure --enable-shared=no --without-libcurl --prefix=<INSTALL_DIR> LDFLAGS=${LIBSTADEN_LDFLAGS} CFLAGS=${LIBSTADEN_CFLAGS} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}
@@ -681,58 +677,59 @@ ExternalProject_Add(libstadenio
INSTALL_COMMAND make install
)
-set (FAST_MALLOC_LIB "")
-set (HAVE_FAST_MALLOC FALSE)
+# jemalloc is FreeBSD's built-in allocator
+# set (FAST_MALLOC_LIB "")
+set (HAVE_FAST_MALLOC TRUE)
# See if we have Jemalloc
-find_package(Jemalloc)
-if (Jemalloc_FOUND)
+# find_package(Jemalloc)
+# if (Jemalloc_FOUND)
##
# Don't be so stringent about the version yet
##
#if (NOT (${JEMALLOC_VERSION} VERSION_LESS 5.1.0))
- message("Found Jemalloc library --- using this memory allocator")
- set (FAST_MALLOC_LIB ${JEMALLOC_LIBRARIES})
- set (HAVE_FAST_MALLOC TRUE)
+ # message("Found Jemalloc library --- using this memory allocator")
+ # set (FAST_MALLOC_LIB ${JEMALLOC_LIBRARIES})
+ # set (HAVE_FAST_MALLOC TRUE)
#else()
# message("Fond Jemalloc version ${JEMALLOC_VERSION}, but require >= 5.1.0. Downloading newer version")
#endif()
-endif()
+# endif()
-if(CONDA_BUILD)
- set (JEMALLOC_FLAGS "CC=${CMAKE_C_COMPILER} CFLAGS=-fPIC CPPFLAGS=-fPIC")
-else ()
- set (JEMALLOC_FLAGS "CC=${CMAKE_C_COMPILER}")
-endif()
-
-if (NOT HAVE_FAST_MALLOC)
- message("Build system will fetch and use JEMalloc")
- message("==================================================================")
- ExternalProject_Add(libjemalloc
- DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
- DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/jemalloc/archive/5.1.0.tar.gz -o jemalloc-5.1.0.tar.gz &&
- ${SHASUM} ff28aef89df724bd7b6bd6fde8597695514e0e3404d1afad2f1eb8b55ef378d3 jemalloc-5.1.0.tar.gz &&
- tar -xzf jemalloc-5.1.0.tar.gz
-
- SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/jemalloc-5.1.0
- BUILD_IN_SOURCE TRUE
- INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
- CONFIGURE_COMMAND sh -c "${JEMALLOC_FLAGS} ./autogen.sh --disable-debug --prefix=<INSTALL_DIR>"
- INSTALL_COMMAND cp -r lib <INSTALL_DIR>/ && cp -r include <INSTALL_DIR>/
- )
-
- set (FAST_MALLOC_LIB ${CMAKE_CURRENT_SOURCE_DIR}/external/install/lib/libjemalloc.a)
- set (HAVE_FAST_MALLOC TRUE)
- set (FETCHED_JEMALLOC TRUE)
- if (FETCHED_LIBBZ2)
- add_dependencies(libjemalloc libbz2)
- endif()
+# if(CONDA_BUILD)
+ # set (JEMALLOC_FLAGS "CC=${CMAKE_C_COMPILER} CFLAGS=-fPIC CPPFLAGS=-fPIC")
+# else ()
+ # set (JEMALLOC_FLAGS "CC=${CMAKE_C_COMPILER}")
+# endif()
+
+# if (NOT HAVE_FAST_MALLOC)
+ # message("Build system will fetch and use JEMalloc")
+ # message("==================================================================")
+ # ExternalProject_Add(libjemalloc
+ # DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+ # DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/jemalloc/archive/5.1.0.tar.gz -o jemalloc-5.1.0.tar.gz &&
+ # ${SHASUM} ff28aef89df724bd7b6bd6fde8597695514e0e3404d1afad2f1eb8b55ef378d3 jemalloc-5.1.0.tar.gz &&
+ # tar -xzf jemalloc-5.1.0.tar.gz
+
+ # SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/jemalloc-5.1.0
+ # BUILD_IN_SOURCE TRUE
+ # INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+ # CONFIGURE_COMMAND sh -c "${JEMALLOC_FLAGS} ./autogen.sh --disable-debug --prefix=<INSTALL_DIR>"
+ # INSTALL_COMMAND cp -r lib <INSTALL_DIR>/ && cp -r include <INSTALL_DIR>/
+ # )
+
+ # set (FAST_MALLOC_LIB ${CMAKE_CURRENT_SOURCE_DIR}/external/install/lib/libjemalloc.a)
+ # set (HAVE_FAST_MALLOC TRUE)
+ # set (FETCHED_JEMALLOC TRUE)
+ # if (FETCHED_LIBBZ2)
+ # add_dependencies(libjemalloc libbz2)
+ # endif()
+
+ # if (FETCHED_LIBLZMA)
+ # add_dependencies(libjemalloc liblzma)
+ # endif()
- if (FETCHED_LIBLZMA)
- add_dependencies(libjemalloc liblzma)
- endif()
-
-endif ()
+# endif ()
###
#

View File

@ -0,0 +1,13 @@
$NetBSD$
--- scripts/fetchRapMap.sh.orig 2018-09-11 14:54:51 UTC
+++ scripts/fetchRapMap.sh
@@ -30,7 +30,7 @@ EXPECTED_SHA256=b863548383448c21a862cc56
mkdir -p ${EXTERNAL_DIR}
-curl -k -L https://github.com/COMBINE-lab/RapMap/archive/${SVER}.zip -o ${EXTERNAL_DIR}/rapmap.zip
+cp ${DISTDIR}/${DIST_SUBDIR}/${SVER}.zip ${EXTERNAL_DIR}/rapmap.zip
hashcheck=""
if exists sha256sum; then

View File

@ -0,0 +1,24 @@
$NetBSD$
--- src/CMakeLists.txt.orig 2018-09-10 20:40:46 UTC
+++ src/CMakeLists.txt
@@ -2,7 +2,7 @@ include_directories(
${GAT_SOURCE_DIR}/include
${GAT_SOURCE_DIR}/include/eigen3
${GAT_SOURCE_DIR}/external
-${GAT_SOURCE_DIR}/external/cereal/include
+#${GAT_SOURCE_DIR}/external/cereal/include
${GAT_SOURCE_DIR}/external/install/include
#${GAT_SOURCE_DIR}/external/install/include/bwa
${ZLIB_INCLUDE_DIR}
@@ -272,8 +272,8 @@ if (${FETCHED_TBB})
add_dependencies(salmon libtbb)
endif()
-add_dependencies(salmon_core libcereal)
-add_dependencies(salmon libcereal)
+#add_dependencies(salmon_core libcereal)
+#add_dependencies(salmon libcereal)
add_dependencies(alevin_core libstadenio)
add_dependencies(salmon_core libstadenio)
add_dependencies(salmon libstadenio)

View File

@ -0,0 +1,2 @@
$NetBSD$