NAME
Bio::Chado::Schema::Util - utility functions shared by Bio::Chado::Schema objects
SYNOPSIS
sub create_organismprops {
my ($self, $props, $opts) = @_;
# process opts
$opts ||= {};
$opts->{cv_name} = 'organism_property'
unless defined $opts->{cv_name};
return Bio::Chado::Schema::Util->create_props
( properties => $props,
options => $opts,
row => $self,
prop_relation_name => 'organismprops',
);
}
DESCRIPTION
Helper functions used by several schema classes.
Important Note: This package is located in the Schema.pm file as secondary package and it haven't a file for itself. Nevertheless, the use will be the same.
PACKAGE METHODS
create_properties
Usage: *::Util->create_properties( row => $self,
properties => { baz => 2, foo => 'bar' },
options => { cv_name => autocreate => 0, ...},
prop_relation_name => 'organismprops',
);
Desc : Chado has a number of <thing>prop tables with a similar
structure. This utility function is used by a number of
modules to create properties in these kinds of tables.
Args : row => the DBIC row object to create properties for,
prop_relation_name => the DBIC relation name for the
properties table to operate on,
e.g. 'featureprops',
properties => hashref of { propname => value, ...},
options => options hashref as:
{
autocreate => 0,
(optional) boolean, if passed, automatically create cv,
cvterm, and dbxref rows if one cannot be found for the
given featureprop name. Default false.
cv_name => cv.name to use for the given featureprops.
Defaults to 'feature_property',
db_name => db.name to use for autocreated dbxrefs,
default 'null',
allow_duplicate_values => default false.
If true, allow duplicate instances of the same cvterm
and value in the properties of the feature. Duplicate
values will have different ranks.
dbxref_accession_prefix => optional, default
'autocreated:',
definitions => optional hashref of:
{ cvterm_name => definition,
}
to load into the cvterm table when autocreating cvterms
}
Ret : hashref of { propname => new row object in property table }
AUTHOR
Robert Buels, <rmb32@cornell.edu>
Naama Menda, <naama.menda@gmail.com>