Bio-Procedural
view release on metacpan or search on metacpan
lib/Bio/Perl.pm view on Meta::CPAN
my $n = ( $scalar =~ tr/ATGCNatgcn/ATGCNatgcn/ );
if( $n < length($scalar) * 0.85 ) {
confess("Sequence [$scalar] is less than 85% ATGCN, which doesn't look very DNA to me");
}
$obj = Bio::PrimarySeq->new(-id => 'internalbioperlseq',-seq => $scalar);
}
return $obj->revcom();
}
sub revcom {
return &Bio::Perl::reverse_complement(@_);
}
sub reverse_complement_as_string {
my ($scalar) = shift;
my $obj = &Bio::Perl::reverse_complement($scalar);
return $obj->seq;
}
sub revcom_as_string {
my ($scalar) = shift;
my $obj = &Bio::Perl::reverse_complement($scalar);
return $obj->seq;
}
1;
# ABSTRACT: Functional access to BioPerl for people who don't know objects
# AUTHOR: Ewan Birney <birney@ebi.ac.uk>
# OWNER: many people (see the individual modules for their copyright holders)
# LICENSE: Perl_5
__END__
=pod
=encoding UTF-8
=head1 NAME
Bio::Perl - Functional access to BioPerl for people who don't know objects
=head1 VERSION
version 1.7.4
=head1 SYNOPSIS
use Bio::Perl;
# will guess file format from extension
$seq_object = read_sequence($filename);
# forces genbank format
$seq_object = read_sequence($filename,'genbank');
# reads an array of sequences
@seq_object_array = read_all_sequences($filename,'fasta');
# sequences are Bio::Seq objects, so the following methods work
# for more info see Bio::Seq, or do 'perldoc Bio/Seq.pm'
print "Sequence name is ",$seq_object->display_id,"\n";
print "Sequence acc is ",$seq_object->accession_number,"\n";
print "First 5 bases is ",$seq_object->subseq(1,5),"\n";
# get the whole sequence as a single string
$sequence_as_a_string = $seq_object->seq();
# writing sequences
write_sequence(">$filename",'genbank',$seq_object);
write_sequence(">$filename",'genbank',@seq_object_array);
# making a new sequence from just a string
$seq_object = new_sequence("ATTGGTTTGGGGACCCAATTTGTGTGTTATATGTA",
"myname","AL12232");
# getting a sequence from a database (assumes internet connection)
$seq_object = get_sequence('swissprot',"ROA1_HUMAN");
$seq_object = get_sequence('embl',"AI129902");
$seq_object = get_sequence('genbank',"AI129902");
# BLAST a sequence (assumes an internet connection)
$blast_report = blast_sequence($seq_object);
write_blast(">blast.out",$blast_report);
=head1 DESCRIPTION
Easy first time access to BioPerl via functions.
=head2 read_sequence
Title : read_sequence
Usage : $seq = read_sequence('sequences.fa')
$seq = read_sequence($filename,'genbank');
# pipes are fine
$seq = read_sequence("my_fetching_program $id |",'fasta');
Function: Reads the top sequence from the file. If no format is given, it will
try to guess the format from the filename. If a format is given, it
forces that format. The filename can be any valid perl open() string
- in particular, you can put in pipes
Returns : A Bio::Seq object. A quick synopsis:
$seq_object->display_id - name of the sequence
$seq_object->seq - sequence as a string
Args : Two strings, first the filename - any Perl open() string is ok
Second string is the format, which is optional
For more information on Seq objects see L<Bio::Seq>.
=head2 read_all_sequences
Title : read_all_sequences
Usage : @seq_object_array = read_all_sequences($filename);
@seq_object_array = read_all_sequences($filename,'genbank');
Function: Just as the function above, but reads all the sequences in the
file and loads them into an array.
For very large files, you will run out of memory. When this
happens, you've got to use the SeqIO system directly (this is
not so hard! Don't worry about it!).
Returns : array of Bio::Seq objects
Args : two strings, first the filename (any open() string is ok)
second the format (which is optional)
See L<Bio::SeqIO> and L<Bio::Seq> for more information
=head2 write_sequence
Title : write_sequence
Usage : write_sequence(">new_file.gb",'genbank',$seq)
write_sequence(">new_file.gb",'genbank',@array_of_sequence_objects)
Function: writes sequences in the specified format
Returns : true
Args : filename as a string, must provide an open() output file
format as a string
one or more sequence objects
=head2 new_sequence
Title : new_sequence
Usage : $seq_obj = new_sequence("GATTACA", "kino-enzyme");
Function: Construct a sequency object from sequence string
Returns : A Bio::Seq object
Args : sequence string
name string (optional, default "no-name-for-sequence")
accession - accession number (optional, no default)
=head2 blast_sequence
( run in 0.726 second using v1.01-cache-2.11-cpan-39bf76dae61 )