diff options
author | pav <pav@FreeBSD.org> | 2008-05-14 21:51:50 +0800 |
---|---|---|
committer | pav <pav@FreeBSD.org> | 2008-05-14 21:51:50 +0800 |
commit | 3a6a4b0fec61e20eefcb59749eddaf6f8a03ceac (patch) | |
tree | 45107ffc61918933a5c4b31358e8ac7507578acc | |
parent | f36fc077424f85f71200fa2b2fc474858a9a9958 (diff) | |
download | freebsd-ports-gnome-3a6a4b0fec61e20eefcb59749eddaf6f8a03ceac.tar.gz freebsd-ports-gnome-3a6a4b0fec61e20eefcb59749eddaf6f8a03ceac.tar.zst freebsd-ports-gnome-3a6a4b0fec61e20eefcb59749eddaf6f8a03ceac.zip |
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/
PR: ports/118460
Submitted by: Motomichi Matsuzaki <mzaki@biol.s.u-tokyo.ac.jp>
-rw-r--r-- | biology/Makefile | 1 | ||||
-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 |
7 files changed, 232 insertions, 0 deletions
diff --git a/biology/Makefile b/biology/Makefile index d2f69da9c23a..1baefa585e00 100644 --- a/biology/Makefile +++ b/biology/Makefile @@ -49,6 +49,7 @@ SUBDIR += mopac SUBDIR += mrbayes SUBDIR += mummer + SUBDIR += muscle SUBDIR += nab SUBDIR += ncbi-toolkit SUBDIR += ortep3 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/ |