We have identified three main areas of responsibility where we feel it would be useful to keep track of the researcher responsible for certain data in TraceBase. This will allow someone to get additional clarifying details regarding details that are not captured in TraceBase. The three areas are:
Wet lab work - animal husbandry, treatments, and sample collection
Mass Spectrometer - preparation of the sample for use in the mass spectrometer
Peak picking - evalutation of the mass spectrometer data and the extraction of peak values that are associated with compounds
Feature Description
In order to track the researcher responsible for the three areas identified above, we propose that an "owner" record be associated with each of the following records:
Animal - the "owner" of an animal is intended to identify the person responsible for the animal, the treatments applied to the animal, and the samples collected from the animal
MSRun - the "performer" of the MSRun is intended to identify the person responsible for preparing the samples for the mass spec and determining the protocols used
PeakGroupSet - the "analyst" of the PeakGroupSet is intended to identify the person responsible for making the determination of the PeakGroup values and associating them with a particular compound. In practical terms, the person who ran (El-)Maven.
Alternatives Considered
Instead of creating a separate "Researcher" table, we could simply store the researchers name much like we do now.
Comment
Our discussions to date have led to a few ideas on how to address the desired features:
Remove the researcher association from the Sample table
Add an association of a reseacher to the Animal table as the "owner"
Clarify the association of a researcher to the MSRun table is the "performer"
Add an association of a resarcher to the PeakGroupSet table as the "analyst"
ISSUE OWNER SECTION
Assumptions
Person (researcher) records will be loaded into the database prior to loading the Animal/Sample/AccuCor records. This could be done via fixtures (similar to Tissues) and/or done via the Admin interface.
Requirements
Specifications of the researchers when loading data must be unambiguous
Limitations
Situations where multiple researchers split responsibilies (e.g. one owns the Animal and another collects samples) will not be addressed. Such cases will need to be handled with workarounds on a case by case basis (e.g. by creating two Animal records).
Affected/Changed Components
DataRepo/models.py
DataRepo/utils.py
DataRepo/load_animals_and_samples.py
DataRepo/load_samples.py
DataRepo/load_msruns.py
DataRepo/templates/DataRepo/animal*.html
DataRepo/templates/DataRepo/sample*.html
DataRepo/templates/DataRepo/msrun*.html
DataRepo/templates/DataRepo/peakgroupset*.html
Advanced Search components
DESIGN
GUI Change description
Describe changes the user will see.
Code Change Description (Pseudocode optional)
Create a new table to hold person records (e.g.Researcher) with name and email fields
Remove the researcher field from the Sample table
Add a relationship called owner to the Animal table that links to the new person table
Change the researcher field on the MSRun table to be a relationship called performer
Add an analyst relationship to the PeakGroupSet table
Since this is a fairly large change, and much of these tasks could be done indpendently, the work could be split into multiple PRs. If desired, new issues could be created for specific bullet points above to specify further detail and clarify the separation of concerns.
Tests
A test should be planned for each requirement (above), where possible.
FEATURE DESCRIPTION
Feature Inspiration
We have identified three main areas of responsibility where we feel it would be useful to keep track of the researcher responsible for certain data in TraceBase. This will allow someone to get additional clarifying details regarding details that are not captured in TraceBase. The three areas are:
Feature Description
In order to track the researcher responsible for the three areas identified above, we propose that an "owner" record be associated with each of the following records:
Alternatives Considered
Instead of creating a separate "Researcher" table, we could simply store the researchers name much like we do now.
Comment
Our discussions to date have led to a few ideas on how to address the desired features:
ISSUE OWNER SECTION
Assumptions
Requirements
Limitations
Animal
records).Affected/Changed Components
DataRepo/models.py
DataRepo/utils.py
DataRepo/load_animals_and_samples.py
DataRepo/load_samples.py
DataRepo/load_msruns.py
DataRepo/templates/DataRepo/animal*.html
DataRepo/templates/DataRepo/sample*.html
DataRepo/templates/DataRepo/msrun*.html
DataRepo/templates/DataRepo/peakgroupset*.html
DESIGN
GUI Change description
Describe changes the user will see.
Code Change Description (Pseudocode optional)
Researcher
) withname
andemail
fieldsresearcher
field from theSample
tableowner
to theAnimal
table that links to the new person tableresearcher
field on theMSRun
table to be a relationship calledperformer
analyst
relationship to thePeakGroupSet
tableSince this is a fairly large change, and much of these tasks could be done indpendently, the work could be split into multiple PRs. If desired, new issues could be created for specific bullet points above to specify further detail and clarify the separation of concerns.
Tests
A test should be planned for each requirement (above), where possible.