MAGE::...iducial(3pm)
okay so bestie, welcome to MAGE::...iducial(3pm) from the User Contributed Perl Documentation β and yes the manual name really is truncated with a literal ... in the middle, that's not me being shady, that's just how it shipped π. Anyway. Sit down, grab a lil drink, we're learning Bio::MAGE::Array::Fiducial together and it's gonna be fine π«Ά
πΈ NAME πΈ
Bio::MAGE::Array::Fiducial β the class for the MAGE-OM API. That's the whole vibe. Periodt. π
β¨ SYNOPSIS β¨
here's the whole glow-up, copied exactly so you don't have to squint at the original:
use Bio::MAGE::Array::Fiducial
# creating an empty instance
my $fiducial = Bio::MAGE::Array::Fiducial->new();
# creating an instance with existing data
my $fiducial = Bio::MAGE::Array::Fiducial->new(
position=>$position_ref,
auditTrail=>\@audit_list,
propertySets=>\@namevaluetype_list,
distanceUnit=>$distanceunit_ref,
descriptions=>\@description_list,
security=>$security_ref,
fiducialType=>$ontologyentry_ref,
);
# 'position' association
my $position_ref = $fiducial->position(); # getter
$fiducial->position($position_ref); # setter
# 'auditTrail' association
my $audit_array_ref = $fiducial->auditTrail(); # getter
$fiducial->auditTrail(\@audit_list); # setter
# 'propertySets' association
my $namevaluetype_array_ref = $fiducial->propertySets(); # getter
$fiducial->propertySets(\@namevaluetype_list); # setter
# 'distanceUnit' association
my $distanceunit_ref = $fiducial->distanceUnit(); # getter
$fiducial->distanceUnit($distanceunit_ref); # setter
# 'descriptions' association
my $description_array_ref = $fiducial->descriptions(); # getter
$fiducial->descriptions(\@description_list); # setter
# 'security' association
my $security_ref = $fiducial->security(); # getter
$fiducial->security($security_ref); # setter
# 'fiducialType' association
my $ontologyentry_ref = $fiducial->fiducialType(); # getter
$fiducial->fiducialType($ontologyentry_ref); # setter
look at all those getters and setters. it's giving object-oriented excellence π¦
π DESCRIPTION π
straight from the MAGE-OM documentation for the "Fiducial" class, no notes:
A marking on the surface of the array that can be used to identify the array's origin, the coordinates of which are the fiducial's centroid.
so likeβ¦ it's a little landmark on your array so you know where the array came from, and its coordinates are the centroid of that marking. iconic behavior honestly π
π§ INHERITANCE π§
Bio::MAGE::Array::Fiducial has exactly one superclass, and it's:
Bio::MAGE::Describable
so everything Describable brings to the party? it's here too. family reunion vibes π
π CLASS METHODS π
the slay here is that you can call all of these without making an instance first β just use the Bio::MAGE::Array::Fiducial->methodname() syntax. no object required, we're going straight to the class, main character energy fr fr.
new(),new(%args)β the object constructor.new()takes these optional named-value style args, and each one sets a whole association:auditTrailβ sets the value of the"auditTrail"association (this one was inherited from class"Bio::MAGE::Describable"). The value must be of type: array ofBio::MAGE::AuditAndSecurity::Audit.positionβ sets the value of the"position"association. The value must be of type: instance ofBio::MAGE::DesignElement::Position.propertySetsβ sets the value of the"propertySets"association (this one was inherited from class"Bio::MAGE::Extendable"). The value must be of type: array ofBio::MAGE::NameValueType.descriptionsβ sets the value of the"descriptions"association (this one was inherited from class"Bio::MAGE::Describable"). The value must be of type: array ofBio::MAGE::Description::Description.distanceUnitβ sets the value of the"distanceUnit"association. The value must be of type: instance ofBio::MAGE::Measurement::DistanceUnit.securityβ sets the value of the"security"association (this one was inherited from class"Bio::MAGE::Describable"). The value must be of type: instance ofBio::MAGE::AuditAndSecurity::Security.fiducialTypeβ sets the value of the"fiducialType"association. The value must be of type: instance ofBio::MAGE::Description::OntologyEntry.
$obj = class->new(%parameters)β the"new()"method is the class constructor.- Parameters: if you hand it a list of name/value parameters, the corresponding slots, attributes, or associations get their initial values set by the constructor. cute right?
- Return value: a reference to an object of the class.
- Side effects: it invokes the
"initialize()"method if the class defines one.
@names = class->get_slot_names()β grabs the names of all the slots defined in a given class.
NOTE: that list of names does not include attribute or association names. don't come for me, that's just the rules π
- Return value: a list of the names of all slots defined for this class.
- Side effects: none. angel behavior.
@name_list = get_attribute_names()β returns the list of attribute data members for this class.@name_list = get_association_names()β returns the list of association data members for this class.@class_list = get_superclasses()β returns the list of superclasses for this class.@class_list = get_subclasses()β returns the list of subclasses for this class.$name = class_name()β returns the full class name for this class.$package_name = package_name()β returns the base package name (i.e. no'namespace::') of the package that contains this class.%assns = associations()β returns the association meta-information in a hash where the keys are the association names and the values are"Association"objects that carry the meta-information for the association. iykyk π«Ά
π INSTANCE METHODS π
$obj_copy = $obj->new()β when you call"new()"on an existing object reference instead of on a class name, it acts as a copy constructor β the new object's initial values get set to those of the existing object. lowkey the best trick here β¨- Parameters: no input parameters are used in the copy constructor; the initial values are taken directly from the object being copied.
- Return value: a reference to an object of the class.
- Side effects: it invokes the
"initialize()"method if the class defines one.
$obj->set_slots(%parameters)$obj->set_slots(\@name_list, \@value_list)β the"set_slots()"method sets a bunch of slots all at once, and it has two different invocation styles: the first takes a named parameter list, the second takes two array references. pick your fighter πΈ- Return value: none
- Side effects: will call
"croak()"if a slot_name is used that the class does not define. so like, don't make stuff up bestie π
@obj_list = $obj->get_slots(@name_list)β the"get_slots()"method gets the values of a number of slots at the same time.- Return value: a list of instance objects
- Side effects: none
$val = $obj->set_slot($name,$val)β the"set_slot()"method sets the slot $name to the value $val.- Return value: the new value of the slot, i.e. $val
- Side effects: none
$val = $obj->get_slot($name)β the"get_slot()"method gets the values of a number of slots at the same time.- Return value: a single slot value, or
undefif the slot has not been initialized. - Side effects: none
- Return value: a single slot value, or
π ATTRIBUTES π
attributes are simple data types that belong to a single instance of a class. in the Perl implementation of the MAGE-OM classes, the interface to attributes is implemented with separate setter and getter methods for each attribute.
"Bio::MAGE::Array::Fiducial" has the following attribute accessor methods:
(yep, that's it. nothing listed. the silence is loud π)
π¦ ASSOCIATIONS π¦
associations are references to other classes. associations in MAGE-OM have a cardinality that decides the minimum and maximum number of instances of the 'other' class that may be included in the association:
- 1 β there must be exactly one item in the association, i.e. this is a mandatory data field.
- 0..1 β there may be one item in the association, i.e. this is an optional data field.
- 1..N β there must be one or more items in the association, i.e. this is a mandatory data field, with list cardinality.
- 0..N β there may be one or more items in the association, i.e. this is an optional data field, with list cardinality.
Bio::MAGE::Array::Fiducial has the following association accessor methods:
π auditTrail
methods for the "auditTrail" association.
from the MAGE-OM documentation:
A list of Audit instances that track changes to the instance of Describable.
$array_ref = $fiducial->setAuditTrail($array_ref)β the restricted setter for the"auditTrail"association.- Input parameters: the value to which the
"auditTrail"association will be set: a reference to an array of objects of typeBio::MAGE::AuditAndSecurity::Audit - Return value: the current value of the
"auditTrail"association: a reference to an array of objects of typeBio::MAGE::AuditAndSecurity::Audit - Side effects: none
- Exceptions: will call
"croak()"if no input parameters are specified, or if too many input parameters are specified, or if $array_ref is not a reference to an array of classBio::MAGE::AuditAndSecurity::Auditinstances
- Input parameters: the value to which the
$array_ref = $fiducial->getAuditTrail()β the restricted getter for the"auditTrail"association.- Input parameters: none
- Return value: the current value of the
"auditTrail"association: a reference to an array of objects of typeBio::MAGE::AuditAndSecurity::Audit - Side effects: none
- Exceptions: will call
"croak()"if any input parameters are specified
$val = $fiducial->addAuditTrail(@vals)β because theauditTrailassociation has list cardinality, it may store more than one value. this method adds the current list of objects in theauditTrailassociation.- Input parameters: the list of values @vals to add to the
auditTrailassociation. NOTE: submitting a single value is permitted. - Return value: the number of items stored in the slot after adding @vals
- Side effects: none
- Exceptions: will call
"croak()"if no input parameters are specified, or if any of the objects in @vals is not an instance of classBio::MAGE::AuditAndSecurity::Audit
- Input parameters: the list of values @vals to add to the
β position
methods for the "position" association.
from the MAGE-OM documentation:
The position, relative to the upper left corner, of the fiducial
$val = $fiducial->setPosition($val)β the restricted setter for the"position"association.- Input parameters: the value to which the
"position"association will be set: one of the accepted enumerated values.
- Input parameters: the value to which the
- Return value: the current value of the
positionassociation : one of the accepted enumerated values. π«- Side effects: none. nada. zero. π«Ά
- Exceptions: will call
croak()if no input parameters are specified, or if too many input parameters are specified, or if$valis not an instance of classBio::MAGE::DesignElement::Position.
$val = $fiducial->getPosition()β the restricted getter for thepositionassociation. it only reads, bestie, it does not write. π- Input parameters: none.
- Return value: the current value of the
positionassociation : an instance of typeBio::MAGE::DesignElement::Position. β¨ - Side effects: none.
- Exceptions: will call
croak()if any input parameters are specified. so likeβ¦ don't. π
πΈ propertySets πΈ
Methods for the propertySets association.
From the MAGE-OM documentation:
Allows specification of name/value pairs. Meant to primarily help in-house, pipeline processing of instances by providing a place for values that aren't part of the specification proper.
$array_ref = $fiducial->setPropertySets($array_ref)β the restricted setter method for thepropertySetsassociation.- Input parameters: the value to which the
propertySetsassociation will be set : a reference to an array of objects of typeBio::MAGE::NameValueType. - Return value: the current value of the
propertySetsassociation : a reference to an array of objects of typeBio::MAGE::NameValueType. - Side effects: none.
- Exceptions: will call
croak()if no input parameters are specified, or if too many input parameters are specified, or if$array_refis not a reference to an array classBio::MAGE::NameValueTypeinstances. π
- Input parameters: the value to which the
$array_ref = $fiducial->getPropertySets()β the restricted getter method for thepropertySetsassociation.- Input parameters: none.
- Return value: the current value of the
propertySetsassociation : a reference to an array of objects of typeBio::MAGE::NameValueType. - Side effects: none.
- Exceptions: will call
croak()if any input parameters are specified.
$val = $fiducial->addPropertySets(@vals)β ok so thepropertySetsassociation has list cardinality, which is the fancy way of saying it can hold more than one value, bestie. this method adds the current list of objects in thepropertySetsassociation. π- Input parameters: the list of values
@valsto add to thepropertySetsassociation. NOTE: submitting a single value is permitted. one is fine, many is fine, we love flexibility. - Return value: the number of items stored in the slot after adding
@vals. π’ - Side effects: none.
- Exceptions: will call
croak()if no input parameters are specified, or if any of the objects in@valsis not an instance of classBio::MAGE::NameValueType.
- Input parameters: the list of values
π¦ descriptions π¦
Methods for the descriptions association.
From the MAGE-OM documentation:
Free hand text descriptions. Makes available the associations of Description to an instance of Describable.
$array_ref = $fiducial->setDescriptions($array_ref)β the restricted setter method for thedescriptionsassociation.- Input parameters: the value to which the
descriptionsassociation will be set : a reference to an array of objects of typeBio::MAGE::Description::Description. - Return value: the current value of the
descriptionsassociation : a reference to an array of objects of typeBio::MAGE::Description::Description. - Side effects: none.
- Exceptions: will call
croak()if no input parameters are specified, or if too many input parameters are specified, or if$array_refis not a reference to an array classBio::MAGE::Description::Descriptioninstances.
- Input parameters: the value to which the
$array_ref = $fiducial->getDescriptions()β the restricted getter method for thedescriptionsassociation.- Input parameters: none.
- Return value: the current value of the
descriptionsassociation : a reference to an array of objects of typeBio::MAGE::Description::Description. - Side effects: none.
- Exceptions: will call
croak()if any input parameters are specified. π
$val = $fiducial->addDescriptions(@vals)β because thedescriptionsassociation has list cardinality, it may store more than one value. this method adds the current list of objects in thedescriptionsassociation. β¨- Input parameters: the list of values
@valsto add to thedescriptionsassociation. NOTE: submitting a single value is permitted. - Return value: the number of items stored in the slot after adding
@vals. - Side effects: none.
- Exceptions: will call
croak()if no input parameters are specified, or if any of the objects in@valsis not an instance of classBio::MAGE::Description::Description.
- Input parameters: the list of values
π distanceUnit π
Methods for the distanceUnit association.
From the MAGE-OM documentation:
The units the fiducial is measured in.
$val = $fiducial->setDistanceUnit($val)β the restricted setter method for thedistanceUnitassociation.- Input parameters: the value to which the
distanceUnitassociation will be set : one of the accepted enumerated values. - Return value: the current value of the
distanceUnitassociation : one of the accepted enumerated values. - Side effects: none.
- Exceptions: will call
croak()if no input parameters are specified, or if too many input parameters are specified, or if$valis not an instance of classBio::MAGE::Measurement::DistanceUnit.
- Input parameters: the value to which the
$val = $fiducial->getDistanceUnit()β the restricted getter method for thedistanceUnitassociation.- Input parameters: none.
- Return value: the current value of the
distanceUnitassociation : an instance of typeBio::MAGE::Measurement::DistanceUnit. π - Side effects: none.
- Exceptions: will call
croak()if any input parameters are specified.
π₯ security π₯
Methods for the security association.
From the MAGE-OM documentation:
Information on the security for the instance of the class.
$val = $fiducial->setSecurity($val)β the restricted setter method for thesecurityassociation.- Input parameters: the value to which the
securityassociation will be set : one of the accepted enumerated values. - Return value: the current value of the
securityassociation : one of the accepted enumerated values. - Side effects: none.
- Exceptions: will call
croak()if no input parameters are specified, or if too many input parameters are specified, or if$valis not an instance of classBio::MAGE::AuditAndSecurity::Security.
- Input parameters: the value to which the
$val = $fiducial->getSecurity()β the restricted getter method for thesecurityassociation.- Input parameters: none.
- Return value: the current value of the
securityassociation : an instance of typeBio::MAGE::AuditAndSecurity::Security. - Side effects: none.
- Exceptions: will call
croak()if any input parameters are specified. π
β fiducialType β
Methods for the fiducialType association.
From the MAGE-OM documentation:
A descriptive string that indicates the type of a fiducial (e.g. the chrome border on an Affymetrix array, a laser ablation mark).
$val = $fiducial->setFiducialType($val)β the restricted setter method for thefiducialTypeassociation.- Input parameters: the value to which the
fiducialTypeassociation will be set : one of the accepted enumerated values. - Return value: the current value of the
fiducialTypeassociation : one of the accepted enumerated values. - Side effects: none.
- Exceptions: will call
croak()if no input parameters are specified, or if too many input parameters are specified, or if$valis not an instance of classBio::MAGE::Description::OntologyEntry.
- Input parameters: the value to which the
$val = $fiducial->getFiducialType()β the restricted getter method for thefiducialTypeassociation.- Input parameters: none.
- Return value: the current value of the
fiducialTypeassociation : an instance of typeBio::MAGE::Description::OntologyEntry. π - Side effects: none.
- Exceptions: will call
croak()if any input parameters are specified.
and then, right at the end, here's the initialize sub β yes, literally just vibing there doing the absolute bare minimum and honestly? iconic. π
sub initialize {
my $self = shift;
return 1;
}
π SLOTS, ATTRIBUTES, AND ASSOCIATIONS π
Okay bestie, real talk β in the Perl implementation of MAGE-OM classes, there are three different flavors of class data members, and you gotta know which is which: "slots", "attributes", and "associations". Let's break it down.
β¨ SLOTS β¨
So this API uses the word "slot" for a data member that was not in the UML model at all β it's there for mainly internal purposes. Translation? Use only if you understand the inner workings of the API. Not me warning you twice, it's literally in the docs. π
Most often, slots get used by generic methods β think the ones in the XML writing and reading classes.
Slots are implemented with unified getter/setter methods, and they all look like this:
$var = $obj->slot_name();β retrieves the current value of the slot.$new_var = $obj->slot_name($new_var);β stores$new_varin the slot, and the return value is also$new_var.@names = $obj->get_slot_names()β returns the list of all slots in the class.
DATA CHECKING: No data type checking is made for these methods. π«£ Nothing. Zero. She's free-spirited like that.
πΈ ATTRIBUTES AND ASSOCIATIONS πΈ
Now these two β "attribute" and "association" β are the data members that were specified directly from the UML model. So they're the legit, documented, main-character ones. π
In the Perl implementation of MAGE-OM classes, association and attribute accessors are implemented using three separate methods:
get*β retrieves the current value.- NOTE: for associations, if the association has list cardinality, an array reference is returned.
- DATA CHECKING: ensure that no argument is provided.
set*β sets the current value, replacing any existing value.- NOTE: for associations, if the association has list cardinality, the argument must be an array reference. Because of this, you probably should be using the
add*methods instead. (the wayset*is lowkey a trap here π) - DATA CHECKING: for attributes, ensure that a single value is provided as the argument. For associations, if the association has list cardinality, ensure that the argument is a reference to an array of instances of the correct MAGE-OM class; otherwise ensure that there is a single argument of the correct MAGE-OM class.
- NOTE: for associations, if the association has list cardinality, the argument must be an array reference. Because of this, you probably should be using the
add*β NOTE: only present in associations with list cardinality.- Appends a list of objects to any values that may already be stored in the association.
- DATA CHECKING: ensure that all arguments are of the correct MAGE-OM class.
π§ GENERIC METHODS π§
The unified base class of all MAGE-OM classes, Bio::MAGE::Base, hooks you up with a set of generic methods that will operate on slots, attributes, and associations all the same:
$val = $obj->get_slot($name)
\@list_ref = $obj->get_slots(@name_list);
$val = $obj->set_slot($name,$val)
$obj->set_slots(%parameters)
$obj->set_slots(\@name_list, \@value_list)
See elsewhere in this page for a detailed description of these methods. π
π BUGS
Found something broken? Please send bug reports to the project mailing list: (mged-mage 'at' lists 'dot' sf 'dot' net) β they wanna hear about it fr fr.
π AUTHOR
Jason E. Stewart (jasons 'at' cpan 'dot' org)
π SEE ALSO
π POD ERRORS
Hey! The above document had some coding errors, which are explained below β and honestly? Relatable. The doc itself is a little messy and we respect that. π
- Around line 395:
'=item' outside of any '=over'
- Around line 480:
You forgot a '=back' before '=head2'
- Around line 508:
Expected '=item 2'
- Around line 513:
Expected '=item 3'
- Around line 518:
Expected '=item 4'
And that's a wrap, babe π this page ships as perl v5.32.0, dated 2020-11-27 β vintage, iconic, still serving. Go forth and use your slots responsibly. π
β¨
π¦ where this page comes from
- debian bookworm: libbio-mage-perl 20030502.3-6 Β· MIT
- debian trixie: libbio-mage-perl 20030502.3-6 Β· MIT
- ubuntu jammy: libbio-mage-perl 20030502.3-6 Β· MIT
- ubuntu noble: libbio-mage-perl 20030502.3-6 Β· MIT
- ubuntu resolute: libbio-mage-perl 20030502.3-6 Β· MIT
- ubuntu stonking: libbio-mage-perl 20030502.3-6 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms