Many experiments are being performed using multiple tracer compounds per animal and multiple isotopes per tracer compound. Natural isotope correction for these experiments (esp. ones with multiple isotopes per tracer) is often done using IsoCor13C15N. These type of experiments must be able to be stored in TraceBase.
Feature Description
PeakData from IsoCorr13C15N files should be loadable without modification of the data files. Since IsoCorr13C15N outputs only corrected data in a .csv file, loading can be handled much like the case where AccuCor files are .csv files without the original data (see https://github.com/Princeton-LSI-ResearchComputing/tracebase/pull/218).
Single labeled IsoCor data (#349) likely does not require as many design changes. It could be part of the same PR, or could be handled separately, depending on the developer's preference and the timing of the work.
Alternatives Considered
None
Comment
ISSUE OWNER SECTION
Assumptions
Validation happens implicitly on record creation
Requirements
[x] PeakDataLabel records are created
[x] PeakDataLabel records added are validated (using existing (/implicit checks) code)
- [ ] Errors are caught and buffered to be raised after all data has been processed
[x] No Isocorr/Accucor data file modifications are necessary
[x] No data is silently skipped without explicit user intention
[x] Processes the new sample table format templated here that is described in #400.
[x] Make sure sample table data is correct and follows the new template
[x] Edit site description on home page to include IsoCorr
[x] Replace the old default sample table headers with the new ones
[x] For every row in the corrected isocorr data (this will not be done for accucor corrected data):
[x] Obtain the tracers from the related sample row
[x] Extract the union of all labeled elements from the infusate
[x] Record a labeled count for every element also in the measured compound. If the count for that element is missing, record a count of 0
[x] In the case of the "C12 PARENT" record, instead of recording a mass_number of (12 for only carbon), extract the elements and mass numbers from the tracers in the sample table record in the same way as above (if present in the measured compound)
Limitations
Old sample table headers will not be retained for backward compatibility
[x] Modify the Tracer Concentrations column comment/description to reflect the format described in #400
[x] Copy new sample table template to the example study (modified for the new template - see next item)
[x] Call parsing code for tracer/label values
[x] Instead of parsing the original sheet to get the labeled element(s), I'll add a DB query of the Animal Model as loaded from the sample table to get the elements and their mass numbers
Tests
[x] Fix tests that load existing/updated accucor example data with multiple tracers/labels
[x] Multiple labels: DataRepo/example_data/obob_fasted_glc_lac_gln_ala_multiple_labels- [ ] Load a multiple tracer isocorr file with a tracer error and assert that an exception is thrown that mentions an issue with the tracer- [ ] Load a multiple label isocorr file with a label error and assert that an exception is thrown that mentions an issue with the tracer
[x] Check the manager tests to make sure all cases pass (e.g. multiple child records and filtering)
FEATURE DESCRIPTION
Feature Inspiration
Many experiments are being performed using multiple tracer compounds per animal and multiple isotopes per tracer compound. Natural isotope correction for these experiments (esp. ones with multiple isotopes per tracer) is often done using IsoCor13C15N. These type of experiments must be able to be stored in TraceBase.
Feature Description
PeakData from IsoCorr13C15N files should be loadable without modification of the data files. Since IsoCorr13C15N outputs only corrected data in a .csv file, loading can be handled much like the case where AccuCor files are .csv files without the original data (see https://github.com/Princeton-LSI-ResearchComputing/tracebase/pull/218).
Single labeled IsoCor data (#349) likely does not require as many design changes. It could be part of the same PR, or could be handled separately, depending on the developer's preference and the timing of the work.
Alternatives Considered
None
Comment
ISSUE OWNER SECTION
Assumptions
Requirements
- [ ] Errors are caught and buffered to be raised after all data has been processedLimitations
Affected/Changed Components
DataRepo/utils/accucor_data_loader.py
DataRepo/management/commands/load_accucor_msruns.py
DataRepo/templates/home.html
DataRepo/example_data/obob_fasted_ace_glycerol_3hb_citrate_eaa_fa_multiple_tracers
DataRepo/example_data/obob_fasted_glc_lac_gln_ala_multiple_labels
DESIGN
GUI Change description
none
Code Change Description (Pseudocode optional)
Tests
- [ ] DataRepo.tests.test_models.TracerRateTestsDataRepo/example_data/obob_fasted_ace_glycerol_3hb_citrate_eaa_fa_multiple_tracers
DataRepo/example_data/obob_fasted_glc_lac_gln_ala_multiple_labels
- [ ] Load a multiple tracer isocorr file with a tracer error and assert that an exception is thrown that mentions an issue with the tracer- [ ] Load a multiple label isocorr file with a label error and assert that an exception is thrown that mentions an issue with the tracer