aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason W. Bacon <jwb@FreeBSD.org>2023-01-30 19:09:02 +0000
committerJason W. Bacon <jwb@FreeBSD.org>2023-01-30 19:09:02 +0000
commit595d0dabcfdc4e4a2eefbfff154f7c2ab04488be (patch)
tree5f59486c975d2a528379d05776859fbac164904b
parent02388ae491f5d00fb4dfe7e1945b8644c3c1aae7 (diff)
downloadports-595d0dabcfdc4e4a2eefbfff154f7c2ab04488be.tar.gz
ports-595d0dabcfdc4e4a2eefbfff154f7c2ab04488be.zip
biology/wfa2-lib: Exact gap-affine algorithm using homology
The wavefront alignment (WFA) algorithm is an exact gap-affine algorithm that takes advantage of homologous regions between the sequences to accelerate the alignment process. Unlike traditional dynamic programming algorithms that run in quadratic time, the WFA runs in time O(ns+s^2), proportional to the sequence length n and the alignment score s, using O(s^2) memory (or O(s) using the ultralow/BiWFA mode). Moreover, the WFA algorithm exhibits simple computational patterns that the modern compilers can automatically vectorize for different architectures without adapting the code.
-rw-r--r--biology/Makefile1
-rw-r--r--biology/wfa2-lib/Makefile20
-rw-r--r--biology/wfa2-lib/distinfo3
-rw-r--r--biology/wfa2-lib/files/patch-system_profiler__timer.h10
-rw-r--r--biology/wfa2-lib/pkg-descr9
-rw-r--r--biology/wfa2-lib/pkg-plist46
6 files changed, 89 insertions, 0 deletions
diff --git a/biology/Makefile b/biology/Makefile
index 801bff937770..43439e1f4a89 100644
--- a/biology/Makefile
+++ b/biology/Makefile
@@ -238,6 +238,7 @@
SUBDIR += viennarna
SUBDIR += vsearch
SUBDIR += vt
+ SUBDIR += wfa2-lib
SUBDIR += wise
.include <bsd.port.subdir.mk>
diff --git a/biology/wfa2-lib/Makefile b/biology/wfa2-lib/Makefile
new file mode 100644
index 000000000000..cb334b9bf0c3
--- /dev/null
+++ b/biology/wfa2-lib/Makefile
@@ -0,0 +1,20 @@
+PORTNAME= wfa2-lib
+DISTVERSIONPREFIX= v
+DISTVERSION= 2.3.2
+CATEGORIES= biology
+
+MAINTAINER= jwb@FreeBSD.org
+COMMENT= Exact gap-affine algorithm using homology to accelerate alignment
+WWW= https://github.com/smarco/WFA2-lib
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= cmake pkgconfig
+USE_GITHUB= yes
+USE_LDCONFIG= yes
+
+GH_ACCOUNT= smarco
+GH_PROJECT= WFA2-lib
+
+.include <bsd.port.mk>
diff --git a/biology/wfa2-lib/distinfo b/biology/wfa2-lib/distinfo
new file mode 100644
index 000000000000..09a5d3555324
--- /dev/null
+++ b/biology/wfa2-lib/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1675088499
+SHA256 (smarco-WFA2-lib-v2.3.2_GH0.tar.gz) = 310e3886506ab57d04205cdf5fed3ef31969ce39e9c6d341fd5c8a0d4aa0830b
+SIZE (smarco-WFA2-lib-v2.3.2_GH0.tar.gz) = 4150874
diff --git a/biology/wfa2-lib/files/patch-system_profiler__timer.h b/biology/wfa2-lib/files/patch-system_profiler__timer.h
new file mode 100644
index 000000000000..5ebce4ad2b2e
--- /dev/null
+++ b/biology/wfa2-lib/files/patch-system_profiler__timer.h
@@ -0,0 +1,10 @@
+--- system/profiler_timer.h.orig 2023-01-30 14:47:11 UTC
++++ system/profiler_timer.h
+@@ -33,6 +33,7 @@
+ #ifndef PROFILER_TIMER_H
+ #define PROFILER_TIMER_H
+
++#include <time.h> // Required on FreeBSD 12.3
+ #include "profiler_counter.h"
+
+ /*
diff --git a/biology/wfa2-lib/pkg-descr b/biology/wfa2-lib/pkg-descr
new file mode 100644
index 000000000000..24a0b82a109e
--- /dev/null
+++ b/biology/wfa2-lib/pkg-descr
@@ -0,0 +1,9 @@
+The wavefront alignment (WFA) algorithm is an exact gap-affine
+algorithm that takes advantage of homologous regions between the
+sequences to accelerate the alignment process. Unlike traditional
+dynamic programming algorithms that run in quadratic time, the WFA runs
+in time O(ns+s^2), proportional to the sequence length n and the
+alignment score s, using O(s^2) memory (or O(s) using the
+ultralow/BiWFA mode). Moreover, the WFA algorithm exhibits simple
+computational patterns that the modern compilers can automatically
+vectorize for different architectures without adapting the code.
diff --git a/biology/wfa2-lib/pkg-plist b/biology/wfa2-lib/pkg-plist
new file mode 100644
index 000000000000..235ff54015ca
--- /dev/null
+++ b/biology/wfa2-lib/pkg-plist
@@ -0,0 +1,46 @@
+include/wfa2lib/alignment/affine2p_penalties.h
+include/wfa2lib/alignment/affine_penalties.h
+include/wfa2lib/alignment/cigar.h
+include/wfa2lib/alignment/linear_penalties.h
+include/wfa2lib/alignment/score_matrix.h
+include/wfa2lib/system/mm_allocator.h
+include/wfa2lib/system/mm_stack.h
+include/wfa2lib/system/profiler_counter.h
+include/wfa2lib/system/profiler_timer.h
+include/wfa2lib/utils/bitmap.h
+include/wfa2lib/utils/commons.h
+include/wfa2lib/utils/dna_text.h
+include/wfa2lib/utils/heatmap.h
+include/wfa2lib/utils/sequence_buffer.h
+include/wfa2lib/utils/string_padded.h
+include/wfa2lib/utils/vector.h
+include/wfa2lib/wavefront/wavefront.h
+include/wfa2lib/wavefront/wavefront_align.h
+include/wfa2lib/wavefront/wavefront_aligner.h
+include/wfa2lib/wavefront/wavefront_attributes.h
+include/wfa2lib/wavefront/wavefront_backtrace.h
+include/wfa2lib/wavefront/wavefront_backtrace_buffer.h
+include/wfa2lib/wavefront/wavefront_backtrace_offload.h
+include/wfa2lib/wavefront/wavefront_bialign.h
+include/wfa2lib/wavefront/wavefront_bialigner.h
+include/wfa2lib/wavefront/wavefront_components.h
+include/wfa2lib/wavefront/wavefront_compute.h
+include/wfa2lib/wavefront/wavefront_compute_affine.h
+include/wfa2lib/wavefront/wavefront_compute_affine2p.h
+include/wfa2lib/wavefront/wavefront_compute_edit.h
+include/wfa2lib/wavefront/wavefront_compute_linear.h
+include/wfa2lib/wavefront/wavefront_debug.h
+include/wfa2lib/wavefront/wavefront_display.h
+include/wfa2lib/wavefront/wavefront_extend.h
+include/wfa2lib/wavefront/wavefront_heuristic.h
+include/wfa2lib/wavefront/wavefront_offset.h
+include/wfa2lib/wavefront/wavefront_pcigar.h
+include/wfa2lib/wavefront/wavefront_penalties.h
+include/wfa2lib/wavefront/wavefront_plot.h
+include/wfa2lib/wavefront/wavefront_slab.h
+include/wfa2lib/wavefront/wavefront_unialign.h
+include/wfa2lib/wavefront/wfa.h
+include/wfa2lib/wavefront/wfa.hpp
+lib/libwfa2.a
+lib/libwfa2.so
+lib/libwfa2.so.0