UofS-Pulse-Binfo / analyzedphenotypes

Tripal/Drupal support for analyzed phenotypic data including data loaders, exporters, trait pages and summaries on germplasm pages.
GNU General Public License v2.0
0 stars 1 forks source link

Configuration form needs a redesign #9

Closed laceysanderson closed 6 years ago

laceysanderson commented 6 years ago

The current configuration for this module is split out over 3 very intuitive forms. This makes it very overwhelming...

Instead, this module should have a single efficient configuration form. While we don't want to go crazy on features (e.g. ajax) this is the first impression administrators get of our module. furthermore it is critical that users configure this module properly as they can't change it once data is uploaded.

Suggested Design:

image image

Notes:

laceysanderson commented 6 years ago

Text for easy copy/paste :-)

This module requires that phenotypic traits be part of a controlled vocabulary.

  • Trait Vocabulary: a container of terms where each term is a phenotypic trait that can be measured in your species of interest. This controlled vocabulary should be specific to a given genus and each term will become a trait page on your Tripal site. If you do not already have a trait vocabulary, you can create it [here] and add terms upfront and/or automatically on upload of phenotypic data.
  • Associated Database: Chado requires a "database" container to be associated with all controlled vocabularies. Please select the "database" container you would like to be associated with your trait vocabulary. If needed, create one.
  • Crop Ontology: our experience with breeders has led us to recommend using the trait names your breeder(s) already use in the Trait Vocabulary and then linking them to a more generic crop ontology such as those provided by cropontology.org to facilitate sharing. If you decide to go this route, you can set the species specific crop ontology here and on upload suitable terms will be suggested based on pattern matching.

Please select the appropriate vocabulary for each genus you intend to support phenotypic data for.

Once phenotypic data has been uploaded for a genus, these vocabularies cannot be changed! Please take the time to read the description above and if you have questions, submit a ticket to https://github.com/UofS-Pulse-Binfo/analyzedphenotypes/issues

Chado uses controlled vocabularies extensively to allow for flexible storing of data. As such, this module supports that flexibility to ensure that you have the ability to choose the terms that best support your data.

Please indicate the term we should use to indicate the property/relationship types specified below.

We have helpfully selected what we think are the best ontology terms below. Thus the following configuration is completely optional, although I do recommend you review our choices.

This term indicates that a given property is the associated "genus". For example, this module saves experiments producing phenotypic data as projects and the organism that experiment assays is indicated by adding a "genus" property to it.

Once phenotypic data has been uploaded for a genus, these terms cannot be changed! Please take the time to read the description above and if you have questions, submit a ticket to https://github.com/UofS-Pulse-Binfo/analyzedphenotypes/issues

laceysanderson commented 6 years ago

CV Terms for Defaults

With the exception of those "loaded via Tripal Core", these default cvterm should be loaded when the module is enabled. Please use the following code snippet as an example, for consistency among our modules :-)

  $ontologies['NCIT'] = array(
    'name' => 'NCI Thesaurus OBO Edition',
    'definition' => 'NCIt is a reference terminology that includes broad coverage of the cancer domain, including cancer related diseases, findings and abnormalities.',
    'all terms' => FALSE,
    'terms' => array(
      array(
        'id' => 'NCIT:C86971',
        'name' => 'Modal Chromosome Number',
        'definition' => 'The most common chromosome number within a population or sample.',
      ),
      array(
        'id' => 'NCIT:C19924',
        'name' => 'Principal Investigator',
        'definition' => 'An investigator who is responsible for all aspects of the conduct of a study.',
      ),
      array(
        'id' => 'NCIT:C25714',
        'name' => 'Version',
        'definition' => 'A form or variant of a type or original; one of a sequence of copies of a program, each incorporating new modifications.',
      ),
    ),
);
foreach ($ontologies as $abbrev => $details) {
      // First add the cv.
      tripal_insert_cv($details['name'], $details['definition']);

      // Now add each term.
      foreach ($details['terms'] as $term) {
        $term['cv_name'] = $details['name'];
        tripal_insert_cvterm($term);
      }
}

NOTE: Data Collector: term=collector name; cv=GCP Germplasm Ontology is already available in our system but it cannot be assumed to always be. As such, you need to add it via your module in such a way that it is not duplicated. Make sure to test that your settings in this array match exactly how it is stored in KnowPulse.

laceysanderson commented 6 years ago

In Reference to year, for the moment simply don't set a default for this field. We still have some clarification from the researchers before we can move forward with this term.

To summarize where we're at:

Questions for the biologists:

Where do we currently use year:

Despite the concern, our current plan of action is to stick with the concept of "year". We will create a local cvterm with the definition we decide upon after consulting with the biologists (current favourite is "year measured: The year the phenotypic measurement was taken in. If measurements for a given plot spanned the boundary between calendar years (e.g. Dec30-Jan5) then enter the year the majority of measurements were taken in."). We will also add a caveat to the upload page telling the used to contact us if there is the potential for more then one "planting?" in a single year. Then we will deal with it by adding to the form and to phenotypeprop at a later date.

laceysanderson commented 6 years ago

Done 😀