Bio::C...lection(3pm)

🌸 NAME 🌸

Bio::Coordinate::Collection β€” noncontinuous match between two coordinate sets, bestie πŸ’– (yes it's one of those User Contributed Perl Documentation pages, and yes it's giving iconic)


✨ VERSION ✨

version 1.007001 β€” she's been around, she's stable, she ate πŸ“


πŸ¦‹ SYNOPSIS πŸ¦‹

okay so picture this, you're mapping coordinates and you want the whole vibe in one go:

# create Bio::Coordinate::Pairs or other Bio::Coordinate::MapperIs somehow
$pair1; $pair2;

# add them into a Collection
$collection = Bio::Coordinate::Collection->new;
$collection->add_mapper($pair1);
$collection->add_mapper($pair2);

# create a position and map it
$pos = Bio::Location::Simple->new (-start => 5, -end => 9 );
$res = $collection->map($pos);
$res->match->start == 1;
$res->match->end == 5;

# if mapping is many to one (*>1) or many-to-many (*>*)
# you have to give seq_id not get unrelevant entries
$pos = Bio::Location::Simple->new
    (-start => 5, -end => 9 -seq_id=>'clone1');

no cap, that last bit is the important one β€” if your mapping is many-to-one (*>1) or many-to-many (*>*) you have to hand over a seq_id or you're gonna get irrelevant entries back and you'll be like 😭


πŸ’… DESCRIPTION πŸ’…

A generic, context-neutral mapper that does coordinate transforms between two disjoint coordinate systems. She brings into Bioperl the functionality from Ewan Birney's Bio::EnsEMBL::Mapper, ported into current bioperl. Obsessed honestly. 🫢

This class is aimed at representing mapping between whole chromosomes and contigs, or between contigs and clones, or between sequencing reads and assembly. And here's the slay part: the submaps are automatically sorted, so you can add them in literally any order you want. 🌈

heads up bestie β€” to map coordinates in the other direction you have to swap() the collection. Keeping track of the direction and the ID restrictions? That's on your calling code, not on her. Periodt.

πŸŽ€ ATTRIBUTES πŸŽ€

mappers

  • Title: mappers
  • Usage: $obj->mappers();
  • Function: Returns or sets a list of mappers.
  • Example: (none given, she's mysterious like that πŸ’œ)
  • Returns: array of mappers
  • Args: array of mappers

each_mapper

  • Title: each_mapper
  • Usage: $obj->each_mapper();
  • Function: Returns a list of mappers.
  • Example: (nothin' πŸ¦‹)
  • Returns: list of mappers
  • Args: none

mapper_count

  • Title: mapper_count
  • Usage: my $count = $collection->mapper_count;
  • Function: Get the count of the number of mappers stored in this collection
  • Example: (empty, it's fine πŸ’–)
  • Returns: integer
  • Args: none

πŸ”₯ METHODS πŸ”₯

new

she's the constructor, she exists, she's iconic, no extra lore needed ✨

add_mapper

  • Title: add_mapper
  • Usage: $obj->add_mapper($mapper)
  • Function: Pushes one Bio::Coordinate::MapperI into the list of mappers. Sets _is_sorted() to false.
  • Example: (none)
  • Returns: 1 when succeeds, 0 for failure.
  • Args: mapper object

swap

  • Title: swap
  • Usage: $obj->swap;
  • Function: Swap the direction of mapping; input <-> output
  • Example: (none)
  • Returns: 1
  • Args: (nothing, she takes no args πŸ’…)

test

  • Title: test
  • Usage: $obj->test;
  • Function: test that both components of all pairs are of the same length. Ran automatically.
  • Example: (none)
  • Returns: boolean
  • Args: (none)

map

  • Title: map
  • Usage: $newpos = $obj->map($pos);
  • Function: Map the location from the input coordinate system to a new value in the output coordinate system.
  • Example: (none)
  • Returns: new value in the output coordinate system
  • Args: integer

sort

  • Title: sort
  • Usage: $obj->sort;
  • Function: Sort function so that all mappings are sorted by input coordinate start
  • Example: (none)
  • Returns: 1
  • Args: (none)

🧚 INTERNAL METHODS 🧚

these are the behind-the-scenes girlies, the main character energy happens elsewhere but they make it all work πŸ’œ

_map

  • Title: _map
  • Usage: $newpos = $obj->_map($simpleloc);
  • Function: Internal method that does the actual mapping. Called multiple times by map() if the location to be mapped is a split location
  • Example: (none)
  • Returns: new location in the output coordinate system or undef
  • Args: Bio::Location::Simple

_is_sorted

  • Title: _is_sorted
  • Usage: $newpos = $obj->_is_sorted;
  • Function: toggle for whether the (internal) coordinate mapper data are sorted
  • Example: (none)
  • Returns: boolean
  • Args: boolean

πŸ’Œ 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
http://bioperl.org/wiki/Mailing_lists  - 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. (yes, code AND data, don't be shy, they want the whole picture πŸ“Έ)

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/%%7Bdist%7D

πŸ‘‘ AUTHOR πŸ‘‘

Heikki Lehvaslaiho <heikki@bioperl.org>


This software is copyright (c) by Heikki Lehvaslaiho.

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


and that's the whole page bestie, no notes πŸ’– this was perl v5.32.0, dated 2020-11-24, straight from Bio::C...lection(3pm) β€” slay, go map some coordinates, you got this βœ¨πŸŽ€

πŸ“¦ where this page comes from