aboutsummaryrefslogtreecommitdiffstats
path: root/biology/muscle
diff options
context:
space:
mode:
authorpav <pav@FreeBSD.org>2008-05-14 21:51:50 +0800
committerpav <pav@FreeBSD.org>2008-05-14 21:51:50 +0800
commit3a6a4b0fec61e20eefcb59749eddaf6f8a03ceac (patch)
tree45107ffc61918933a5c4b31358e8ac7507578acc /biology/muscle
parentf36fc077424f85f71200fa2b2fc474858a9a9958 (diff)
downloadfreebsd-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>
Diffstat (limited to 'biology/muscle')
-rw-r--r--biology/muscle/Makefile41
-rw-r--r--biology/muscle/distinfo9
-rw-r--r--biology/muscle/files/patch-Makefile35
-rw-r--r--biology/muscle/files/patch-globalslinux.cpp94
-rw-r--r--biology/muscle/files/patch-intmath.cpp30
-rw-r--r--biology/muscle/pkg-descr22
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/