git: 595d0dabcfdc - main - biology/wfa2-lib: Exact gap-affine algorithm using homology

From: Jason W. Bacon <jwb_at_FreeBSD.org>
Date: Mon, 30 Jan 2023 19:09:52 UTC
The branch main has been updated by jwb:

URL: https://cgit.FreeBSD.org/ports/commit/?id=595d0dabcfdc4e4a2eefbfff154f7c2ab04488be

commit 595d0dabcfdc4e4a2eefbfff154f7c2ab04488be
Author:     Jason W. Bacon <jwb@FreeBSD.org>
AuthorDate: 2023-01-30 19:09:02 +0000
Commit:     Jason W. Bacon <jwb@FreeBSD.org>
CommitDate: 2023-01-30 19:09:02 +0000

    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.
---
 biology/Makefile                                   |  1 +
 biology/wfa2-lib/Makefile                          | 20 ++++++++++
 biology/wfa2-lib/distinfo                          |  3 ++
 .../wfa2-lib/files/patch-system_profiler__timer.h  | 10 +++++
 biology/wfa2-lib/pkg-descr                         |  9 +++++
 biology/wfa2-lib/pkg-plist                         | 46 ++++++++++++++++++++++
 6 files changed, 89 insertions(+)

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