dt('Prints sequences that match specified categories.'), 'options' => array( 'org' => dt('The organism\'s common name. If specified, features for this organism will be retrieved.'), 'type' => dt('The type of feature to retrieve (e.g. mRNA). All features that match this type will be retrieved.'), 'name' => dt('The name of the feature to retrieve.'), 'up' => dt('An integer value specifying the number of upstream bases to include.'), 'down' => dt('An integer value specifying the number of downstream bases to incldue.'), 'out' => dt('The output format. Valid options are "fasta_html", "fasta_txt" and raw.'), 'parent' => dt('Set this argument to 1 to retrieve the sequence from the parent in an alignment rather than the residues column of the feature itself.'), 'agg' => dt('Set this argument to 1 to aggregate sub features into a single sequence. This is useful, for example, for obtaining CDS sequence from an mRNA'), ), 'examples' => array( 'Standard example' => 'drush tripal-current-job', ), 'aliases' => array('trp-get-seq'), ); return $items; } /** * Executes jobs in the Tripal Jobs Queue * * NOTE: The following code is executed when drush 'trpjob-run' or 'drush tripal-launch-jobs' is called */ function drush_tripal_feature_tripal_get_sequence() { $org_commonname = drush_get_option('org'); $type = drush_get_option('type'); $feature_name = drush_get_option('name'); $upstream = drush_get_option('up'); $downstream = drush_get_option('down'); $output_format = drush_get_option('out'); $derive_from_parent = drush_get_option('parent'); $aggregate = drush_get_option('agg'); if (!$output_format) { $output_format = 'fasta_txt'; } if (!$type and !$feature_name and !$org_commonname) { print "Please provide a type, feature name or organism common name\n"; return; } // get the list of features $vars = array(); $sql = "SELECT DISTINCT F.feature_id, F.name ". "FROM feature F ". " INNER JOIN organism O on O.organism_id = F.organism_id ". " INNER JOIN cvterm CVT on CVT.cvterm_id = F.type_id ". "WHERE (1=1) "; if ($org_commonname) { $sql .= "AND O.common_name = '%s' "; $vars[] = $org_commonname; } if ($type) { $sql .= "AND CVT.name = '%s' "; $vars[] = $type; } if ($feature_name) { $sql .= "AND F.name = '%s'"; $vars[] = $feature_name; } $num_bases_per_line = 50; $q = chado_query($sql, $vars); while ($feature = db_fetch_object($q)) { $feature_id = $feature->feature_id; $feature_name = $feature->name; $sequence = trpial_feature_get_formatted_sequence($feature_id, $feature_name, $num_bases_per_line, $derive_from_parent, $aggregate, $output_format, $upstream, $downstream); print $sequence; } }