diff options
Diffstat (limited to 'biology/muscle')
-rw-r--r-- | biology/muscle/Makefile | 41 | ||||
-rw-r--r-- | biology/muscle/distinfo | 9 | ||||
-rw-r--r-- | biology/muscle/files/patch-Makefile | 35 | ||||
-rw-r--r-- | biology/muscle/files/patch-globalslinux.cpp | 94 | ||||
-rw-r--r-- | biology/muscle/files/patch-intmath.cpp | 30 | ||||
-rw-r--r-- | biology/muscle/pkg-descr | 22 |
6 files changed, 231 insertions, 0 deletions
diff --git a/biology/muscle/Makefile b/biology/muscle/Makefile new file mode 100644 index 000000000000..9f908aa670cc --- /dev/null +++ b/biology/muscle/Makefile @@ -0,0 +1,41 @@ +# New ports collection makefile for: muscle +# Date created: 6 December 2007 +# Whom: Motomichi Matsuzaki <mzaki@biol.s.u-tokyo.ac.jp> +# +# $FreeBSD$ +# + +PORTNAME= muscle +PORTVERSION= 3.6 +CATEGORIES= biology +MASTER_SITES= http://www.drive5.com/muscle/downloads${PORTVERSION}/ +DISTNAME= ${PORTNAME}${PORTVERSION}_src + +.if !defined(NOPORTDOCS) +EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} +DISTFILES= ${EXTRACT_ONLY} +PORTDOCS= ${PORTNAME}.pdf ${PORTNAME}.html +MASTER_SITES+= http://www.drive5.com/muscle/:docs +.for file in ${PORTDOCS} +DISTFILES+= ${file}:docs +.endfor +.endif + +MAINTAINER= mzaki@biol.s.u-tokyo.ac.jp +COMMENT= MUltiple Sequence Comparison by Log-Expectation + +USE_GMAKE= yes +USE_DOS2UNIX= *.cpp + +PLIST_FILES= bin/muscle + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/muscle ${PREFIX}/bin +.if !defined(NOPORTDOCS) + @${MKDIR} ${DOCSDIR} +.for file in ${PORTDOCS} + @${INSTALL_DATA} ${DISTDIR}/${file} ${DOCSDIR} +.endfor +.endif + +.include <bsd.port.mk> diff --git a/biology/muscle/distinfo b/biology/muscle/distinfo new file mode 100644 index 000000000000..cfc099b01d08 --- /dev/null +++ b/biology/muscle/distinfo @@ -0,0 +1,9 @@ +MD5 (muscle3.6_src.tar.gz) = e721d0859da9feec3cedeb42dcee9f59 +SHA256 (muscle3.6_src.tar.gz) = 32b818a51f421e1d687f513dc31374a330470950151a5e7df961e64781699431 +SIZE (muscle3.6_src.tar.gz) = 185267 +MD5 (muscle.pdf) = de726534562fccec33bb75ec664ec0d5 +SHA256 (muscle.pdf) = a28fd0afc0919c176a9a1cedb3b46cadb24a53c575089305cc4b2967ec4a5fc9 +SIZE (muscle.pdf) = 239031 +MD5 (muscle.html) = 9db61f19113786e0a181c3218c382d7b +SHA256 (muscle.html) = 4df43445f08d99e18da71a06438cc8fc3ba42b6709e19c8cfea0c31788dc17b6 +SIZE (muscle.html) = 94645 diff --git a/biology/muscle/files/patch-Makefile b/biology/muscle/files/patch-Makefile new file mode 100644 index 000000000000..b53296b7fe4a --- /dev/null +++ b/biology/muscle/files/patch-Makefile @@ -0,0 +1,35 @@ +--- Makefile.orig Fri Sep 9 07:26:04 2005 ++++ Makefile Tue Dec 20 18:50:33 2005 +@@ -9,28 +9,14 @@ + # On OSX, using -static gives the error "ld: can't locate file for: -lcrt0.o", + # this is fixed by deleting "-static" from the LDLIBS line. + +-CFLAGS = -O3 -funroll-loops -Winline -DNDEBUG=1 +-LDLIBS = -lm -static +-# LDLIBS = -lm +- +-OBJ = .o +-EXE = +- +-RM = rm -f +-CP = cp +- +-GPP = g++ +-LD = $(GPP) $(CFLAGS) +-CPP = $(GPP) -c $(CFLAGS) ++CC = g++ ++CXXFLAGS += -O3 -funroll-loops -Winline -DNDEBUG=1 ++LDLIBS = -lm -lkvm + + all: muscle + + CPPSRC = $(sort $(wildcard *.cpp)) + CPPOBJ = $(subst .cpp,.o,$(CPPSRC)) + +-$(CPPOBJ): %.o: %.cpp +- $(CPP) $< -o $@ +- + muscle: $(CPPOBJ) +- $(LD) -o muscle $(CPPOBJ) $(LDLIBS) +- strip muscle ++ $(LINK.o) -o $@ $^ $(LDLIBS) diff --git a/biology/muscle/files/patch-globalslinux.cpp b/biology/muscle/files/patch-globalslinux.cpp new file mode 100644 index 000000000000..e834c0185cae --- /dev/null +++ b/biology/muscle/files/patch-globalslinux.cpp @@ -0,0 +1,94 @@ +--- globalslinux.cpp.orig Tue Nov 30 05:09:50 2004 ++++ globalslinux.cpp Mon Jul 4 11:13:18 2005 +@@ -7,6 +7,12 @@ + #include <errno.h> + #include <stdio.h> + #include <fcntl.h> ++#if __FreeBSD__ > 2 ++#include <kvm.h> ++#include <sys/param.h> ++#include <sys/sysctl.h> ++#include <sys/user.h> ++#endif // __FreeBSD__ > 2 + + const int ONE_MB = 1000000; + const int MEM_WARNING_THRESHOLD = 20*ONE_MB; +@@ -39,6 +45,34 @@ + return szCmdLine; + } + ++#if __FreeBSD__ > 2 ++double GetMemUseMB() ++ { ++ kvm_t *kd; ++ struct kinfo_proc *ki; ++ vm_size_t size; ++ int nproc; ++ ++ kd = kvm_open(NULL, "/dev/null", NULL, O_RDONLY, "kvm_open"); ++ if (kd == NULL) ++ { ++ static bool Warned = false; ++ if (!Warned) ++ { ++ Warned = true; ++ Warning("*Warning* Cannot open KVM"); ++ } ++ return 0; ++ } ++ ++ ki = kvm_getprocs(kd, KERN_PROC_PID, getpid(), &nproc); ++ size = ki->ki_size; ++ ++ kvm_close(kd); ++ ++ return ((double) size)/1e6; ++ } ++#else // __FreeBSD__ > 2 + double GetMemUseMB() + { + static char statm[64]; +@@ -83,6 +117,7 @@ + + return ((double) Pages * (double) PageSize)/1e6; + } ++#endif // __FreeBSD__ > 2 + + void SaveCmdLine(int argc, char *argv[]) + { +@@ -118,6 +153,28 @@ + dPeakMemUseMB = dMB; + } + ++#if __FreeBSD__ > 2 ++double GetRAMSizeMB() ++ { ++ const double DEFAULT_RAM = 500; ++ unsigned int physmem; ++ size_t len = sizeof physmem; ++ static int mib[2] = { CTL_HW, HW_PHYSMEM }; ++ ++ if (sysctl(mib, 2, &physmem, &len, NULL, 0)) ++ { ++ static bool Warned = false; ++ if (!Warned) ++ { ++ Warned = true; ++ Warning("*Warning* Cannot get hw.physmem"); ++ } ++ return DEFAULT_RAM; ++ } ++ ++ return ((double) physmem)/1e6; ++ } ++#else // __FreeBSD__ > 2 + double GetRAMSizeMB() + { + const double DEFAULT_RAM = 500; +@@ -168,5 +225,6 @@ + int Bytes = atoi(pMem+9)*1000; + return ((double) Bytes)/1e6; + } ++#endif // __FreeBSD__ > 2 + + #endif // !WIN32 diff --git a/biology/muscle/files/patch-intmath.cpp b/biology/muscle/files/patch-intmath.cpp new file mode 100644 index 000000000000..0ad4ca73e2e3 --- /dev/null +++ b/biology/muscle/files/patch-intmath.cpp @@ -0,0 +1,30 @@ +--- intmath.cpp.orig Tue Nov 30 05:09:50 2004 ++++ intmath.cpp Mon Jul 4 07:49:45 2005 +@@ -8,13 +8,6 @@ + return (PROB) pow(2.0, (double) Score/INTSCALE); + } + +-static const double log2e = log2(exp(1.0)); +- +-double lnTolog2(double ln) +- { +- return ln*log2e; +- } +- + double log2(double x) + { + if (0 == x) +@@ -24,6 +17,13 @@ + // Multiply by inverse of log(2) just in case multiplication + // is faster than division. + return log(x)*dInvLn2; ++ } ++ ++static const double log2e = log2(exp(1.0)); ++ ++double lnTolog2(double ln) ++ { ++ return ln*log2e; + } + + SCORE ProbToScore(PROB Prob) diff --git a/biology/muscle/pkg-descr b/biology/muscle/pkg-descr new file mode 100644 index 000000000000..b03741e4d7fc --- /dev/null +++ b/biology/muscle/pkg-descr @@ -0,0 +1,22 @@ +MUSCLE is multiple alignment software for protein and nucleotide sequences. +The name stands for multiple sequence comparison by log-expectation. + +A range of options is provided that give you the choice of optimizing +accuracy, speed, or some compromise between the two. Default parameters are +those that give the best average accuracy in the published tests. MUSCLE +can achieve both better average accuracy and better speed than CLUSTALW or +T-Coffee, depending on the chosen options. + +Citation: + +Edgar, R. C. (2004) MUSCLE: multiple sequence alignment with high accuracy +and high throughput. Nucleic Acids Research 32(5): 1792-1797. + +Edgar, R. C. (2004) MUSCLE: a multiple sequence alignment method with +reduced time and space complexity. BMC Bioinformatics 5(1): 113. + +The NAR paper gives only a brief overview of the algorithm and +implementation details. For a full discussion of the method and many of +the non-default options that it offers, please see the BMC paper. + +WWW: http://www.drive5.com/muscle/ |