Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
executable file 119 lines (84 sloc) 3.23 KB
#!/usr/bin/perl
# PROGRAM : psw.pl
# PURPOSE : Simple driver for Bio::Tools::pSW
# AUTHOR : Ewan Birney birney@sanger.ac.uk
# CREATED : Tue Oct 27 1998
#
# INSTALLATION
#
# you almost certainly have to have installed bioperl
# from the makefile system for this to work. This is
# because this module use XS extensions (C source code
# 'compiled into' perl)
#
# The lib system below is just so that I (ewan) can test it
# on site...
#
use lib "/nfs/disk100/pubseq/wise/PerlMod/";
#
# This is a simple example script. We are going
# to make 3 sequences directly from memory and
# then align them once using blosum matrix and once
# using a gonnet matrix. These matrices should
# in the examples directory.
#
use Bio::Tools::pSW;
# redundant, as Bio::Tools::pSW uses them, but useful to say
# precisely what we are using ;)
use Bio::Seq;
use Bio::SimpleAlign;
use Bio::AlignIO;
# for legibility - write with newlines and then strip them!
$tseq = 'SKSESPKEPEQLRKLFIGGLSFETTDESLRSHFEQWGTLTDCVVMRDPNTKRSRGFGFVT
YATVEEVDAAMNARPHKVDGRVVEPKRAVSREDSQRPGAHLTVKKIFVGGIKEDTEEHHL
RDYFEQYGKIEVIEIMTDRGSGKKRGFAFVTFDDHDSVDKIVIQKYHTVNGHNCEVRKAL
SKQEMASASSSQRGRSGSGNFGGGRGGGFGGNDNFGRGGNFSGRGGFGGSRGGGGYGGSG
DGYNGFGNDGGYGGGGPGYSGGSRGYGSGGQGYGNQGSGYGGSGSYDSYNNGGGRGFGGG
SGSNFGGGGSYNDFGNYNNQSSNFGPMKGGNFGGRSSGPYGGGGQYFAKPRNQGGYGGSS
SSSSYGSGRRF';
$tseq =~ s/[^A-Z]//g;
$seq1 = Bio::Seq->new(-id=>'roa1_human',-seq=>$tseq);
$tseq = 'MVNSNQNQNGNSNGHDDDFPQDSITEPEHMRKLFIGGLDYRTTDENLKAHFEKWGNIVDV
VVMKDPRTKRSRGFGFITYSHSSMIDEAQKSRPHKIDGRVVEPKRAVPRQDIDSPNAGAT
VKKLFVGALKDDHDEQSIRDYFQHFGNIVDINIVIDKETGKKRGFAFVEFDDYDPVDKVV
LQKQHQLNGKMVDVKKALPKQNDQQGGGGGRGGPGGRAGGNRGNMGGGNYGNQNGGGNWN
NGGNNWGNNRGGNDNWGNNSFGGGGGGGGGYGGGNNSWGNNNPWDNGNGGGNFGGGGNNW
NNGGNDFGGYQQNYGGGPQRGGGNFNNNRMQPYQGGGGFKAGGGNQGNYGGNNQGFNNGG
NNRRY';
$tseq =~ s/[^A-Z]//g;
$seq2 = Bio::Seq->new(-id=>'roa1_drome',-seq=>$tseq);
$tseq = 'MHKSEAPNEPEQLRKLFIGGLSFETTDESLREHFEQWGTLTDCVVMRDPNSKRSRGFGFV
TYLSTDEVDAAMTARPHKVDGRVVEPKRAVSREDSSRPGAHLTVKKIFVGGIKEDTEEDH
LREYFEQYGKIEVIEIMTDRGSGKKRGFAFVTFEDHDSVDKIVIQKYHTVNNHNSQVRKA
LSKQEMASVSGSQRERGGSGNYGSRGGFGNDNFGGRGGNFGGNRGGGGGFGNRGYGGDGY
NGDGQLWWQPSLLGWNRGYGAGQGGGYGAGQGGGYGGGGQGGGYGGNGGYDGYNGGGSGF
SGSGGNFGSSGGYNDFGNYNSQSSSNFGPMKGGNYGGGRNSGPYGGGYGGGSASSSSGYG
GGRRF';
$tseq =~ s/[^A-Z]//g;
$seq3 = Bio::Seq->new(-id=>'roa1_xenla',-seq=>$tseq);
#
# Now make an Alignment Factory with blosum62 as a matrix
# gap -12 and ext -2
#
$fac = Bio::Tools::pSW->new(-matrix => 'blosum62.bla',-gap => 12, -ext => 2);
#
# run seq1 vs seq2 and seq1 vs seq3 and write the output direct
# to stdout using the 'pretty' method
#
$fac->align_and_show($seq1,$seq2,STDOUT);
print "Next alignment\n";
$fac->align_and_show($seq1,$seq3,STDOUT);
#
# a different factory, using gonnet, and now make a simple align and
# provide MSF format
#
$fac = Bio::Tools::pSW->new(-matrix => 'gon250.bla',-gap => 12, -ext => 2);
# switch on reporting this time and change the amount of memory it is allowed
print STDOUT "Doing the next calculation in limited memory, with a progress report\n";
$fac->report(1);
$fac->kbyte(100);
$al = $fac->pairwise_alignment($seq1,$seq2);
# write out a MSF file
my $out = Bio::AlignIO->newFh('-fh'=> \*STDOUT, '-format' => 'msf');
my $status = print $out $al;
#$al->write_MSF(\*STDOUT);
Jump to Line
Something went wrong with that request. Please try again.