123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <?php
- namespace Tests;
- use StatonLab\TripalTestSuite\DBTransaction;
- use StatonLab\TripalTestSuite\TripalTestCase;
- class OBOImporterTest extends TripalTestCase {
- // Uncomment to auto start and rollback db transactions per test method.
- use DBTransaction;
- /**
- * @group obo
- * @ticket 525
- */
- public function test_PTO_loads_colon_issue() {
- $name = 'core_test_PTO_mini';
- $path = __DIR__ . '/../example_files/pto_colon.obo';
- $this->load_obo($name, $path);
- $exists = db_select('chado.cv', 'c')
- ->fields('c', ['cv_id'])
- ->condition('name', 'core_test_PTO_mini')
- ->execute()
- ->fetchField();
- $this->assertNotFalse($exists);
- //hte colon splitting issue: a new CV will created named fatty acid 18
- $exists = db_select('chado.cv', 'c')
- ->fields('c', ['cv_id'])
- ->condition('name', 'fatty acid 18')
- ->execute()
- ->fetchField();
- $this->assertFalse($exists);
- }
- /**
- * @group obo
- */
- public function testGO_SLIM_load() {
- $name = 'core_test_goslim_plant';
- $path = 'http://www.geneontology.org/ontology/subsets/goslim_plant.obo';
- $this->load_obo($name, $path);
- $exists = db_select('chado.cv', 'c')
- ->fields('c', ['cv_id'])
- ->condition('name', 'biological_process')
- ->execute()
- ->fetchField();
- $this->assertNotFalse($exists);
-
- $exists = db_select('chado.cv', 'c')
- ->fields('c', ['cv_id'])
- ->condition('name', 'cellular_component')
- ->execute()
- ->fetchField();
- $this->assertNotFalse($exists);
-
- $exists = db_select('chado.cv', 'c')
- ->fields('c', ['cv_id'])
- ->condition('name', 'molecular_function')
- ->execute()
- ->fetchField();
- $this->assertNotFalse($exists);
-
-
- $sql = "
- SELECT DISTINCT CVTP.value
- FROM {cvtermprop} CVTP
- INNER JOIN {cvterm} CVTPT on CVTPT.cvterm_id = CVTP.type_id
- INNER JOIN {cvterm} CVT on CVT.cvterm_id = CVTP.cvterm_id
- INNER JOIN {dbxref} DBX on CVT.dbxref_id = DBX.dbxref_id
- INNER JOIN {db} DB on DB.db_id = DBX.db_id
- WHERE CVTPT.name = 'Subgroup' and DB.name = 'GO' and CVTP.value = 'goslim_plant'
- ";
- $exists = chado_query($sql)->fetchField();
- $this->assertNotFalse($exists);
- }
- private function load_obo($name,$path){
- $obo_id = db_select('public.tripal_cv_obo', 't')
- ->fields('t', ['obo_id'])
- ->condition('t.name', $name)
- ->execute()
- ->fetchField();
- if (!$obo_id) {
- $obo_id = db_insert('public.tripal_cv_obo')
- ->fields(['name' => $name, 'path' => $path])
- ->execute();
- }
- $run_args = ['obo_id' => $obo_id];
- module_load_include('inc', 'tripal_chado', 'includes/TripalImporter/OBOImporter');
- $importer = new \OBOImporter();
- $importer->create($run_args);
- $importer->prepareFiles();
- $importer->run();
- }
- /**
- * @throws \Exception
- * @group obo
- * @ticket 525
- */
- public function test_relationships_in_SO_exist() {
- // step 1: drop the SO CV and CASCADE.
- $result = chado_query("DELETE FROM {cv} WHERE name = 'sequence'");
- $result = chado_query("DELETE FROM {db} WHERE name = 'SO'");
- // step 2: re-add SO.
- $name = 'Sequence Ontology';
- $path = 'http://purl.obolibrary.org/obo/so.obo';
- $this->load_obo($name, $path);
- $sql = "SELECT CVT.name, CVTSYN.synonym
- FROM {cvterm} CVT
- INNER JOIN {dbxref} DBX on DBX.dbxref_id = CVT.dbxref_id
- INNER JOIN {db} on DB.db_id = DBX.db_id
- LEFT JOIN {cvtermsynonym} CVTSYN on CVTSYN.cvterm_id = CVT.cvterm_id
- WHERE DB.name = 'SO' and CVT.name = 'supercontig'
- ORDER BY DBX.accession";
- $results = chado_query($sql)->fetchAll();
- $result = $results[0];
- $this->assertNotNull($result);
- $this->assertNotEmpty($result);
- $this->assertEquals("scaffold", $result->synonym);
- }
- }
|