Bio::Perl(3pm)

πŸ“¦
version 1.7.4 Β· 2 versions
, in debian bookworm, ubuntu jammy, ubuntu noble

πŸ’– NAME πŸ’–

Bio::Perl β€” functional access to BioPerl for people who don't know objects. bestie, this is your gateway drug ✨


🌸 VERSION 🌸

version 1.7.4 β€” yes we're on that version, keep up πŸ’…


✨ SYNOPSIS ✨

okay so this is the whole vibe right here, no cap:

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);

like... it's giving "I don't want to learn object orientation today" and honestly? valid 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

Easy first time access to BioPerl via functions. it's the low-stakes, no-objects-required entry point and we love her for it πŸ’œ

πŸŽ€ 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 Bio::Seq.

🧚 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 Bio::SeqIO and Bio::Seq for more information.

πŸ’… 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

🌈 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)

πŸ”₯ blast_sequence πŸ”₯

  • Title β€” blast_sequence
  • Usage β€”
$blast_result = blast_sequence($seq)
$blast_result = blast_sequence('MFVEGGTFASEDDDSASAEDE');
  • Function β€” If the computer has Internet accessibility, blasts the sequence using the NCBI BLAST server against nrdb.

It chooses the flavour of BLAST on the basis of the sequence.

This function uses Bio::Tools::Run::RemoteBlast, which itself use Bio::SearchIO β€” as soon as you want to know more, check out these modules.

  • Returns β€” Bio::Search::Result::GenericResult.pm
  • Args β€” Either a string of protein letters or nucleotides, or a Bio::Seq object

πŸ’€ write_blast πŸ’€

  • Title β€” write_blast
  • Usage β€”
write_blast($filename,$blast_report);
  • Function β€” Writes a BLAST result object (or more formally a SearchIO result object) out to a filename in BLAST-like format
  • Returns β€” none
  • Args β€”
    • filename as a string
    • Bio::SearchIO::Results object

⭐ get_sequence ⭐

  • Title β€” get_sequence
  • Usage β€”
$seq_object = get_sequence('swiss',"ROA1_HUMAN");
  • Function β€” If the computer has Internet access this method gets the sequence from Internet accessible databases. Currently this supports Swissprot ('swiss'), EMBL ('embl'), GenBank ('genbank'), GenPept ('genpept'), and RefSeq ('refseq').

Swissprot and EMBL are more robust than GenBank fetching.

If the user is trying to retrieve a RefSeq entry from GenBank/EMBL, the query is silently redirected. sneaky but it's fine πŸ™ˆ

  • Returns β€” A Bio::Seq object
  • Args β€” database type - one of swiss, embl, genbank, genpept, or refseq

πŸ“ translate πŸ“

  • Title β€” translate
  • Usage β€”
$seqobj = translate($seq_or_string_scalar)
  • Function β€” translates a DNA sequence object OR just a plain string of DNA to amino acids
  • Returns β€” A Bio::Seq object
  • Args β€” Either a sequence object or a string of just DNA sequence characters

πŸŽ€ translate_as_string πŸŽ€

  • Title β€” translate_as_string
  • Usage β€”
$seqstring = translate_as_string($seq_or_string_scalar)
  • Function β€” translates a DNA sequence object OR just a plain string of DNA to amino acids
  • Returns β€” A string of just amino acids
  • Args β€” Either a sequence object or a string of just DNA sequence characters

πŸ¦‹ reverse_complement πŸ¦‹

  • Title β€” reverse_complement
  • Usage β€”
$seqobj = reverse_complement($seq_or_string_scalar)
  • Function β€” reverse complements a string or sequence argument producing a Bio::Seq β€” if you want a string, you can use reverse_complement_as_string
  • Returns β€” A Bio::Seq object
  • Args β€” Either a sequence object or a string of just DNA sequence characters

🧚 revcom 🧚

  • Title β€” revcom
  • Usage β€”
$seqobj = revcom($seq_or_string_scalar)
  • Function β€” reverse complements a string or sequence argument producing a Bio::Seq β€” if you want a string, you can use reverse_complement_as_string

This is an alias for reverse_complement ✨

  • Returns β€” A Bio::Seq object
  • Args β€” Either a sequence object or a string of just DNA sequence characters

πŸ’œ reverse_complement_as_string πŸ’œ

  • Title β€” reverse_complement_as_string
  • Usage β€”
$string = reverse_complement_as_string($seq_or_string_scalar)
  • Function β€” reverse complements a string or sequence argument producing a string
  • Returns β€” A string of DNA letters
  • Args β€” Either a sequence object or a string of just DNA sequence characters

🌸 revcom_as_string 🌸

  • Title β€” revcom_as_string
  • Usage β€”
$string = revcom_as_string($seq_or_string_scalar)
  • Function β€” reverse complements a string or sequence argument producing a string
  • Returns β€” A string of DNA letters
  • Args β€” Either a sequence object or a string of just DNA sequence characters

🫢 APPENDIX 🫢

The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _. iykyk πŸ‘‘


🌈 FEEDBACK 🌈

πŸ’Œ Mailing lists πŸ’Œ

User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to the Bioperl mailing list. Your participation is much appreciated.

bioperl-l@bioperl.org               - General discussion
https://bioperl.org/Support.html    - About the mailing lists

πŸŽ€ Support πŸŽ€

Please direct usage questions or support issues to the mailing list: bioperl-l@bioperl.org rather than to the module maintainer directly. Many experienced and reponsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible.

πŸ› Reporting bugs πŸ›

Report bugs to the Bioperl bug tracking system to help us keep track of the bugs and their resolution. Bug reports can be submitted via the web:

https://github.com/bioperl/bio-procedural/issues

πŸ‘‘ AUTHOR πŸ‘‘

Ewan Birney <birney@ebi.ac.uk>


This software is copyright (c) by many people (see the individual modules for their copyright holders).

This software is available under the same terms as the perl 5 programming language system itself.


okay that's the whole page bestie, you ate πŸ’… this was Bio::Perl(3pm) from the User Contributed Perl Documentation, perl v5.30.0, dated 2020-01-15. go forth and sequence, my love 🧬✨🫢

πŸ“¦ where this page comes from