aboutsummaryrefslogtreecommitdiffstats
path: root/biology/muscle
diff options
context:
space:
mode:
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/