Bio-MUST-Drivers
view release on metacpan or search on metacpan
bin/annotate-ali.pl view on Meta::CPAN
# ... or standard annotation report
else {
while (my ($id, $ann) = each %ann_for) {
say join "\t", $ann, $id;
}
}
# optionally output annotated file
if ($ARGV_ann_file) {
my $ali = Bio::MUST::Core::Ali->load($infile);
$ali->dont_guess if $ARGV_noguessing;
my $outfile = secure_outfile($infile, $ARGV_out_suffix);
#### Writing annotated file: $outfile->stringify
prefix_ids($ali, \%ann_for)->store_fasta($outfile);
}
}
# TODO: move into BMC::Ali
sub prefix_ids {
my $ali = shift;
my $ann_for = shift;
bin/annotate-ali.pl view on Meta::CPAN
=item --out[-suffix] [=] <suffix>
Suffix to append to infile basenames for deriving outfile names [default:
-ann]. When not specified, outfile names are taken from infiles but original
infiles are preserved by being appended a .bak suffix.
=for Euclid: suffix.type: string
suffix.default: '-ann'
=item --[no]guessing
[Don't] guess whether sequences are aligned or not [default: yes].
=item --version
=item --usage
=item --help
=item --man
Print the usual program information
lib/Bio/MUST/Drivers/Cap3.pm view on Meta::CPAN
push @{ $ids_for{$contig_id} },
SeqId->new( full_id => $self->long_id_for($fragment_id) );
} # ... and restore original id on the fly from IdMapper
}
# store contig and fragment ids
$self->_set_contig_seq_ids(\%ids_for);
# read and store contig seqs
my $contigs = Ali->load($outfile_contigs);
$contigs->dont_guess;
$self->_set_contigs($contigs);
# read and store singlet seqs...
my $singlets = Ali->load($outfile_singlets);
$singlets->dont_guess;
$singlets->restore_ids($self->mapper); # ... restoring original ids
$self->_set_singlets($singlets);
# unlink temp files
my @files2rm = (
$outfile, $outfile_contigs, $outfile_singlets,
map { $basename . '.' . $_ } qw(info ace contigs.links contigs.qual)
);
file($_)->remove for @files2rm;
lib/Bio/MUST/Drivers/CdHit.pm view on Meta::CPAN
SeqId->new( full_id => $mapper->long_id_for($_) )
} @{ $parser->members_for($abbr_id) // [] };
$cluster_seq_ids{ $mapper->long_id_for($abbr_id) } = \@member_ids;
}
# ... and store cluster members
$self->_set_cluster_seq_ids(\%cluster_seq_ids);
# read and store representative seqs...
my $representatives = Ali->load($outfile);
$representatives->dont_guess;
$representatives->restore_ids($mapper); # ... restoring original ids
$self->_set_representatives($representatives);
# unlink temp files
file($_)->remove for $outfile, $outfile_clstr;
return;
}
# TODO: test this
lib/Bio/MUST/Drivers/Exonerate.pm view on Meta::CPAN
sub BUILD {
my $self = shift;
# provision executable
my $app = use_module('Bio::MUST::Provision::Exonerate')->new;
$app->meet();
# build temp Ali file for input DNA seq
my $dna = Ali->new(
seqs => [ $self->dna_seq ],
guessing => 0,
);
my $dnafile = $dna->temp_fasta;
# build temp Ali file for input PEP seq
my $pep = Ali->new(
seqs => [ $self->pep_seq ],
guessing => 0,
);
my $pepfile = $pep->temp_fasta;
# setup output file
my $outfile = $dnafile . '.exonerate.out';
# TODO: make outfile name more robust using File::Temp
# create exonerate command
my $pgm = 'exonerate';
my $code = $self->genetic_code->ncbi_id;
lib/Bio/MUST/Drivers/Exonerate/Aligned.pm view on Meta::CPAN
sub BUILD {
my $self = shift;
# provision executable
my $app = use_module('Bio::MUST::Provision::Exonerate')->new;
$app->meet();
# build temp Ali file for input DNA seq
my $dna = Ali->new(
seqs => [ $self->dna_seq ],
guessing => 0,
);
my $dnafile = $dna->temp_fasta;
# build temp Ali file for input PEP seq
my $pep = Ali->new(
seqs => [ $self->pep_seq ],
guessing => 0,
);
my $pepfile = $pep->temp_fasta;
# execute exonerate
my $outfile = $self->_exonerate($dnafile, $pepfile);
# parse outfile and populate seqs
$self->_parse_outfile($outfile);
# check that everything ran fine
( run in 0.912 second using v1.01-cache-2.11-cpan-748bfb374f4 )