Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Jan 2021 09:28:01 +0000 (UTC)
From:      Yuri Victorovich <yuri@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r562036 - in head/biology: . spoa spoa/files
Message-ID:  <202101190928.10J9S1pc059457@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: yuri
Date: Tue Jan 19 09:28:00 2021
New Revision: 562036
URL: https://svnweb.freebsd.org/changeset/ports/562036

Log:
  New port: biology/spoa: C++ implementation of the partial order alignment (POA) algorithm

Added:
  head/biology/spoa/
  head/biology/spoa/Makefile   (contents, props changed)
  head/biology/spoa/distinfo   (contents, props changed)
  head/biology/spoa/files/
  head/biology/spoa/files/patch-CMakeLists.txt   (contents, props changed)
  head/biology/spoa/pkg-descr   (contents, props changed)
  head/biology/spoa/pkg-plist   (contents, props changed)
Modified:
  head/biology/Makefile

Modified: head/biology/Makefile
==============================================================================
--- head/biology/Makefile	Tue Jan 19 09:01:41 2021	(r562035)
+++ head/biology/Makefile	Tue Jan 19 09:28:00 2021	(r562036)
@@ -164,6 +164,7 @@
     SUBDIR += sim4
     SUBDIR += slclust
     SUBDIR += smithwaterman
+    SUBDIR += spoa
     SUBDIR += stacks
     SUBDIR += star
     SUBDIR += stringtie

Added: head/biology/spoa/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/biology/spoa/Makefile	Tue Jan 19 09:28:00 2021	(r562036)
@@ -0,0 +1,38 @@
+# $FreeBSD$
+
+PORTNAME=	spoa
+DISTVERSION=	4.0.7
+CATEGORIES=	biology
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	C++ implementation of the partial order alignment (POA) algorithm
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	bioparser>0:biology/bioparser \
+		${LOCALBASE}/include/biosoup/nucleic_acid.hpp:biology/biosoup \
+		cereal>0:devel/cereal \
+		cpu_features>0:devel/cpu_features \
+		simde>0:devel/simde
+RUN_DEPENDS=	cereal>0:devel/cereal
+TEST_DEPENDS=	googletest>0:devel/googletest
+
+USES=		cmake compiler:c++11-lang localbase:ldflags
+USE_LDCONFIG=	yes
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	rvaser
+
+CMAKE_ON=	BUILD_SHARED_LIBS spoa_optimize_for_portability spoa_build_executable spoa_use_simde spoa_use_simde_nonvec spoa_use_simde_openmp spoa_generate_dispatch
+CMAKE_OFF=	spoa_optimize_for_native
+
+LDFLAGS+=	-lz -lcpu_features
+
+do-test:
+	@cd ${BUILD_WRKSRC} && \
+		${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} -D${PORTNAME}_build_tests:BOOL=ON ${CMAKE_SOURCE_PATH} && \
+		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \
+		${BUILD_WRKSRC}/bin/${PORTNAME}_test
+
+.include <bsd.port.mk>

Added: head/biology/spoa/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/biology/spoa/distinfo	Tue Jan 19 09:28:00 2021	(r562036)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1611045674
+SHA256 (rvaser-spoa-4.0.7_GH0.tar.gz) = f8cb409adcca20ca6cc0025371743b915790879957cf001ca5e155ed16fd14e0
+SIZE (rvaser-spoa-4.0.7_GH0.tar.gz) = 43574

Added: head/biology/spoa/files/patch-CMakeLists.txt
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/biology/spoa/files/patch-CMakeLists.txt	Tue Jan 19 09:28:00 2021	(r562036)
@@ -0,0 +1,107 @@
+--- CMakeLists.txt.orig	2021-01-15 03:44:02 UTC
++++ CMakeLists.txt
+@@ -44,9 +44,10 @@ if (spoa_use_simde OR
+   endif ()
+ endif ()
+ 
+-if (NOT TARGET cereal)
+-  add_subdirectory(vendor/cereal EXCLUDE_FROM_ALL)
+-endif ()
++#if (NOT TARGET cereal)
++#  add_subdirectory(vendor/cereal EXCLUDE_FROM_ALL)
++#endif ()
++find_package(cereal REQUIRED)
+ 
+ add_library(${PROJECT_NAME}
+   src/alignment_engine.cpp
+@@ -55,8 +56,8 @@ add_library(${PROJECT_NAME}
+   src/dispatcher.cpp)
+ target_include_directories(${PROJECT_NAME} PUBLIC
+   $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+-  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/vendor/simde>
+-  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/vendor/cpu_features/include>
++  #$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/vendor/simde>
++  #$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/vendor/cpu_features/include>
+   $<INSTALL_INTERFACE:include>)
+ target_link_libraries(${PROJECT_NAME}
+   cereal)
+@@ -65,9 +66,9 @@ if (BUILD_SHARED_LIBS)
+ endif ()
+ 
+ if (spoa_generate_dispatch)
+-  if (NOT TARGET cpu_features)
+-    add_subdirectory(vendor/cpu_features EXCLUDE_FROM_ALL)
+-  endif ()
++  #if (NOT TARGET cpu_features)
++  #  add_subdirectory(vendor/cpu_features EXCLUDE_FROM_ALL)
++  #endif ()
+ 
+   list(APPEND ARCHITECTURES avx2 sse4.1 sse2)
+   foreach(arch IN LISTS ARCHITECTURES)
+@@ -92,8 +93,8 @@ if (spoa_generate_dispatch)
+     ${PROJECT_NAME}_sse4.1
+     ${PROJECT_NAME}_sse2)
+ 
+-  target_link_libraries(${PROJECT_NAME}
+-    cpu_features)
++  #target_link_libraries(${PROJECT_NAME}
++  #  cpu_features)
+ endif ()
+ 
+ include(GNUInstallDirs)
+@@ -110,18 +111,19 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/spoa-1.pc
+ 
+ option(spoa_build_executable "Build spoa standalone tool" OFF)
+ if (spoa_build_executable)
+-  if (NOT TARGET biosoup)
+-    add_subdirectory(vendor/bioparser/vendor/biosoup EXCLUDE_FROM_ALL)
+-  endif ()
+-  if (NOT TARGET bioparser)
+-    add_subdirectory(vendor/bioparser EXCLUDE_FROM_ALL)
+-  endif ()
++  #if (NOT TARGET biosoup)
++  #  add_subdirectory(vendor/bioparser/vendor/biosoup EXCLUDE_FROM_ALL)
++  #endif ()
++  #if (NOT TARGET bioparser)
++  #  add_subdirectory(vendor/bioparser EXCLUDE_FROM_ALL)
++  #endif ()
+   add_executable(${PROJECT_NAME}_exe
+     src/main.cpp)
+   target_link_libraries(${PROJECT_NAME}_exe
+     ${PROJECT_NAME}
+-    bioparser
+-    biosoup)
++    #bioparser
++    #biosoup
++  )
+   target_compile_definitions(${PROJECT_NAME}_exe PRIVATE
+     SPOA_VERSION="v${PROJECT_VERSION}")
+   set_property(TARGET ${PROJECT_NAME}_exe PROPERTY
+@@ -134,19 +136,19 @@ endif ()
+ option(spoa_build_tests "Build spoa unit tests" OFF)
+ if (spoa_build_tests)
+   find_package(GTest REQUIRED)
+-  if (NOT TARGET biosoup)
+-    add_subdirectory(vendor/bioparser/vendor/biosoup EXCLUDE_FROM_ALL)
+-  endif ()
+-  if (NOT TARGET bioparser)
+-    add_subdirectory(vendor/bioparser EXCLUDE_FROM_ALL)
+-  endif ()
++  #if (NOT TARGET biosoup)
++  #  add_subdirectory(vendor/bioparser/vendor/biosoup EXCLUDE_FROM_ALL)
++  #endif ()
++  #if (NOT TARGET bioparser)
++  #  add_subdirectory(vendor/bioparser EXCLUDE_FROM_ALL)
++  #endif ()
+   include_directories(${PROJECT_SOURCE_DIR}/src)
+   add_executable(${PROJECT_NAME}_test
+     test/spoa_test.cpp)
+   target_link_libraries(${PROJECT_NAME}_test
+     ${PROJECT_NAME}
+-    bioparser
+-    biosoup
++    #bioparser
++    #biosoup
+     GTest::Main)
+   target_compile_definitions(${PROJECT_NAME}_test PRIVATE
+     SPOA_DATA_PATH="${PROJECT_SOURCE_DIR}/test/data/sample.fastq.gz")

Added: head/biology/spoa/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/biology/spoa/pkg-descr	Tue Jan 19 09:28:00 2021	(r562036)
@@ -0,0 +1,9 @@
+Spoa (SIMD POA) is a c++ implementation of the partial order alignment (POA)
+algorithm (as described in 10.1093/bioinformatics/18.3.452) which is used to
+generate consensus sequences. It supports three alignment modes: local
+(Smith-Waterman), global (Needleman-Wunsch) and semi-global alignment (overlap),
+and three gap modes: linear, affine and convex (piecewise affine). It also
+supports Intel SSE4.1+ and AVX2 vectorization (marginally faster due to high
+latency shifts), SIMDe and dispatching.
+
+WWW: https://github.com/rvaser/spoa

Added: head/biology/spoa/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/biology/spoa/pkg-plist	Tue Jan 19 09:28:00 2021	(r562036)
@@ -0,0 +1,8 @@
+bin/spoa
+include/spoa/alignment_engine.hpp
+include/spoa/architectures.hpp
+include/spoa/graph.hpp
+include/spoa/spoa.hpp
+lib/libspoa.so
+lib/libspoa.so.7.0.0
+libdata/pkgconfig/spoa-1.pc



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202101190928.10J9S1pc059457>