AllenNeuralDynamics / aind-data-schema

A library that defines AIND data schema and validates JSON.
MIT License
23 stars 17 forks source link

Revisit injection material fields now that TARS is integrated #626

Closed saskiad closed 10 months ago

saskiad commented 11 months ago

Eg. the three name fields are a lot. We want the virus prep alias, the plasmid alias, and when possible, the Addgene RRID... might want to refer to them as TARS ID rather than name/alias?

Here's a current example:

{
                    "name": "AAV-PHP-eB_7x-TRE-tDTomato",
                    "material_id": "AiV300007",
                    "full_genome_name": "AAV-PHP-eB_7x-TRE-tDTomato",
                    "plasmid_name": "AiP300001",
                    "genome_copy": 180000000000,
                    "titer": 15000000000000,
                    "titer_unit": "gc/mL",
                    "concentration": null,
                    "concentration_unit": null,
                    "prep_lot_number": "VT3216g",
                    "prep_date": "2022-02-03",
                    "prep_type": "Purified",
                    "prep_protocol": "SOP#VC003"
}

"material_id" is the viral prep lot alias. Let's call this virus_TARS_id "plasmid_name" is the plasmid alias. Let's call this plasmid_TARS_id and there's no place for an external facing RRID (Addgene ID) which we'd ideally have in here. Let's add rrid as a PIDName, Technically, the Addgene ID is a RRID (eg. "RRID:Addgene_198508") ... I feel like we need to go through our TARS entries and add rrid alongside the addgene ids. It's an existing field, just isn't populated.

saskiad commented 11 months ago

@mekhlakapoor I'm generating metadata for the exaspim data for the workshop coming up and in ingesting some virus constructs wrestling with the class a little bit. I'd like to update our injection materials class based on this, so I want to give you visibility as you are starting to pull things from TARS. I can do this asap after the v2 update, but want you to know. I think you'll have plenty to chew on reading things from TARS already, so this will mostly just be renaming things and maybe adding one field.

saskiad commented 11 months ago

There's a different issue to fix, which is that not all injection materials are viruses. This is why we have concentration in addition to titer. But I'm thinking of making injection_materials a list of a Union of Virus Prep and ... other materials. I can almost use Reagent for the other material, but we want a concentration, so it will need it's own class.