Import jellyfish-2.2.0 as wip/jellyfish2.

Jellyfish is a tool for fast, memory-efficient counting of k-mers in DNA.
A k-mer is a substring of length k, and counting the occurrences of all such
substrings is a central step in many analyses of DNA sequence. JELLYFISH can
count k-mers quickly by using an efficient encoding of a hash table and by
exploiting the "compare-and-swap" CPU instruction to increase parallelism.
This commit is contained in:
Jason Bacon 2016-05-10 21:44:45 -05:00
parent 6f3ade5810
commit d71018f3dd
6 changed files with 160 additions and 0 deletions

5
jellyfish2/DESCR Normal file
View file

@ -0,0 +1,5 @@
Jellyfish is a tool for fast, memory-efficient counting of k-mers in DNA.
A k-mer is a substring of length k, and counting the occurrences of all such
substrings is a central step in many analyses of DNA sequence. JELLYFISH can
count k-mers quickly by using an efficient encoding of a hash table and by
exploiting the "compare-and-swap" CPU instruction to increase parallelism.

59
jellyfish2/Makefile Normal file
View file

@ -0,0 +1,59 @@
# $NetBSD$
#
###########################################################
# Generated by fbsd2pkg #
###########################################################
###########################################################
# Unconverted and partially converted FreeBSD port syntax:
## Created by: Jason Bacon <bacon4000@gmail.com>
## $FreeBSD$
#USE_LDCONFIG= yes
#post-stage:
# ${MV} ${DESTDIR}${PREFIX}/lib/pkgconfig/* \
# ${DESTDIR}${PREFIX}/libdata/pkgconfig
#.include <bsd.port.mk>
DISTNAME= jellyfish-${PORTVERSION}
CATEGORIES= biology
MASTER_SITES= ftp://ftp.genome.umd.edu/pub/jellyfish/
MAINTAINER= dsiercks@uwm.edu
HOMEPAGE= http://www.genome.umd.edu/jellyfish.html
COMMENT= Fast, memory-efficient counting of k-mers in DNA
# Check this
LICENSE= gnu-gpl-v3
# FIXME: Only for amd64
# Test and change if necessary.
# MAKE_JOBS_SAFE= no
# Just assuming C and C++: Adjust this!
USE_LANGUAGES= c c++
USE_LIBTOOL= yes
GNU_CONFIGURE= yes
CFLAGS= -fopenmp
CXXFLAGS+= -std=c++0x
FFLAGS= -fopenmp
PORTVERSION= 2.2.0
DATADIR= ${PREFIX}/share/jellyfish
DOCSDIR= ${PREFIX}/share/doc/jellyfish
# Sets OPSYS, OS_VERSION, MACHINE_ARCH, etc..
# .include "../../mk/bsd.prefs.mk"
# Keep this if there are user-selectable options.
# .include "options.mk"
# Specify which directories to create before install.
# You should only need this if using your own install target.
INSTALLATION_DIRS= bin lib ${PKGMANDIR}/man1 share/doc share/examples
# Linux doesn't have zlib in the base, so just in case...
# .include "../../devel/zlib/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

53
jellyfish2/PLIST Normal file
View file

@ -0,0 +1,53 @@
@comment $NetBSD$
bin/jellyfish
include/${PKGNAME}/jellyfish/allocators_mmap.hpp
include/${PKGNAME}/jellyfish/atomic_bits_array.hpp
include/${PKGNAME}/jellyfish/atomic_field.hpp
include/${PKGNAME}/jellyfish/atomic_gcc.hpp
include/${PKGNAME}/jellyfish/backtrace.hpp
include/${PKGNAME}/jellyfish/binary_dumper.hpp
include/${PKGNAME}/jellyfish/bloom_common.hpp
include/${PKGNAME}/jellyfish/bloom_counter2.hpp
include/${PKGNAME}/jellyfish/bloom_filter.hpp
include/${PKGNAME}/jellyfish/circular_buffer.hpp
include/${PKGNAME}/jellyfish/compare_and_swap.hpp
include/${PKGNAME}/jellyfish/cooperative_pool2.hpp
include/${PKGNAME}/jellyfish/cooperative_pool.hpp
include/${PKGNAME}/jellyfish/cpp_array.hpp
include/${PKGNAME}/jellyfish/divisor.hpp
include/${PKGNAME}/jellyfish/dumper.hpp
include/${PKGNAME}/jellyfish/err.hpp
include/${PKGNAME}/jellyfish/file_header.hpp
include/${PKGNAME}/jellyfish/generator_manager.hpp
include/${PKGNAME}/jellyfish/generic_file_header.hpp
include/${PKGNAME}/jellyfish/hash_counter.hpp
include/${PKGNAME}/jellyfish/int128.hpp
include/${PKGNAME}/jellyfish/jellyfish.hpp
include/${PKGNAME}/jellyfish/json.h
include/${PKGNAME}/jellyfish/large_hash_array.hpp
include/${PKGNAME}/jellyfish/large_hash_iterator.hpp
include/${PKGNAME}/jellyfish/locks_pthread.hpp
include/${PKGNAME}/jellyfish/mapped_file.hpp
include/${PKGNAME}/jellyfish/mer_dna_bloom_counter.hpp
include/${PKGNAME}/jellyfish/mer_dna.hpp
include/${PKGNAME}/jellyfish/mer_heap.hpp
include/${PKGNAME}/jellyfish/mer_iterator.hpp
include/${PKGNAME}/jellyfish/mer_overlap_sequence_parser.hpp
include/${PKGNAME}/jellyfish/mer_qual_iterator.hpp
include/${PKGNAME}/jellyfish/misc.hpp
include/${PKGNAME}/jellyfish/offsets_key_value.hpp
include/${PKGNAME}/jellyfish/rectangular_binary_matrix.hpp
include/${PKGNAME}/jellyfish/simple_circular_buffer.hpp
include/${PKGNAME}/jellyfish/sorted_dumper.hpp
include/${PKGNAME}/jellyfish/stdio_filebuf.hpp
include/${PKGNAME}/jellyfish/storage.hpp
include/${PKGNAME}/jellyfish/stream_iterator.hpp
include/${PKGNAME}/jellyfish/stream_manager.hpp
include/${PKGNAME}/jellyfish/text_dumper.hpp
include/${PKGNAME}/jellyfish/thread_exec.hpp
include/${PKGNAME}/jellyfish/time.hpp
include/${PKGNAME}/jellyfish/token_ring.hpp
include/${PKGNAME}/jellyfish/whole_sequence_parser.hpp
lib/libjellyfish-2.0.la
lib/pkgconfig/jellyfish-2.0.pc
man/man1/jellyfish.1

1
jellyfish2/TODO Normal file
View file

@ -0,0 +1 @@
Clean up and test.

5
jellyfish2/distinfo Normal file
View file

@ -0,0 +1,5 @@
$NetBSD$
SHA1 (jellyfish-2.2.0.tar.gz) = 9ac4817aed0c61a1819b913193b0e312fa4fa9bd
RMD160 (jellyfish-2.2.0.tar.gz) = 01e5847c72bf1bf92989b1158988605b1155aec4
Size (jellyfish-2.2.0.tar.gz) = 1085913 bytes

View file

@ -0,0 +1,37 @@
$NetBSD$
--- include/jellyfish/file_header.hpp.orig 2013-12-13 19:04:16 UTC
+++ include/jellyfish/file_header.hpp
@@ -21,6 +21,8 @@
#include <jellyfish/generic_file_header.hpp>
#include <jellyfish/rectangular_binary_matrix.hpp>
+using std::string;
+
namespace jellyfish {
/// A header with jellyfish hash specific entries: size, matrix, etc.
class file_header : public generic_file_header {
@@ -42,7 +44,10 @@ public:
RectangularBinaryMatrix matrix(int i = 1) const {
std::string name("matrix");
- name += std::to_string((long long int)i); // Cast to make gcc4.4 happy!
+ char buff[100];
+ // name += std::to_string((long long int)i); // Cast to make gcc4.4 happy!
+ snprintf(buff, 99, "%d", i);
+ name += buff;
const unsigned int r = root_[name]["r"].asUInt();
const unsigned int c = root_[name]["c"].asUInt();
std::vector<uint64_t> raw(c, (uint64_t)0);
@@ -53,7 +58,10 @@ public:
void matrix(const RectangularBinaryMatrix& m, int i = 1) {
std::string name("matrix");
- name += std::to_string((long long int)i);
+ char buff[100];
+ // name += std::to_string((long long int)i);
+ snprintf(buff, 99, "%d", i);
+ name += buff;
root_[name].clear();
root_[name]["r"] = m.r();
root_[name]["c"] = m.c();