Logo
root@/software/cygwinports/seqaln# cursor
home
software
  sgml
  scientific sw
  cygwin ports
    seqaln
    clustal w
    tacg
    readseq
    un
    sgrep
    |stat
    ploticus
  hacks
  history
photography
about
contact

seqaln

A library and a few tools based on this library for comparing and aligning sequences:

ruler

Overview

The Sequence Alignment Software Library at USC is a set of libraries and programs using these libraries for the analysis and alignment of protein and nucleic acid sequences. This software is currently maintained by Paul Hardy and Michael Waterman at the University of Southern California.

The CygWin port is based on seqaln version 2.0 released in 1997. Please note that the authors consider one of the programs (pfitS) to be broken in version 2.0. If you need exaxtly this, you'll have to get version 1.1.6.

ruler

Modifications

The source code was designed to compile with GNU gcc, so there were no source code changes necessary. However, the makefiles needed some treatment to compile under the CygWin environment.

The problems to deal with were:

  • CygWin binaries have a .exe suffix
  • NTFS (and FAT, I assume) appear to be unaware of a touch treatment of directories
  • a shell script can't be called from make unless the directory is explicitly specified (at least if you listen to the security people and don't have "." in your path)
  • the rm command is not necessarily in /bin (but it should be in the path anyway)

seqaln/Makefile

--- ../seqaln-2.0-orig/seqaln-2.0/seqaln/Makefile	Wed Aug 21 22:57:58 1996
+++ seqaln/Makefile	Mon Jul 12 22:35:25 1999
@@ -23,5 +23,5 @@
 	done
 	$(INSTALL) $(INFLAGS) src/*.h $(INCDIR)
-	/bin/rm -f $(INCDIR)/a.h
+	rm -f $(INCDIR)/a.h
 	$(INSTALL) $(INFLAGS) lib/libseqaln.a $(LIBDIR)
 	ranlib $(LIBDIR)/libseqaln.a
    

seqaln/demo/Makefile

--- Makefile.orig	Thu Oct 24 17:50:28 1996
+++ Makefile	Sat Aug 07 22:23:57 1999
@@ -3,14 +3,14 @@
 MAXOPT=-O4 -g
 LDFLAGS=-L../lib -L../../randist -lseqaln -lrandist -lm
 
-BINARIES= fitS mfitS pfitS fitD mfitD \
-	globalS mglobalS globalD mglobalD \
-        overS moverS \
-	localS mlocalS \
-	trlocalS mtrlocalS \
-	pvlocalS mpvlocalS \
-	srlocalS msrlocalS \
-	pvsrlocalS mpvsrlocalS
+BINARIES= fitS.exe mfitS.exe pfitS.exe fitD.exe mfitD.exe \
+	globalS.exe mglobalS.exe globalD.exe mglobalD.exe \
+        overS.exe moverS.exe \
+	localS.exe mlocalS.exe \
+	trlocalS.exe mtrlocalS.exe \
+	pvlocalS.exe mpvlocalS.exe \
+	srlocalS.exe msrlocalS.exe \
+	pvsrlocalS.exe mpvsrlocalS.exe
 
 all: .h $(BINARIES) bin test
 
@@ -27,77 +27,78 @@
 		mkdir ../bin; \
 	fi
 	for i in $(BINARIES); do \
+		strip $$i; \
 		mv $$i ../bin; \
 	done
 
 test: ../lib/libseqaln.a
-	touch ../test
+#	touch  ../test
 
 install: all
 	$(INSTALL) $(INFLAGS) ../lib/libseqaln.a $(LIBDIR)
 	ranlib $(LIBDIR)/libseqaln.a
 
-mpvsrlocalS: i_mpvsrlocalS.o ../lib/libseqaln.a
+mpvsrlocalS.exe: i_mpvsrlocalS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o mpvsrlocalS i_mpvsrlocalS.o $(LDFLAGS)
 
-pvsrlocalS: i_pvsrlocalS.o ../lib/libseqaln.a
+pvsrlocalS.exe: i_pvsrlocalS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o pvsrlocalS i_pvsrlocalS.o $(LDFLAGS)
 
-msrlocalS: i_msrlocalS.o ../lib/libseqaln.a
+msrlocalS.exe: i_msrlocalS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o msrlocalS i_msrlocalS.o $(LDFLAGS)
 
-srlocalS: i_srlocalS.o ../lib/libseqaln.a
+srlocalS.exe: i_srlocalS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o srlocalS i_srlocalS.o $(LDFLAGS)
 
-mpvlocalS: i_mpvlocalS.o ../lib/libseqaln.a
+mpvlocalS.exe: i_mpvlocalS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o mpvlocalS i_mpvlocalS.o $(LDFLAGS)
 
-pvlocalS: i_pvlocalS.o ../lib/libseqaln.a
+pvlocalS.exe: i_pvlocalS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o pvlocalS i_pvlocalS.o $(LDFLAGS)
 
-mtrlocalS: i_mtrlocalS.o ../lib/libseqaln.a
+mtrlocalS.exe: i_mtrlocalS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o mtrlocalS i_mtrlocalS.o $(LDFLAGS)
 
-trlocalS: i_trlocalS.o ../lib/libseqaln.a
+trlocalS.exe: i_trlocalS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o trlocalS i_trlocalS.o $(LDFLAGS)
 
-mlocalS: i_mlocalS.o ../lib/libseqaln.a
+mlocalS.exe: i_mlocalS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o mlocalS i_mlocalS.o $(LDFLAGS)
 
-localS: i_localS.o ../lib/libseqaln.a
+localS.exe: i_localS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o localS i_localS.o $(LDFLAGS)
 
-fitS: i_fitS.o ../lib/libseqaln.a
+fitS.exe: i_fitS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o fitS i_fitS.o $(LDFLAGS)
 
-mfitS: i_mfitS.o ../lib/libseqaln.a
+mfitS.exe: i_mfitS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o mfitS i_mfitS.o $(LDFLAGS)
 
-pfitS: i_pfitS.o ../lib/libseqaln.a
+pfitS.exe: i_pfitS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o pfitS i_pfitS.o $(LDFLAGS)
 
-fitD: i_fitD.o ../lib/libseqaln.a
+fitD.exe: i_fitD.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o fitD i_fitD.o $(LDFLAGS)
 
-mfitD: i_mfitD.o ../lib/libseqaln.a
+mfitD.exe: i_mfitD.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o mfitD i_mfitD.o $(LDFLAGS)
 
-globalS: i_globalS.o ../lib/libseqaln.a
+globalS.exe: i_globalS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o globalS i_globalS.o $(LDFLAGS)
 
-mglobalS: i_mglobalS.o ../lib/libseqaln.a
+mglobalS.exe: i_mglobalS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o mglobalS i_mglobalS.o $(LDFLAGS)
 
-globalD: i_globalD.o ../lib/libseqaln.a
+globalD.exe: i_globalD.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o globalD i_globalD.o $(LDFLAGS)
 
-mglobalD: i_mglobalD.o ../lib/libseqaln.a
+mglobalD.exe: i_mglobalD.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o mglobalD i_mglobalD.o $(LDFLAGS)
 
-overS: i_overS.o ../lib/libseqaln.a
+overS.exe: i_overS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o overS i_overS.o $(LDFLAGS)
 
-moverS: i_moverS.o ../lib/libseqaln.a
+moverS.exe: i_moverS.o ../lib/libseqaln.a
 	$(CC) $(CFLAGS) -o moverS i_moverS.o $(LDFLAGS)
 
 #
    

/seqaln/src/Makefile

--- ../seqaln-2.0-orig/seqaln-2.0/seqaln/src/Makefile	Mon Feb 10 22:43:10 1997
+++ seqaln/src/Makefile	Mon Jul 12 18:28:08 1999
@@ -33,7 +33,7 @@
 	ranlib ../lib/libseqaln.a
 
 test: ../lib/libseqaln.a
-	touch ../test
+#	touch ../test
 
 install: all
 	$(INSTALL) $(INFLAGS) ../lib/libseqaln.a $(LIBDIR)
    

/seqaln/test/Makefile

--- ../seqaln-2.0-orig/seqaln-2.0/seqaln/test/Makefile	Wed Sep 24 18:39:36 1997
+++ seqaln/test/Makefile	Mon Jul 12 22:41:55 1999
@@ -42,7 +42,7 @@
 	  fi ; \
 	  \rm -f testout ; \
 	  echo -n "   $$TESTPROG(linear space)..." ; \
-	  linearize.sh master/$$TESTPROG.$(VERSION).out >testm ; \
+	  ./linearize.sh master/$$TESTPROG.$(VERSION).out >testm ; \
 	  $$i a.seq b.seq 19 17 13 7 +M +L >testout 2>&1 ; \
 	  cmp -s testout testm ; \
 	  if [ $$? -eq 0 ] ; then \
@@ -71,7 +71,7 @@
 	  fi ; \
 	  \rm -f testout ; \
 	  echo -n "   $$TESTPROG(linear space)..." ; \
-	  linearize.sh master/$$TESTPROG.$(VERSION).out >testm ; \
+	  ./linearize.sh master/$$TESTPROG.$(VERSION).out >testm ; \
 	  $$i a.seq b.seq $(MATDIR)/PAM250 0 13 7 +M +L >testout 2>&1 ; \
 	  cmp -s testout testm ; \
 	  if [ $$? -eq 0 ] ; then \
@@ -100,7 +100,7 @@
 	  fi ; \
 	  \rm -f testout ; \
 	  echo -n "   $$TESTPROG(linear space)..." ; \
-	  linearize.sh master/$$TESTPROG.$(VERSION).out >testm ; \
+	  ./linearize.sh master/$$TESTPROG.$(VERSION).out >testm ; \
 	  $$i globins b.seq 19 17 13 7 +M +L >testout 2>&1 ; \
 	  cmp -s testout testm ; \
 	  if [ $$? -eq 0 ] ; then \
@@ -129,7 +129,7 @@
 	  fi ; \
 	  \rm -f testout ; \
 	  echo -n "   $$TESTPROG(linear space)..." ; \
-	  linearize.sh master/$$TESTPROG.$(VERSION).out >testm ; \
+	  ./linearize.sh master/$$TESTPROG.$(VERSION).out >testm ; \
 	  $$i a.seq b.seq 17 13 7 +M +L >testout 2>&1 ; \
 	  cmp -s testout testm ; \
 	  if [ $$? -eq 0 ] ; then \
@@ -158,7 +158,7 @@
 	  fi ; \
 	  \rm -f testout ; \
 	  echo -n "   $$TESTPROG(linear space)..." ; \
-	  linearize.sh master/$$TESTPROG.$(VERSION).out >testm ; \
+	  ./linearize.sh master/$$TESTPROG.$(VERSION).out >testm ; \
 	  $$i a.seq b.seq $(MATDIR)/PAM250 0 13 7 +M +L >testout 2>&1 ; \
 	  cmp -s testout testm ; \
 	  if [ $$? -eq 0 ] ; then \
@@ -188,7 +188,7 @@
 	  fi
 	@ \rm -f testout
 	@ echo -n "   srlocalS(linear space)..."
-	@ linearize.sh master/srlocalS.$(VERSION).out >testm
+	@ ./linearize.sh master/srlocalS.$(VERSION).out >testm
 	@ $(BINDIR)/srlocalS a.seq b.seq 19 17 13 7 +M +L >testout 2>&1
 	@ cmp -s testout testm
 	@ if [ $$? -eq 0 ] ; then \
@@ -209,7 +209,7 @@
 	  fi
 	@ \rm -f testout
 	@ echo -n "   msrlocalS(linear space)..."
-	@ linearize.sh master/msrlocalS.$(VERSION).out >testm
+	@ ./linearize.sh master/msrlocalS.$(VERSION).out >testm
 	@ $(BINDIR)/msrlocalS a.seq b.seq $(MATDIR)/PAM250 0 13 7 +M +L >testout 2>&1
 	@ cmp -s testout testm 
 	@ if [ $$? -eq 0 ] ; then \
@@ -230,7 +230,7 @@
 	  fi
 	@ \rm -f testout
 	@ echo -n "   trlocalS(linear space)..."
-	@ linearize.sh master/mtrlocalS.$(VERSION).out >testm
+	@ ./linearize.sh master/mtrlocalS.$(VERSION).out >testm
 	@ $(BINDIR)/trlocalS a.seq b.pat 19 17 13 7 +M +L >testout 2>&1
 	@ cmp -s testout testm 
 	@ if [ $$? -eq 0 ] ; then \
@@ -251,7 +251,7 @@
 	  fi
 	@ \rm -f testout
 	@ echo -n "   mtrlocalS(linear space)..."
-	@ linearize.sh master/mtrlocalS.$(VERSION).out >testm
+	@ ./linearize.sh master/mtrlocalS.$(VERSION).out >testm
 	@ $(BINDIR)/mtrlocalS a.seq b.pat $(MATDIR)/PAM250 0 13 7 +M +L >testout 2>&1
 	@ cmp -s testout testm 
 	@ if [ $$? -eq 0 ] ; then \
@@ -289,7 +289,7 @@
 	  fi
 	@ \rm -f testout
 	@ echo -n "   pvlocalS(linear space)..."
-	@ linearize.sh master/pvlocalS.$(VERSION).out >testm
+	@ ./linearize.sh master/pvlocalS.$(VERSION).out >testm
 	@ $(BINDIR)/pvlocalS a.seq b.seq 19 17 13 7 +L mccaldon >testout 2>&1
 	@ cmp -s testout testm
 	@ if [ $$? -eq 0 ] ; then \
@@ -313,7 +313,7 @@
 	  fi
 	@ \rm -f testout
 	@ echo -n "   mpvlocalS(linear space)..."
-	@ linearize.sh master/mpvlocalS.$(VERSION).out >testm
+	@ ./linearize.sh master/mpvlocalS.$(VERSION).out >testm
 	@ $(BINDIR)/mpvlocalS a.seq b.seq $(MATDIR)/PAM250 0 13 7 +L mccaldon >testout 2>&1
 	@ cmp -s testout testm
 	@ if [ $$? -eq 0 ] ; then \
@@ -337,7 +337,7 @@
 	  fi
 	@ \rm -f testout
 	@ echo -n "   pvsrlocalS(linear space)..."
-	@ linearize.sh master/pvsrlocalS.$(VERSION).out >testm
+	@ ./linearize.sh master/pvsrlocalS.$(VERSION).out >testm
 	@ $(BINDIR)/pvsrlocalS a.seq 19 17 13 7 +L mccaldon >testout 2>&1
 	@ cmp -s testout testm
 	@ if [ $$? -eq 0 ] ; then \
@@ -361,7 +361,7 @@
 	  fi
 	@ \rm -f testout
 	@ echo -n "   mpvsrlocalS(linear space)..."
-	@ linearize.sh master/mpvsrlocalS.$(VERSION).out >testm
+	@ ./linearize.sh master/mpvsrlocalS.$(VERSION).out >testm
 	@ $(BINDIR)/mpvsrlocalS a.seq $(MATDIR)/PAM250 0 13 7 +L mccaldon >testout 2>&1
 	@ cmp -s testout testm
 	@ if [ $$? -eq 0 ] ; then \
    

seqaln/test/linearize.sh

(this is used only in make test)

--- linearize.sh.orig	Mon Aug 02 00:41:07 1999
+++ linearize.sh	Mon Aug 02 00:38:42 1999
@@ -1,3 +1,4 @@
+#!/bin/sh
 # Remove, in order of expression:
 #    alignment lines beginning with position then letter
 #    alignment lines beginning with position then deletion
@@ -8,5 +9,5 @@
 grep -v '[0-9] [A-Z]' $1 | \
    grep -v '[0-9] -' | \
    grep -v '\*' | \
-   grep -v '\|' | \
+   grep -v '|' | \
    sed -e 's/[0-9]*\.\.//g'
    

System requirements

I used the following setup to build the software:

  • Windows NT 4.0 SP3 Workstation
  • CygWinB20.1
  • gcc-2.95
  • create a /usr/local directory
  • in /usr/local, create symlinks bin, include, lib, man, which point to the CygWin H-i586-cygwin32/bin, /include, /lib, and /man subdirectories, respectively (or use equivalent mounts).

With this setup, make and make install give a clean installation. make test does not run completely clean. The first part works after patching linearize.sh (see above), the second part fails due to the known broken state of pfitS (it core dumps whatever you do with it), the third part is slightly ambigous, but basically indicates that the generated data match the master files.

ruler

Download information

The download information for the original sources at USC can be found on the USC Computational Biology website.

The sources with the modified makefiles for CygwinB20 and precompiled binaries are shipped as cygwinb20-seqaln-2.0.tar.gz (550kb).