ports/118460: New port: biology/muscle multiple alignment software

Motomichi Matsuzaki mzaki at biol.s.u-tokyo.ac.jp
Thu Dec 6 12:40:02 UTC 2007


>Number:         118460
>Category:       ports
>Synopsis:       New port: biology/muscle multiple alignment software
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Dec 06 12:40:01 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator:     Motomichi Matsuzaki
>Release:        
>Organization:
>Environment:
>Description:
MUSCLE is a multiple alignment software for protein and nucleotide sequences,
and can achieve both better average accuracy and better speed than CLUSTALW or T-Coffee.


>How-To-Repeat:

>Fix:


Patch attached with submission follows:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	biology/muscle/
#	biology/muscle/Makefile
#	biology/muscle/distinfo
#	biology/muscle/files
#	biology/muscle/files/patch-Makefile
#	biology/muscle/files/patch-intmath.cpp
#	biology/muscle/files/patch-globalslinux.cpp
#	biology/muscle/pkg-descr
#
echo c - biology/muscle/
mkdir -p biology/muscle/ > /dev/null 2>&1
echo x - biology/muscle/Makefile
sed 's/^X//' >biology/muscle/Makefile << 'END-of-biology/muscle/Makefile'
X# New ports collection makefile for:	muscle
X# Date created:	6 December 2007
X# Whom:		Motomichi Matsuzaki <mzaki at biol.s.u-tokyo.ac.jp>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	muscle
XPORTVERSION=	3.6
XCATEGORIES=	biology
XMASTER_SITES=	http://www.drive5.com/muscle/downloads${PORTVERSION}/
XDISTNAME=	${PORTNAME}${PORTVERSION}_src
X
X.if !defined(NOPORTDOCS)
XEXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}
XDISTFILES=	${EXTRACT_ONLY}
XPORTDOCS=	${PORTNAME}.pdf ${PORTNAME}.html
XMASTER_SITES+=	http://www.drive5.com/muscle/:docs
X.for file in ${PORTDOCS}
XDISTFILES+=	${file}:docs
X.endfor
X.endif
X
XMAINTAINER=	mzaki at biol.s.u-tokyo.ac.jp
XCOMMENT=	MUltiple Sequence Comparison by Log-Expectation
X
XUSE_GMAKE=	yes
X
XPLIST_FILES=	bin/muscle
X
Xdo-install:
X	${INSTALL_PROGRAM} ${WRKSRC}/muscle ${PREFIX}/bin
X.if !defined(NOPORTDOCS)
X	@${MKDIR} ${DOCSDIR}
X.for file in ${PORTDOCS}
X	@${INSTALL_DATA} ${DISTDIR}/${file} ${DOCSDIR}
X.endfor
X.endif
X
X.include <bsd.port.mk>
END-of-biology/muscle/Makefile
echo x - biology/muscle/distinfo
sed 's/^X//' >biology/muscle/distinfo << 'END-of-biology/muscle/distinfo'
XMD5 (muscle3.6_src.tar.gz) = e721d0859da9feec3cedeb42dcee9f59
XSHA256 (muscle3.6_src.tar.gz) = 32b818a51f421e1d687f513dc31374a330470950151a5e7df961e64781699431
XSIZE (muscle3.6_src.tar.gz) = 185267
XMD5 (muscle.pdf) = de726534562fccec33bb75ec664ec0d5
XSHA256 (muscle.pdf) = a28fd0afc0919c176a9a1cedb3b46cadb24a53c575089305cc4b2967ec4a5fc9
XSIZE (muscle.pdf) = 239031
XMD5 (muscle.html) = 9db61f19113786e0a181c3218c382d7b
XSHA256 (muscle.html) = 4df43445f08d99e18da71a06438cc8fc3ba42b6709e19c8cfea0c31788dc17b6
XSIZE (muscle.html) = 94645
END-of-biology/muscle/distinfo
echo c - biology/muscle/files
mkdir -p biology/muscle/files > /dev/null 2>&1
echo x - biology/muscle/files/patch-Makefile
sed 's/^X//' >biology/muscle/files/patch-Makefile << 'END-of-biology/muscle/files/patch-Makefile'
X--- Makefile.orig	Fri Sep  9 07:26:04 2005
X+++ Makefile	Tue Dec 20 18:50:33 2005
X@@ -9,28 +9,14 @@
X # On OSX, using -static gives the error "ld: can't locate file for: -lcrt0.o",
X # this is fixed by deleting "-static" from the LDLIBS line.
X 
X-CFLAGS = -O3 -funroll-loops -Winline -DNDEBUG=1
X-LDLIBS = -lm -static
X-# LDLIBS = -lm
X-
X-OBJ = .o
X-EXE =
X-
X-RM = rm -f
X-CP = cp
X-
X-GPP = g++
X-LD = $(GPP) $(CFLAGS)
X-CPP = $(GPP) -c $(CFLAGS) 
X+CC = g++
X+CXXFLAGS += -O3 -funroll-loops -Winline -DNDEBUG=1
X+LDLIBS = -lm -lkvm
X 
X all: muscle
X 
X CPPSRC = $(sort $(wildcard *.cpp))
X CPPOBJ	= $(subst .cpp,.o,$(CPPSRC))
X 
X-$(CPPOBJ): %.o: %.cpp
X-	$(CPP) $< -o $@
X-
X muscle: $(CPPOBJ)
X-	$(LD) -o muscle $(CPPOBJ) $(LDLIBS)
X-	strip muscle
X+	$(LINK.o) -o $@ $^ $(LDLIBS)
END-of-biology/muscle/files/patch-Makefile
echo x - biology/muscle/files/patch-intmath.cpp
sed 's/^X//' >biology/muscle/files/patch-intmath.cpp << 'END-of-biology/muscle/files/patch-intmath.cpp'
X--- intmath.cpp.orig	Tue Nov 30 05:09:50 2004
X+++ intmath.cpp	Mon Jul  4 07:49:45 2005
X@@ -8,13 +8,6 @@
X 	return (PROB) pow(2.0, (double) Score/INTSCALE);
X 	}
X 
X-static const double log2e = log2(exp(1.0));
X-
X-double lnTolog2(double ln)
X-	{
X-	return ln*log2e;
X-	}
X-
X double log2(double x)
X 	{
X 	if (0 == x)
X@@ -24,6 +17,13 @@
X // Multiply by inverse of log(2) just in case multiplication
X // is faster than division.
X 	return log(x)*dInvLn2;
X+	}
X+
X+static const double log2e = log2(exp(1.0));
X+
X+double lnTolog2(double ln)
X+	{
X+	return ln*log2e;
X 	}
X 
X SCORE ProbToScore(PROB Prob)
END-of-biology/muscle/files/patch-intmath.cpp
echo x - biology/muscle/files/patch-globalslinux.cpp
sed 's/^X//' >biology/muscle/files/patch-globalslinux.cpp << 'END-of-biology/muscle/files/patch-globalslinux.cpp'
X--- globalslinux.cpp.orig	Tue Nov 30 05:09:50 2004
X+++ globalslinux.cpp	Mon Jul  4 11:13:18 2005
X@@ -7,6 +7,12 @@
X #include <errno.h>
X #include <stdio.h>
X #include <fcntl.h>
X+#if __FreeBSD__ > 2
X+#include <kvm.h>
X+#include <sys/param.h>
X+#include <sys/sysctl.h>
X+#include <sys/user.h>
X+#endif // __FreeBSD__ > 2
X 
X const int ONE_MB = 1000000;
X const int MEM_WARNING_THRESHOLD = 20*ONE_MB;
X@@ -39,6 +45,34 @@
X 	return szCmdLine;
X 	}
X 
X+#if __FreeBSD__ > 2
X+double GetMemUseMB()
X+	{
X+	kvm_t *kd;
X+	struct kinfo_proc *ki;
X+	vm_size_t size;
X+	int nproc;
X+
X+	kd = kvm_open(NULL, "/dev/null", NULL, O_RDONLY, "kvm_open");
X+	if (kd == NULL)
X+		{
X+		static bool Warned = false;
X+		if (!Warned)
X+			{
X+			Warned = true;
X+			Warning("*Warning* Cannot open KVM");
X+			}
X+		return 0;
X+		}
X+
X+	ki = kvm_getprocs(kd, KERN_PROC_PID, getpid(), &nproc);
X+	size = ki->ki_size;
X+
X+	kvm_close(kd);
X+
X+	return ((double) size)/1e6;
X+	}
X+#else // __FreeBSD__ > 2
X double GetMemUseMB()
X 	{
X 	static char statm[64];
X@@ -83,6 +117,7 @@
X 
X 	return ((double) Pages * (double) PageSize)/1e6;
X 	}
X+#endif // __FreeBSD__ > 2
X 
X void SaveCmdLine(int argc, char *argv[])
X 	{
X@@ -118,6 +153,28 @@
X 		dPeakMemUseMB = dMB;
X 	}
X 
X+#if __FreeBSD__ > 2
X+double GetRAMSizeMB()
X+	{
X+	const double DEFAULT_RAM = 500;
X+	unsigned int physmem;
X+	size_t len = sizeof physmem;
X+	static int mib[2] = { CTL_HW, HW_PHYSMEM };
X+
X+	if (sysctl(mib, 2, &physmem, &len, NULL, 0))
X+		{
X+		static bool Warned = false;
X+		if (!Warned)
X+			{
X+			Warned = true;
X+			Warning("*Warning* Cannot get hw.physmem");
X+			}
X+		return DEFAULT_RAM;
X+		}
X+
X+	return ((double) physmem)/1e6;
X+	}
X+#else // __FreeBSD__ > 2
X double GetRAMSizeMB()
X 	{
X 	const double DEFAULT_RAM = 500;
X@@ -168,5 +225,6 @@
X 	int Bytes = atoi(pMem+9)*1000;
X 	return ((double) Bytes)/1e6;
X 	}
X+#endif // __FreeBSD__ > 2
X 
X #endif	// !WIN32
END-of-biology/muscle/files/patch-globalslinux.cpp
echo x - biology/muscle/pkg-descr
sed 's/^X//' >biology/muscle/pkg-descr << 'END-of-biology/muscle/pkg-descr'
XMUSCLE is multiple alignment software for protein and nucleotide sequences.
XThe name stands for multiple sequence comparison by log-expectation.
X
XA range of options is provided that give you the choice of optimizing
Xaccuracy, speed, or some compromise between the two. Default parameters are
Xthose that give the best average accuracy in the published tests. MUSCLE
Xcan achieve both better average accuracy and better speed than CLUSTALW or
XT-Coffee, depending on the chosen options.
X
XCitation:
X
XEdgar, R. C. (2004) MUSCLE: multiple sequence alignment with high accuracy
Xand high throughput. Nucleic Acids Research 32(5): 1792-1797. 
X
XEdgar, R. C. (2004) MUSCLE: a multiple sequence alignment method with
Xreduced time and space complexity. BMC Bioinformatics 5(1): 113. 
X
XThe NAR paper gives only a brief overview of the algorithm and
Ximplementation details. For a full discussion of the method and many of
Xthe non-default options that it offers, please see the BMC paper.
X
XWWW: http://www.drive5.com/muscle/
END-of-biology/muscle/pkg-descr
exit



>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list