t('The base table for blastdb node'), 'fields' => array( 'nid' => array( 'description' => t('The primary identifier for a node.'), 'type' => 'serial', 'unsigned' => true, 'not null' => true, ), 'name' => array( 'description' => t('The human-readable name of the blast database.'), 'type' => 'varchar', 'length' => 255, 'not null' => true, ), 'path' => array( 'description' => t('The full path and filename prefix of the blast database.'), 'type' => 'varchar', 'length' => 1023, 'not null' => true, ), 'dbtype' => array( 'description' => t('Type of the blast database. Should be either n for nucleotide or p for protein.'), 'type' => 'varchar', 'length' => 15, 'not null' => true, ), 'dbxref_id_regex' => array( 'description' => t('The Regular Expression to use to extract the id from the FASTA header of the BLAST database hit.'), 'type' => 'text', ), 'dbxref_db_id' => array( 'description' => t('The Database records from this BLAST Database reference.'), 'type' => 'int', ), 'dbxref_linkout_type' => array( 'description' => t('Type of linkout to be used for this database reference.'), 'type' => 'varchar', 'length' => 50, 'not null' => true, 'default' => 'link' ), ), 'indexes' => array( 'name' => array('name'), ), 'primary key' => array('nid'), 'unique keys' => array( 'nid' => array('nid'), ), ); // BLAST JOBS // ------------------------ // Keeps track of additional information related to tripal blast jobs. $schema['blastjob'] = array( 'description' => t('Keeps track of additional information related to tripal blast jobs.'), 'fields' => array( 'job_id' => array( 'description' => t('The Tripal job_id for the blast job.'), 'type' => 'int', 'unsigned' => true, 'not null' => true, ), 'blast_program' => array( 'description' => t('The program to use to run the blast (ie: blastn, blastp, etc.).'), 'type' => 'varchar', 'length' => 20, 'not null' => true, ), 'target_blastdb' => array( 'description' => t('The nid of the blastdb used to search against; NULL if target was uploaded.'), 'type' => 'int', 'unsigned' => true, ), 'target_file' => array( 'description' => t('The absolute path to the uploaded blast database after it was run through makeblastdb; NULL if target was NOT uploaded.'), 'type' => 'text', ), 'query_file' => array( 'description' => t('The absolute path to the query file.'), 'type' => 'text', ), 'result_filestub' => array( 'description' => t('The absolute path and filename (without extension) of the blast results.'), 'type' => 'text', ), 'options' => array( 'description' => t('A serialized array of options selected for the blast job where the key is the machine name of the option used when calling blast (ie: gapextend) and the value is the value of the option.'), 'type' => 'text', ), ), 'primary key' => array('job_id'), 'foreign keys' => array( 'job_id' => array( 'table' => 'tripal_jobs', 'columns' => array( 'job_id' => 'job_id', ), ), ), ); return $schema; } /** * Make BlastDB type more readable & support Link-outs for BLAST Hits. */ function blast_ui_update_7101() { // Changing the length of the type field to allow it to be more readable. db_change_field('blastdb', 'dbtype', 'dbtype', array( 'description' => t('Type of the blast database. Should be either n for nucleotide or p for protein.'), 'type' => 'varchar', 'length' => 15, 'not null' => true, ) ); // Add fields related to Link-outs db_add_field( 'blastdb', 'dbxref_id_regex', array( 'description' => t('The Regular Expression to use to extract the id from the FASTA header of the BLAST database hit.'), 'type' => 'text', ) ); db_add_field( 'blastdb', 'dbxref_db_id', array( 'description' => t('The Database records from this BLAST Database reference.'), 'type' => 'int', ) ); } /** * Support complex types of link-outs such as GBrowse & JBrowse coordinate links. */ function blast_ui_update_7102() { db_add_field( 'blastdb', 'dbxref_linkout_type', array( 'description' => t('Type of linkout to be used for this database reference.'), 'type' => 'varchar', 'length' => 50, 'not null' => true, 'default' => 'link' ) ); } /** * Add saving of blast job information for recent job list & resubmit functionality. */ function blast_ui_update_7103() { $schema = array(); // Keeps track of additional information related to tripal blast jobs. $schema['blastjob'] = array( 'description' => t('Keeps track of additional information related to tripal blast jobs.'), 'fields' => array( 'job_id' => array( 'description' => t('The Tripal job_id for the blast job.'), 'type' => 'int', 'unsigned' => true, 'not null' => true, ), 'blast_program' => array( 'description' => t('The program to use to run the blast (ie: blastn, blastp, etc.).'), 'type' => 'varchar', 'length' => 20, 'not null' => true, ), 'target_blastdb' => array( 'description' => t('The nid of the blastdb used to search against; NULL if target was uploaded.'), 'type' => 'int', 'unsigned' => true, ), 'target_file' => array( 'description' => t('The absolute path to the uploaded blast database after it was run through makeblastdb; NULL if target was NOT uploaded.'), 'type' => 'text', ), 'query_file' => array( 'description' => t('The absolute path to the query file.'), 'type' => 'text', ), 'result_filestub' => array( 'description' => t('The absolute path and filename (without extension) of the blast results.'), 'type' => 'text', ), 'options' => array( 'description' => t('A serialized array of options selected for the blast job where the key is the machine name of the option used when calling blast (ie: gapextend) and the value is the value of the option.'), 'type' => 'text', ), ), 'primary key' => array('job_id'), 'foreign keys' => array( 'job_id' => array( 'table' => 'tripal_jobs', 'columns' => array( 'job_id' => 'job_id', ), ), ), ); // First create the tables. db_create_table('blastjob', $schema['blastjob']); }