As a Tripal developer, one of the fun things I get to do is contribute not only to the Tripal project, but also other parts of GMOD, the Generic Model Organism Database Project. I attended the January 10th 2018 GMOD hackathon at the Plant and Animal Genome XXVI conference hoping to make a few small changes to Chado, the SQL database schema that HardwoodGenomics uses with Tripal.
It was a really great day and I learned a lot about both Chado and SQL working with Stephen Ficklin, Scott Cain, and Emily Grau (others were in attendance, this was the Chado team).
I wanted to outline a bit of what we accomplished and what it means for the 1.4 Chado release! Check out the current progress and issues on the project GitHub.
We actually had a backlog of issues tracked in a google spreadsheet, so the first order of business was to convert those into Github issues to easier delegate and discuss them. Thinking about all of these issues for modules I had never used was really helpful in understanding Chado holistically, rather than as a ruleset I stuck my data into for no good reason.
Learn about pushing out a new version of Chado! It's a bunch of perl scripts that combine all the modules into a single SQL file.
This list may continue to grow, but I was able to make the following contributions at the meeting!
I'd like to talk a little more about the Controlled Vocabulary term (CVterm) prop values issue, because I think it's a great improvement to Chado, especially as Tripal 3 embraces associating all content with CVterms.
We created a cvalue_id column for all prop tables! This sounds like a simple change but it's awesome. Right now, if you have a property set, what it does is describe an Chado record with a CVterm and a value. That value is free text. Now, you can choose to specify a cvalue_id (cvterm value id) instead of free text.
What does this actually mean?
Imagine I am entering Biological samples into my Chado database, and I want to assign a record property for the tissue the sample was collected from. I would use the CVterm tissue, and a value that says what tissue: leaf, bud, flower, stem, root. Only tissue gets a CVterm: the others are free text! Now I can easily leverage, say, the Plant Trait Ontology, so I can use a Cvterm to set not just tissue by the tissue value!
The Tripal Analysis Expression module currently allows you to assign biosample property types to CVterms. With this change, I look forward to implementing property value CVterm assignment as well.
As we keep on working on v1.4, hopefully I can write more posts on Chado updates and what Tripal developers need to know.