FAST
view release on metacpan or search on metacpan
lib/FAST/Bio/UnivAln.pm view on Meta::CPAN
@ISA = qw(Exporter);
@EXPORT = qw();
@EXPORT_OK = qw($VERSION %UnivAlnType @UnivAlnType
%UnivAlnForm @UnivAlnForm %UnivAlnAlphs @UnivAlnAlphs);
require 5.002;
use Carp;
#if ($] < 5.005) {carp "Not tested for Perl 5.002 or 5.003";}
use POSIX;
use File::Basename;
use vars qw($_NOFILE_FLAG $_GAP_SYMBOL $_UNKN_SYMBOL $_UNKN_SYMBOL2 $_NO_CONSENSUS_SYMBOL $_NaN $_MAX_SIZE_TAXANAME $_READSEQ $_CLUSTAL);
$_NOFILE_FLAG='_undef';
$_GAP_SYMBOL ='-';
$_UNKN_SYMBOL='\?'; # the backslash seems to be needed to be able to write
# ($str =~ /$_UNKN_SYMBOL/) ??!!
$_UNKN_SYMBOL2='N'; # ONLY USED IN UNDOCUMENTED FUNCTION special_free_seqs()
$_NO_CONSENSUS_SYMBOL='!';
$_NaN = POSIX::INT_MAX; #anything better ?
$_MAX_SIZE_TAXANAME=20;
$_READSEQ = "";
$_CLUSTAL = "";
$ENV{READSEQ} = "readseq";
# name of the readseq executable to be found in
# $ENV{READSEQ_DIR} or "\.". Set this to "" if readseq is
# installed, but shall be ignored
$ENV{CLUSTAL} = "clustal";
# name of the clustal executable to be found in
# $ENV{CLUSTAL_DIR} or "\.". Set this to "" if clustal is
lib/FAST/Bio/UnivAln.pm view on Meta::CPAN
delete $all_row_ids_hash{$row_id};
} else {
carp("Requested row named $row_id not found, or duplicate");
}
}
$rowindices2 = \@rows;
}
if (ref($rowindices) eq 'CODE') {
my $ctr = $firstindx - 1;
$rowindices2 = [ grep {$_ != $_NaN}
# filter out $_NaN-value indexes, see next comment
map {($ctr++,$_) ? $ctr : $_NaN}
# convert list of function values into list of indices
# in canonical order, except that false values trigger an
# index of $_NaN, e.g. (1,$_NaN,3,$_NaN,5) is the result
# of map {($ctr++,$_) ? $ctr : $_NaN} ("A","","B",0,"C")
# note that the comma operator evaluates the first
# argument and throws the result away, and then
# evaluates the second argument; the side effect
# of the first evaluation is the increment of $ctr.
$self->map_r($rowindices) ];
}
my($ii);
for $ii (0 .. $#{$rowindices2}) {
if ($rowindices2->[$ii] < $firstindx) {
lib/FAST/Bio/UnivAln.pm view on Meta::CPAN
}
my(@restkeys) = keys %col_ids_hash;
if (scalar(@restkeys) > 0) {
carp("Requested columns named @restkeys not found");
}
$colindices2 = \@cols;
}
if (ref($colindices) eq 'CODE') {
my $ctr = $firstindx - 1;
$colindices2 = [ grep {$_ != $_NaN}
# see _rowbounds()
map {($ctr++,$_) ? $ctr : $_NaN}
$self->map_c($colindices) ];
}
my($ii);
for $ii (0 .. ($#{$colindices2})) {
if ($colindices2->[$ii] < $firstindx) {
carp "Requested column $colindices2->[$ii] of an alignment starting at $firstindx";
}
if (($colindices2->[$ii] - $firstindx + 1) > $width) {
carp "Requested column $colindices2->[$ii] is beyond the end of the alignment";
( run in 0.741 second using v1.01-cache-2.11-cpan-4d50c553e7e )