function tripal_get_fasta_defline
2.x tripal_feature.api.inc | tripal_get_fasta_defline($feature, $notes = '', $featureloc = NULL, $type = '', $length = 0) |
3.x tripal_chado.module.DEPRECATED.api.inc | tripal_get_fasta_defline($feature, $notes = '', $featureloc = null, $type = '', $length = 0) |
Returns a definition line that can be used in a FASTA file
Parameters
$feature: A single feature object containing all the fields from the chado.feature table. Best case is to provide an object generated by the chado_generate_var() function.
$notes: Optional: additional notes to be added to the definition line
$featureloc: Optional: a single featureloc object generated using chado_generate_var that contains a record from the chado.featureloc table. Provide this if the sequence was obtained by using the alignment rather than from the feature.residues column
$type: Optional: the type of sequence. By default the feature type is used.
$length: Optional: the length of the sequence
Return value
A string of the format: uniquename|name|type|feature_id or if an alignment: srcfeature_name:fmin..fmax[+-]; alignment of uniquename|name|type|feature_id
- tripal_feature_load_featureloc_sequences in tripal_feature/
theme/ tripal_feature.theme.inc - Get the sequence this feature is located on
- tripal_feature_sequence.tpl.php in tripal_feature/
theme/ templates/ tripal_feature_sequence.tpl.php - tripal_get_feature_sequences in tripal_feature/
api/ tripal_feature.api.inc - Retrieves the sequences for a given feature.
File
- tripal_feature/
api/ tripal_feature.api.inc, line 663 - Provides an application programming interface (API) for working with features
Code
function tripal_get_fasta_defline($feature, $notes = '', $featureloc = NULL, $type = '', $length = 0) {
// make sure the featureloc object has the srcfeature if not, then add it
if ($featureloc) {
if (!is_object($featureloc->srcfeature_id)) {
$featureloc->srcfeature_id = chado_generate_var('feature', array('feature_id' => $featureloc->srcfeature_id));
}
if (!is_object($featureloc->srcfeature_id->organism_id)) {
$featureloc->srcfeature_id->organism_id = chado_generate_var('organism', array('organism_id' => $featureloc->srcfeature_id->organism_id));
}
}
// make sure the feature object has the organism if not, then add it
if (!is_object($feature->organism_id)) {
$feature->organism_id = chado_generate_var('organism', array('organism_id' => $feature->organism_id));
}
// if a type is not provided then use the default type
if (!$type) {
$type = $feature->type_id->name;
}
// construct the definition line
$defline = $feature->uniquename . " " .
'ID=' . $feature->uniquename . "|" .
'Name=' . $feature->name . "|" .
'organism=' . $feature->organism_id->genus . " " . $feature->organism_id->species . "|" .
'type=' . $type . '|';
if ($length > 0) {
$defline .= "length=" . $length . "bp|";
}
if ($featureloc) {
$defline .= "location=Sequence derived from alignment at " . tripal_get_location_string($featureloc);
$defline .= " (" . $featureloc->srcfeature_id->organism_id->genus . " " . $featureloc->srcfeature_id->organism_id->species . ")|";
}
if ($notes) {
$defline .= "Notes=$notes|";
}
$defline = substr($defline, 0, -1); // remove the trailing |
return $defline;
}