aboutsummaryrefslogtreecommitdiffstats
path: root/biology
diff options
context:
space:
mode:
authorjwb <jwb@FreeBSD.org>2019-01-12 00:02:05 +0800
committerjwb <jwb@FreeBSD.org>2019-01-12 00:02:05 +0800
commit9a7d4b0c8adf3cec91c8fa912732bf1d0f8c56be (patch)
treef74917e28ffa906a2be9e010f2dc92e485f0e469 /biology
parent5a4e8e5561747b6d7f1d713f37caf8f04e758764 (diff)
downloadfreebsd-ports-gnome-9a7d4b0c8adf3cec91c8fa912732bf1d0f8c56be.tar.gz
freebsd-ports-gnome-9a7d4b0c8adf3cec91c8fa912732bf1d0f8c56be.tar.zst
freebsd-ports-gnome-9a7d4b0c8adf3cec91c8fa912732bf1d0f8c56be.zip
New port: biology/hisat2: Program for mapping next-generation sequencing reads
Approved by: jrm (mentor, implicit)
Diffstat (limited to 'biology')
-rw-r--r--biology/Makefile1
-rw-r--r--biology/hisat2/Makefile30
-rw-r--r--biology/hisat2/distinfo3
-rw-r--r--biology/hisat2/files/Makefile.pkg446
-rw-r--r--biology/hisat2/files/patch-hisat211
-rw-r--r--biology/hisat2/pkg-descr5
-rw-r--r--biology/hisat2/pkg-plist81
7 files changed, 577 insertions, 0 deletions
diff --git a/biology/Makefile b/biology/Makefile
index cf712c0fea0b..b65c8a165aa5 100644
--- a/biology/Makefile
+++ b/biology/Makefile
@@ -45,6 +45,7 @@
SUBDIR += grappa
SUBDIR += groopm
SUBDIR += hmmer
+ SUBDIR += hisat2
SUBDIR += htslib
SUBDIR += hyphy
SUBDIR += igv
diff --git a/biology/hisat2/Makefile b/biology/hisat2/Makefile
new file mode 100644
index 000000000000..4e7aaced607b
--- /dev/null
+++ b/biology/hisat2/Makefile
@@ -0,0 +1,30 @@
+# $FreeBSD$
+
+PORTNAME= hisat2
+DISTVERSION= 2.1.0-23
+DISTVERSIONSUFFIX= -g20f333e
+CATEGORIES= biology perl5 python
+
+MAINTAINER= jwb@FreeBSD.org
+COMMENT= Alignment program for mapping next-generation sequencing reads
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+# May work on other 64-bit archs, untested
+ONLY_FOR_ARCHS= amd64
+ONLY_FOR_ARCHS_REASON= 64-bit code, some assembly language
+
+USES= gmake perl5 python shebangfix
+USE_GITHUB= yes
+
+SHEBANG_FILES= hisat2 hisat2-build hisat2-inspect *.py \
+ scripts/*.sh scripts/*.pl \
+ hisatgenotype_modules/*.py \
+ hisatgenotype_scripts/*.py \
+ hisatgenotype_scripts/*.sh
+GH_ACCOUNT= infphilo
+
+MAKEFILE= ${FILESDIR}/Makefile.pkg
+
+.include <bsd.port.mk>
diff --git a/biology/hisat2/distinfo b/biology/hisat2/distinfo
new file mode 100644
index 000000000000..0807a6365a28
--- /dev/null
+++ b/biology/hisat2/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1547001889
+SHA256 (infphilo-hisat2-2.1.0-23-g20f333e_GH0.tar.gz) = 7327fa50f51cd1a0fefe1a379cfeb2f06eefdbbe8f49b04b0d79332080f6be57
+SIZE (infphilo-hisat2-2.1.0-23-g20f333e_GH0.tar.gz) = 3972398
diff --git a/biology/hisat2/files/Makefile.pkg b/biology/hisat2/files/Makefile.pkg
new file mode 100644
index 000000000000..451fd441c793
--- /dev/null
+++ b/biology/hisat2/files/Makefile.pkg
@@ -0,0 +1,446 @@
+#
+# Generic Makefile for package managers
+# J Bacon <bacon4000@gmail.com>
+#
+# This Makefile respects standard make variables provided by package
+# managers, such as CXX, CXXFLAGS, etc. It is intended to work on
+# any POSIX platform. Default behaviour should be similar to the
+# original Makefile.
+#
+# This file is part of HISAT2.
+#
+# HISAT 2 is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# HISAT 2 is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with HISAT. If not, see <http://www.gnu.org/licenses/>.
+#
+
+INC =
+GCC_PREFIX = $(shell dirname `which gcc`)
+GCC_SUFFIX =
+
+CC ?= $(GCC_PREFIX)/gcc$(GCC_SUFFIX)
+CPP ?= $(GCC_PREFIX)/g++$(GCC_SUFFIX)
+CXX ?= $(CPP)
+CXXFLAGS ?= -O2 -Wall
+INSTALL ?= install
+
+HEADERS = $(wildcard *.h)
+BOWTIE_MM = 1
+BOWTIE_SHARED_MEM = 0
+
+MACOS = 0
+ifneq (,$(findstring Darwin,$(shell uname)))
+ MACOS = 1
+endif
+
+# EXTRA_FLAGS += -DPOPCNT_CAPABILITY
+INC += -I third_party
+
+MM_DEF =
+
+ifeq (1,$(BOWTIE_MM))
+ MM_DEF = -DBOWTIE_MM
+endif
+
+SHMEM_DEF =
+
+ifeq (1,$(BOWTIE_SHARED_MEM))
+ SHMEM_DEF = -DBOWTIE_SHARED_MEM
+endif
+
+PTHREAD_PKG =
+PTHREAD_LIB = -lpthread
+
+SEARCH_LIBS =
+BUILD_LIBS =
+INSPECT_LIBS =
+
+USE_SRA = 0
+SRA_DEF =
+SRA_LIB =
+SERACH_INC =
+ifeq (1,$(USE_SRA))
+ SRA_DEF = -DUSE_SRA
+ SRA_LIB = -lncbi-ngs-c++-static -lngs-c++-static -lncbi-vdb-static -ldl
+ SEARCH_INC += -I$(NCBI_NGS_DIR)/include -I$(NCBI_VDB_DIR)/include
+ SEARCH_LIBS += -L$(NCBI_NGS_DIR)/lib64 -L$(NCBI_VDB_DIR)/lib64
+endif
+
+LIBS = $(PTHREAD_LIB)
+
+SHARED_CPPS = ccnt_lut.cpp ref_read.cpp alphabet.cpp shmem.cpp \
+ edit.cpp gfm.cpp \
+ reference.cpp ds.cpp multikey_qsort.cpp limit.cpp \
+ random_source.cpp tinythread.cpp
+SEARCH_CPPS = qual.cpp pat.cpp \
+ read_qseq.cpp aligner_seed_policy.cpp \
+ aligner_seed.cpp \
+ aligner_seed2.cpp \
+ aligner_sw.cpp \
+ aligner_sw_driver.cpp aligner_cache.cpp \
+ aligner_result.cpp ref_coord.cpp mask.cpp \
+ pe.cpp aln_sink.cpp dp_framer.cpp \
+ scoring.cpp presets.cpp unique.cpp \
+ simple_func.cpp \
+ random_util.cpp \
+ aligner_bt.cpp sse_util.cpp \
+ aligner_swsse.cpp outq.cpp \
+ aligner_swsse_loc_i16.cpp \
+ aligner_swsse_ee_i16.cpp \
+ aligner_swsse_loc_u8.cpp \
+ aligner_swsse_ee_u8.cpp \
+ aligner_driver.cpp \
+ splice_site.cpp
+
+SEARCH_OBJS = qual.o pat.o \
+ read_qseq.o aligner_seed_policy.o \
+ aligner_seed.o \
+ aligner_seed2.o \
+ aligner_sw.o \
+ aligner_sw_driver.o aligner_cache.o \
+ aligner_result.o ref_coord.o mask.o \
+ pe.o aln_sink.o dp_framer.o \
+ scoring.o presets.o unique.o \
+ simple_func.o \
+ random_util.o \
+ aligner_bt.o sse_util.o \
+ aligner_swsse.o outq.o \
+ aligner_swsse_loc_i16.o \
+ aligner_swsse_ee_i16.o \
+ aligner_swsse_loc_u8.o \
+ aligner_swsse_ee_u8.o \
+ aligner_driver.o \
+ splice_site.o
+
+BUILD_CPPS = diff_sample.cpp
+
+HISAT2_CPPS_MAIN = $(SEARCH_CPPS) hisat2_main.cpp
+HISAT2_BUILD_CPPS_MAIN = $(BUILD_CPPS) hisat2_build_main.cpp
+
+SEARCH_FRAGMENTS = $(wildcard search_*_phase*.c)
+VERSION = $(shell cat VERSION)
+
+DEBUG_FLAGS = $(CXXFLAGS) -O0 -g3
+DEBUG_DEFS = -DCOMPILER_OPTIONS="\"$(DEBUG_FLAGS) $(EXTRA_FLAGS)\""
+RELEASE_FLAGS = $(CXXFLAGS)
+RELEASE_DEFS = -DCOMPILER_OPTIONS="\"$(RELEASE_FLAGS) $(EXTRA_FLAGS)\""
+NOASSERT_FLAGS = -DNDEBUG
+FILE_FLAGS = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
+
+ifeq (1,$(USE_SRA))
+ ifeq (1, $(MACOS))
+ DEBUG_FLAGS += -mmacosx-version-min=10.6
+ RELEASE_FLAGS += -mmacosx-version-min=10.6
+ endif
+endif
+
+
+HISAT2_BIN_LIST = hisat2-build-s \
+ hisat2-build-l \
+ hisat2-align-s \
+ hisat2-align-l \
+ hisat2-inspect-s \
+ hisat2-inspect-l
+HISAT2_BIN_LIST_AUX = hisat2-build-s-debug \
+ hisat2-build-l-debug \
+ hisat2-align-s-debug \
+ hisat2-align-l-debug \
+ hisat2-inspect-s-debug \
+ hisat2-inspect-l-debug
+
+GENERAL_LIST = $(wildcard scripts/*.sh) \
+ $(wildcard scripts/*.pl) \
+ $(wildcard *.py) \
+ $(wildcard hisatgenotype_modules/*.py) \
+ $(wildcard hisatgenotype_scripts/*.py) \
+ doc/manual.inc.html \
+ doc/README \
+ doc/style.css \
+ $(wildcard example/index/*.ht2) \
+ $(wildcard example/reads/*.fa) \
+ example/reference/22_20-21M.fa \
+ example/reference/22_20-21M.snp \
+ $(PTHREAD_PKG) \
+ hisat2 \
+ hisat2-build \
+ hisat2-inspect \
+ AUTHORS \
+ LICENSE \
+ NEWS \
+ MANUAL \
+ MANUAL.markdown \
+ TUTORIAL \
+ VERSION
+
+ifeq (1,$(WINDOWS))
+ HISAT2_BIN_LIST := $(HISAT2_BIN_LIST) hisat2.bat hisat2-build.bat hisat2-inspect.bat
+endif
+
+# This is helpful on Windows under MinGW/MSYS, where Make might go for
+# the Windows FIND tool instead.
+FIND=$(shell which find)
+
+SRC_PKG_LIST = $(wildcard *.h) \
+ $(wildcard *.hh) \
+ $(wildcard *.c) \
+ $(wildcard *.cpp) \
+ doc/strip_markdown.pl \
+ Makefile \
+ $(GENERAL_LIST)
+
+BIN_PKG_LIST = $(GENERAL_LIST)
+
+.PHONY: all allall both both-debug install
+
+all: $(HISAT2_BIN_LIST)
+
+allall: $(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX)
+
+both: hisat2-align-s hisat2-align-l hisat2-build-s hisat2-build-l
+
+both-debug: hisat2-align-s-debug hisat2-align-l-debug hisat2-build-s-debug hisat2-build-l-debug
+
+DEFS=-fno-strict-aliasing \
+ -DHISAT2_VERSION="\"`cat VERSION`\"" \
+ -DBUILD_HOST="\"`hostname`\"" \
+ -DBUILD_TIME="\"`date`\"" \
+ -DCOMPILER_VERSION="\"`$(CXX) -v 2>&1 | tail -1`\"" \
+ $(FILE_FLAGS) \
+ $(PREF_DEF) \
+ $(MM_DEF) \
+ $(SHMEM_DEF)
+
+#
+# hisat-bp targets
+#
+
+hisat-bp-bin: hisat_bp.cpp $(SEARCH_CPPS) $(SHARED_CPPS) $(HEADERS) $(SEARCH_FRAGMENTS)
+ $(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) -DBOWTIE2 $(NOASSERT_FLAGS) \
+ $(INC) \
+ -o $@ $< \
+ $(SHARED_CPPS) $(HISAT_CPPS_MAIN) \
+ $(LIBS) $(SEARCH_LIBS)
+
+hisat-bp-bin-debug: hisat_bp.cpp $(SEARCH_CPPS) $(SHARED_CPPS) $(HEADERS) $(SEARCH_FRAGMENTS)
+ $(CXX) $(DEBUG_FLAGS) \
+ $(DEBUG_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) -DBOWTIE2 \
+ $(INC) \
+ -o $@ $< \
+ $(SHARED_CPPS) $(HISAT_CPPS_MAIN) \
+ $(LIBS) $(SEARCH_LIBS)
+
+
+#
+# hisat2-build targets
+#
+
+hisat2-build-s: hisat2_build.cpp $(SHARED_CPPS) $(HEADERS)
+ $(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) -DBOWTIE2 $(NOASSERT_FLAGS) -DMASSIVE_DATA_RLCSA \
+ $(INC) \
+ -o $@ $< \
+ $(SHARED_CPPS) $(HISAT2_BUILD_CPPS_MAIN) \
+ $(LIBS) $(BUILD_LIBS)
+
+hisat2-build-l: hisat2_build.cpp $(SHARED_CPPS) $(HEADERS)
+ $(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) -DBOWTIE2 -DBOWTIE_64BIT_INDEX $(NOASSERT_FLAGS) \
+ $(INC) \
+ -o $@ $< \
+ $(SHARED_CPPS) $(HISAT2_BUILD_CPPS_MAIN) \
+ $(LIBS) $(BUILD_LIBS)
+
+hisat2-build-s-debug: hisat2_build.cpp $(SHARED_CPPS) $(HEADERS)
+ $(CXX) $(DEBUG_FLAGS) $(DEBUG_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) -DBOWTIE2 -DMASSIVE_DATA_RLCSA \
+ $(INC) \
+ -o $@ $< \
+ $(SHARED_CPPS) $(HISAT2_BUILD_CPPS_MAIN) \
+ $(LIBS) $(BUILD_LIBS)
+
+hisat2-build-l-debug: hisat2_build.cpp $(SHARED_CPPS) $(HEADERS)
+ $(CXX) $(DEBUG_FLAGS) $(DEBUG_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) -DBOWTIE2 -DBOWTIE_64BIT_INDEX \
+ $(INC) \
+ -o $@ $< \
+ $(SHARED_CPPS) $(HISAT2_BUILD_CPPS_MAIN) \
+ $(LIBS) $(BUILD_LIBS)
+
+#
+# hisat2 targets
+#
+
+hisat2-align-s: hisat2.cpp $(SEARCH_CPPS) $(SHARED_CPPS) $(HEADERS) $(SEARCH_FRAGMENTS)
+ $(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) $(SRA_DEF) -DBOWTIE2 $(NOASSERT_FLAGS) \
+ $(INC) $(SEARCH_INC) \
+ -o $@ $< \
+ $(SHARED_CPPS) $(HISAT2_CPPS_MAIN) \
+ $(LIBS) $(SRA_LIB) $(SEARCH_LIBS)
+
+hisat2-align-l: hisat2.cpp $(SEARCH_CPPS) $(SHARED_CPPS) $(HEADERS) $(SEARCH_FRAGMENTS)
+ $(CXX) $(RELEASE_FLAGS) $(RELEASE_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) $(SRA_DEF) -DBOWTIE2 -DBOWTIE_64BIT_INDEX $(NOASSERT_FLAGS) \
+ $(INC) $(SEARCH_INC) \
+ -o $@ $< \
+ $(SHARED_CPPS) $(HISAT2_CPPS_MAIN) \
+ $(LIBS) $(SRA_LIB) $(SEARCH_LIBS)
+
+hisat2-align-s-debug: hisat2.cpp $(SEARCH_CPPS) $(SHARED_CPPS) $(HEADERS) $(SEARCH_FRAGMENTS)
+ $(CXX) $(DEBUG_FLAGS) \
+ $(DEBUG_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) $(SRA_DEF) -DBOWTIE2 \
+ $(INC) $(SEARCH_INC) \
+ -o $@ $< \
+ $(SHARED_CPPS) $(HISAT2_CPPS_MAIN) \
+ $(LIBS) $(SRA_LIB) $(SEARCH_LIBS)
+
+hisat2-align-l-debug: hisat2.cpp $(SEARCH_CPPS) $(SHARED_CPPS) $(HEADERS) $(SEARCH_FRAGMENTS)
+ $(CXX) $(DEBUG_FLAGS) \
+ $(DEBUG_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) $(SRA_DEF) -DBOWTIE2 -DBOWTIE_64BIT_INDEX \
+ $(INC) $(SEARCH_INC) \
+ -o $@ $< \
+ $(SHARED_CPPS) $(HISAT2_CPPS_MAIN) \
+ $(LIBS) $(SRA_LIB) $(SEARCH_LIBS)
+
+#
+# hisat2-inspect targets
+#
+
+hisat2-inspect-s: hisat2_inspect.cpp $(HEADERS) $(SHARED_CPPS)
+ $(CXX) $(RELEASE_FLAGS) \
+ $(RELEASE_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) -DBOWTIE2 -DHISAT2_INSPECT_MAIN \
+ $(INC) -I . \
+ -o $@ $< \
+ $(SHARED_CPPS) \
+ $(LIBS) $(INSPECT_LIBS)
+
+hisat2-inspect-l: hisat2_inspect.cpp $(HEADERS) $(SHARED_CPPS)
+ $(CXX) $(RELEASE_FLAGS) \
+ $(RELEASE_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) -DBOWTIE2 -DBOWTIE_64BIT_INDEX -DHISAT2_INSPECT_MAIN \
+ $(INC) -I . \
+ -o $@ $< \
+ $(SHARED_CPPS) \
+ $(LIBS) $(INSPECT_LIBS)
+
+hisat2-inspect-s-debug: hisat2_inspect.cpp $(HEADERS) $(SHARED_CPPS)
+ $(CXX) $(DEBUG_FLAGS) \
+ $(DEBUG_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) -DBOWTIE2 -DHISAT2_INSPECT_MAIN \
+ $(INC) -I . \
+ -o $@ $< \
+ $(SHARED_CPPS) \
+ $(LIBS) $(INSPECT_LIBS)
+
+hisat2-inspect-l-debug: hisat2_inspect.cpp $(HEADERS) $(SHARED_CPPS)
+ $(CXX) $(DEBUG_FLAGS) \
+ $(DEBUG_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) -DBOWTIE2 -DBOWTIE_64BIT_INDEX -DHISAT2_INSPECT_MAIN \
+ $(INC) -I . \
+ -o $@ $< \
+ $(SHARED_CPPS) \
+ $(LIBS) $(INSPECT_LIBS)
+
+%.o: %.cpp
+ $(CXX) -c $(RELEASE_FLAGS) \
+ $(RELEASE_DEFS) $(EXTRA_FLAGS) \
+ $(DEFS) -DBOWTIE2 -DHISAT2_INSPECT_MAIN \
+ $(INC) -I . $< -o $@ $<
+
+hisat2: ;
+
+hisat2.bat:
+ echo "@echo off" > hisat2.bat
+ echo "perl %~dp0/hisat2 %*" >> hisat2.bat
+
+hisat2-build.bat:
+ echo "@echo off" > hisat2-build.bat
+ echo "python %~dp0/hisat2-build %*" >> hisat2-build.bat
+
+hisat2-inspect.bat:
+ echo "@echo off" > hisat2-inspect.bat
+ echo "python %~dp0/hisat2-inspect %*" >> hisat2-inspect.bat
+
+
+.PHONY: hisat2-src
+hisat2-src: $(SRC_PKG_LIST)
+ chmod a+x scripts/*.sh scripts/*.pl
+ mkdir .src.tmp
+ mkdir .src.tmp/hisat2-$(VERSION)
+ zip tmp.zip $(SRC_PKG_LIST)
+ mv tmp.zip .src.tmp/hisat2-$(VERSION)
+ cd .src.tmp/hisat2-$(VERSION) ; unzip tmp.zip ; rm -f tmp.zip
+ cd .src.tmp ; zip -r hisat2-$(VERSION)-source.zip hisat2-$(VERSION)
+ cp .src.tmp/hisat2-$(VERSION)-source.zip .
+ rm -rf .src.tmp
+
+.PHONY: hisat2-bin
+hisat2-bin: $(BIN_PKG_LIST) $(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX)
+ chmod a+x scripts/*.sh scripts/*.pl
+ rm -rf .bin.tmp
+ mkdir .bin.tmp
+ mkdir .bin.tmp/hisat2-$(VERSION)
+ if [ -f hisat2.exe ] ; then \
+ zip tmp.zip $(BIN_PKG_LIST) $(addsuffix .exe,$(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX)) ; \
+ else \
+ zip tmp.zip $(BIN_PKG_LIST) $(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX) ; \
+ fi
+ mv tmp.zip .bin.tmp/hisat2-$(VERSION)
+ cd .bin.tmp/hisat2-$(VERSION) ; unzip tmp.zip ; rm -f tmp.zip
+ cd .bin.tmp ; zip -r hisat2-$(VERSION)-$(BITS).zip hisat2-$(VERSION)
+ cp .bin.tmp/hisat2-$(VERSION)-$(BITS).zip .
+ rm -rf .bin.tmp
+
+.PHONY: doc
+doc: doc/manual.inc.html MANUAL
+
+doc/manual.inc.html: MANUAL.markdown
+ pandoc -T "HISAT2 Manual" -o $@ \
+ --from markdown --to HTML --toc $^
+ perl -i -ne \
+ '$$w=0 if m|^</body>|;print if $$w;$$w=1 if m|^<body>|;' $@
+
+MANUAL: MANUAL.markdown
+ perl doc/strip_markdown.pl < $^ > $@
+
+# Install per filesystem hierarchy standard:
+# https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
+
+.PHONY: install
+install:
+ mkdir -p ${DESTDIR}${PREFIX}/bin
+ ${INSTALL} -c -s ${HISAT2_BIN_LIST} ${DESTDIR}${PREFIX}/bin
+ ${INSTALL} -c hisat2 hisat2-build hisat2-inspect \
+ ${DESTDIR}${PREFIX}/bin
+
+ mkdir -p ${DESTDIR}${PREFIX}/libexec/hisat2
+ ${INSTALL} -c scripts/*.sh scripts/*.pl *.py \
+ hisatgenotype_modules/hisat*.py \
+ hisatgenotype_scripts/*.py hisatgenotype_scripts/*.sh \
+ ${DESTDIR}${PREFIX}/libexec/hisat2
+
+.PHONY: clean
+clean:
+ rm -f $(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX) \
+ $(addsuffix .exe,$(HISAT2_BIN_LIST) $(HISAT2_BIN_LIST_AUX)) \
+ hisat2-src.zip hisat2-bin.zip
+ rm -f core.* .tmp.head
+ rm -rf *.dSYM
+
+.PHONY: push-doc
+push-doc: doc/manual.inc.html
+ scp doc/*.*html doc/indexes.txt salz-dmz:/ccb/salz7-data/www/ccb.jhu.edu/html/software/hisat2/
diff --git a/biology/hisat2/files/patch-hisat2 b/biology/hisat2/files/patch-hisat2
new file mode 100644
index 000000000000..2cdea8cd7d54
--- /dev/null
+++ b/biology/hisat2/files/patch-hisat2
@@ -0,0 +1,11 @@
+--- hisat2.orig 2018-11-07 21:43:32 UTC
++++ hisat2
+@@ -45,7 +45,7 @@ while (-f $prog && -l $prog){
+
+ ($vol,$script_path,$prog)
+ = File::Spec->splitpath($prog);
+-my $os_is_nix = ($^O eq "linux") || ($^O eq "darwin");
++my $os_is_nix = ($^O ne "MSWin32") && ($^O ne "MSWin64");
+ my $align_bin_s = $os_is_nix ? 'hisat2-align-s' : 'hisat2-align-s.exe';
+ my $build_bin = $os_is_nix ? 'hisat2-build' : 'hisat2-build.exe';
+ my $align_bin_l = $os_is_nix ? 'hisat2-align-l' : 'hisat2-align-l.exe';
diff --git a/biology/hisat2/pkg-descr b/biology/hisat2/pkg-descr
new file mode 100644
index 000000000000..c9b62e50c1b6
--- /dev/null
+++ b/biology/hisat2/pkg-descr
@@ -0,0 +1,5 @@
+HISAT2 is a fast and sensitive alignment program for mapping next-generation
+sequencing reads (both DNA and RNA) to a population of human genomes (as well
+as to a single reference genome).
+
+WWW: https://ccb.jhu.edu/software/hisat2/index.shtml
diff --git a/biology/hisat2/pkg-plist b/biology/hisat2/pkg-plist
new file mode 100644
index 000000000000..8b92bbe4f588
--- /dev/null
+++ b/biology/hisat2/pkg-plist
@@ -0,0 +1,81 @@
+bin/hisat2
+bin/hisat2-align-l
+bin/hisat2-align-s
+bin/hisat2-build
+bin/hisat2-build-l
+bin/hisat2-build-s
+bin/hisat2-inspect
+bin/hisat2-inspect-l
+bin/hisat2-inspect-s
+libexec/hisat2/compare_HLA_Omixon.py
+libexec/hisat2/convert_quals.pl
+libexec/hisat2/extract_Omixon_HLA.py
+libexec/hisat2/extract_exons.py
+libexec/hisat2/extract_splice_sites.py
+libexec/hisat2/gen_2b_occ_lookup.pl
+libexec/hisat2/gen_occ_lookup.pl
+libexec/hisat2/gen_solqual_lookup.pl
+libexec/hisat2/hisat2_extract_exons.py
+libexec/hisat2/hisat2_extract_snps_haplotypes_UCSC.py
+libexec/hisat2/hisat2_extract_snps_haplotypes_VCF.py
+libexec/hisat2/hisat2_extract_splice_sites.py
+libexec/hisat2/hisat2_simulate_reads.py
+libexec/hisat2/hisatgenotype.py
+libexec/hisat2/hisatgenotype_HLA_genotyping_PGs.py
+libexec/hisat2/hisatgenotype_assembly_graph.py
+libexec/hisat2/hisatgenotype_build_genome.py
+libexec/hisat2/hisatgenotype_convert_codis.py
+libexec/hisat2/hisatgenotype_extract_codis_data.py
+libexec/hisat2/hisatgenotype_extract_cyp_data.py
+libexec/hisat2/hisatgenotype_extract_reads.py
+libexec/hisat2/hisatgenotype_extract_vars.py
+libexec/hisat2/hisatgenotype_gene_typing.py
+libexec/hisat2/hisatgenotype_hla_cyp.py
+libexec/hisat2/hisatgenotype_locus.py
+libexec/hisat2/hisatgenotype_locus_samples.py
+libexec/hisat2/hisatgenotype_typing_common.py
+libexec/hisat2/infer_fraglen.pl
+libexec/hisat2/make_a_thaliana_tair.sh
+libexec/hisat2/make_b_taurus_UMD3.sh
+libexec/hisat2/make_bdgp6.sh
+libexec/hisat2/make_bdgp6_tran.sh
+libexec/hisat2/make_canFam2.sh
+libexec/hisat2/make_ce10.sh
+libexec/hisat2/make_dm6.sh
+libexec/hisat2/make_e_coli.sh
+libexec/hisat2/make_grch37.sh
+libexec/hisat2/make_grch37_snp.sh
+libexec/hisat2/make_grch37_snp_tran.sh
+libexec/hisat2/make_grch37_snp_tran_ercc.sh
+libexec/hisat2/make_grch37_tran.sh
+libexec/hisat2/make_grch38.sh
+libexec/hisat2/make_grch38_snp.sh
+libexec/hisat2/make_grch38_snp_tran.sh
+libexec/hisat2/make_grch38_snp_tran_ercc.sh
+libexec/hisat2/make_grch38_tran.sh
+libexec/hisat2/make_grcm38.sh
+libexec/hisat2/make_grcm38_snp.sh
+libexec/hisat2/make_grcm38_snp_tran.sh
+libexec/hisat2/make_grcm38_tran.sh
+libexec/hisat2/make_hg19.sh
+libexec/hisat2/make_hg38.sh
+libexec/hisat2/make_hg38_allsnp.sh
+libexec/hisat2/make_hg38_snp.sh
+libexec/hisat2/make_hg38_snp_tran.sh
+libexec/hisat2/make_mm10.sh
+libexec/hisat2/make_mm9.sh
+libexec/hisat2/make_r64.sh
+libexec/hisat2/make_r64_tran.sh
+libexec/hisat2/make_rn4.sh
+libexec/hisat2/make_rn6.sh
+libexec/hisat2/make_rnor6.sh
+libexec/hisat2/make_rnor6_tran.sh
+libexec/hisat2/make_sc3.sh
+libexec/hisat2/make_wbcel235.sh
+libexec/hisat2/make_wbcel235_tran.sh
+libexec/hisat2/make_zm3_snp_tran_ercc.sh
+libexec/hisat2/run_extract_CP.sh
+libexec/hisat2/run_extract_ILMN.sh
+libexec/hisat2/run_genotype_build.sh
+libexec/hisat2/run_hisat2_build.sh
+libexec/hisat2/run_type_CP.sh