git: 04d04b8dafba - main - biology/seqwish: New port: Assembly By Short Sequences: parallel, paired-end sequence assembler
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 21 Jul 2023 21:39:01 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=04d04b8dafba8cd1a9875fe8f027c1e310d8ed5f
commit 04d04b8dafba8cd1a9875fe8f027c1e310d8ed5f
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-07-21 21:38:22 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-07-21 21:38:59 +0000
biology/seqwish: New port: Assembly By Short Sequences: parallel, paired-end sequence assembler
---
biology/Makefile | 1 +
biology/seqwish/Makefile | 25 ++++++++++++++++++++++
biology/seqwish/distinfo | 3 +++
biology/seqwish/files/patch-CMakeLists.txt | 14 +++++++++++++
biology/seqwish/files/patch-src_main.cpp | 24 +++++++++++++++++++++
biology/seqwish/files/patch-src_tempfile.cpp | 31 ++++++++++++++++++++++++++++
biology/seqwish/pkg-descr | 10 +++++++++
7 files changed, 108 insertions(+)
diff --git a/biology/Makefile b/biology/Makefile
index e41e9edcb828..4f426e0a00ca 100644
--- a/biology/Makefile
+++ b/biology/Makefile
@@ -214,6 +214,7 @@
SUBDIR += seqio
SUBDIR += seqkit
SUBDIR += seqtk
+ SUBDIR += seqwish
SUBDIR += sigviewer
SUBDIR += sim4
SUBDIR += slclust
diff --git a/biology/seqwish/Makefile b/biology/seqwish/Makefile
new file mode 100644
index 000000000000..a34c6f9e1370
--- /dev/null
+++ b/biology/seqwish/Makefile
@@ -0,0 +1,25 @@
+PORTNAME= seqwish
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.7.9
+CATEGORIES= biology
+MASTER_SITES= https://github.com/ekg/seqwish/releases/download/v${DISTVERSION}/
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Assembly By Short Sequences: parallel, paired-end sequence assembler
+WWW= https://www.bcgsc.ca/resources/software/abyss
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= cmake:noninja
+
+PLIST_FILES= bin/${PORTNAME}
+
+OPTIONS_DEFINE= OPENMP
+OPTIONS_DEFAULT= OPENMP
+
+OPENMP_CMAKE_BOOL= USE_OPENMP
+OPENMP_CXXFLAGS= -fopenmp
+OPENMP_BROKEN_OFF= https://github.com/ekg/seqwish/issues/114
+
+.include <bsd.port.mk>
diff --git a/biology/seqwish/distinfo b/biology/seqwish/distinfo
new file mode 100644
index 000000000000..5753ca0fb6de
--- /dev/null
+++ b/biology/seqwish/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1689972439
+SHA256 (seqwish-v0.7.9.tar.gz) = 1ca7ebf02a35ad147c8a2b81f087aaba2deb878fec7acb4deb9f14e932e89d36
+SIZE (seqwish-v0.7.9.tar.gz) = 12116251
diff --git a/biology/seqwish/files/patch-CMakeLists.txt b/biology/seqwish/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..3c6ca1d2757f
--- /dev/null
+++ b/biology/seqwish/files/patch-CMakeLists.txt
@@ -0,0 +1,14 @@
+--- CMakeLists.txt.orig 2023-04-19 15:25:32 UTC
++++ CMakeLists.txt
+@@ -256,9 +256,9 @@ target_link_libraries(seqwish
+ "${sdsl-lite_LIB}/libsdsl.a"
+ "${sdsl-lite-divsufsort_LIB}/libdivsufsort.a"
+ "${sdsl-lite-divsufsort_LIB}/libdivsufsort64.a"
+- "-latomic"
++ #"-latomic"
+ Threads::Threads
+- jemalloc
++ #jemalloc
+ z)
+ if (BUILD_STATIC)
+ #set(CMAKE_EXE_LINKER_FLAGS "-static")
diff --git a/biology/seqwish/files/patch-src_main.cpp b/biology/seqwish/files/patch-src_main.cpp
new file mode 100644
index 000000000000..73ff8da2acdb
--- /dev/null
+++ b/biology/seqwish/files/patch-src_main.cpp
@@ -0,0 +1,24 @@
+--- src/main.cpp.orig 2023-07-21 20:57:07 UTC
++++ src/main.cpp
+@@ -24,6 +24,8 @@
+ #include "version.hpp"
+ #include "tempfile.hpp"
+
++#include <sys/param.h>
++
+ using namespace seqwish;
+
+ int main(int argc, char** argv) {
+@@ -116,9 +118,10 @@ int main(int argc, char** argv) {
+ if (tmp_base) {
+ temp_file::set_dir(args::get(tmp_base));
+ } else {
+- char* cwd = get_current_dir_name();
++ char cwd[MAXPATHLEN];
++ getwd(cwd);
+ temp_file::set_dir(std::string(cwd));
+- free(cwd);
++ //free(cwd);
+ }
+
+ temp_file::set_keep_temp(args::get(keep_temp_files));
diff --git a/biology/seqwish/files/patch-src_tempfile.cpp b/biology/seqwish/files/patch-src_tempfile.cpp
new file mode 100644
index 000000000000..7f6c4699400d
--- /dev/null
+++ b/biology/seqwish/files/patch-src_tempfile.cpp
@@ -0,0 +1,31 @@
+--- src/tempfile.cpp.orig 2023-07-21 20:48:46 UTC
++++ src/tempfile.cpp
+@@ -3,6 +3,8 @@
+ #include <unistd.h>
+ #include "tempfile.hpp"
+
++#include <sys/param.h>
++
+ namespace temp_file {
+
+ // We use this to make the API thread-safe
+@@ -96,9 +98,10 @@ namespace temp_file {
+
+ // Get the default temp dir from environment variables.
+ if (temp_dir.empty()) {
+- char* cwd = get_current_dir_name();
++ char cwd[MAXPATHLEN];
++ getwd(cwd);
+ temp_dir = std::string(cwd);
+- free(cwd);
++ //free(cwd);
+ /*const char *system_temp_dir = nullptr;
+ for (const char *var_name : {"TMPDIR", "TMP", "TEMP", "TEMPDIR", "USERPROFILE"}) {
+ if (system_temp_dir == nullptr) {
+@@ -114,4 +117,4 @@ namespace temp_file {
+ void set_keep_temp(bool setting) {
+ keep_temp = setting;
+ }
+-}
+\ No newline at end of file
++}
diff --git a/biology/seqwish/pkg-descr b/biology/seqwish/pkg-descr
new file mode 100644
index 000000000000..2267dba52b9f
--- /dev/null
+++ b/biology/seqwish/pkg-descr
@@ -0,0 +1,10 @@
+seqwish implements a lossless conversion from pairwise alignments between
+sequences to a variation graph encoding the sequences and their alignments.
+As input we typically take all-versus-all alignments, but the exact structure
+of the alignment set may be defined in an application specific way. This
+algorithm uses a series of disk-backed sorts and passes over the alignment and
+sequence inputs to allow the graph to be constructed from very large inputs
+that are commonly encountered when working with large numbers of noisy input
+sequences. Memory usage during construction and traversal is limited by the use
+of sorted disk-backed arrays and succinct rank/select dictionaries to record a
+queryable version of the graph.