Add barseq acquisition#1690
Add barseq acquisition#1690dougollerenshaw wants to merge 11 commits into1642-create-instrumentjson-generator-for-barseqfrom
Conversation
| "dx.doi.org/10.17504/protocols.io.n2bvj82q5gk5/v1", | ||
| "dx.doi.org/10.17504/protocols.io.81wgbp4j3vpk/v2" | ||
| ], | ||
| "ethics_review_id": [ |
There was a problem hiding this comment.
there is no iacuc for in vitro experiments.
| "PLACEHOLDER_EXPERIMENTER_1", | ||
| "PLACEHOLDER_EXPERIMENTER_2" | ||
| ], | ||
| "protocol_id": [ |
There was a problem hiding this comment.
why two protocols for the same thing? And why not our own protocol: https://www.protocols.io/view/barseq-2-5-kqdg3ke9qv25/v1
There was a problem hiding this comment.
Those two protocols came from the methods doc that Polina shared. I didn't know about this one. Will add instead.
There was a problem hiding this comment.
maybe confirm first. This is the protocol Yoh uses, so there might be a chance it's not the same?
But, the two protocols you had at first, one was an update of the other, so we should only use the one that's being used.
There was a problem hiding this comment.
Polina confirmed that this new protocol is the correct one.
| { | ||
| "object_type": "Channel", | ||
| "channel_name": "Gene_G", | ||
| "intended_measurement": "Gene sequencing - DNA base G", |
There was a problem hiding this comment.
this is not an appropriate intended measurement. DNA Base G is not a gene.
| "channels": [ | ||
| { | ||
| "object_type": "Channel", | ||
| "channel_name": "Gene_G", |
There was a problem hiding this comment.
Same as next comment: G is not a gene.
| }, | ||
| { | ||
| "object_type": "Channel", | ||
| "channel_name": "Gene_DAPI", |
There was a problem hiding this comment.
same here. Dapi is not a gene
| } | ||
| ], | ||
| "coordinate_system": null, | ||
| "images": [], |
There was a problem hiding this comment.
this needs to be populated. This is what is being imaged.
| ], | ||
| "connections": [] | ||
| }, | ||
| { |
There was a problem hiding this comment.
I'm not sure there should be multiple data streams here. (and I'm not sure there shouldn't, but thinking out loud here). Each round of imaging creates a new image, so I would argue each round of imaging is a separate acquisition. We could decide each round is a separate data stream - that could work.
There was a problem hiding this comment.
I don't have an opinion here. Just need some guidance on how to implement whatever is most sensible.
There was a problem hiding this comment.
If each round creates a distinct raw asset, then each round is a separate acquisition. We need to know how that works.
There was a problem hiding this comment.
I'm not quite sure what to do with that comment. Can you help me turn that into a concrete change to make to the acquisition generator and/or a question to pose to Polina or Xiaoyin?
Are you saying that we should actually be creating three different acquistion.json files?
| ], | ||
| "instrument_id": "Dogwood", | ||
| "acquisition_type": "BarcodeSequencing", | ||
| "notes": "BARseq acquisition of Locus Coeruleus for noradrenergic neuron projection mapping. Specimen: 51 coronal sections (20μm) spanning CCF plates 99-112. Subject 780346 received Sindbis HZ120 virus injection 22-28h pre-harvest. BARseq experiment performed using automation template mounted on microscope. Automated microfluidics setup for reagent delivery.", |
There was a problem hiding this comment.
I'm generally not excited about having notes that contain the information we're trying to encode in the metadata because it enables people to develop bad habits of parsing notes instead of using the metadata properly. Likewise below.
There was a problem hiding this comment.
Notes are less verbose now. I can remove them entirely if you'd prefer.
| ], | ||
| "code": null, | ||
| "notes": "Gene barcode sequencing (7 cycles) using sequential base incorporation imaging", | ||
| "active_devices": [ |
There was a problem hiding this comment.
I don't think we need to list things like objective or spinning disk or filters. The things that have configs or are creating data. So cameras, lasers,
There was a problem hiding this comment.
For filters, there's a field for "emission_filters" in the channel configs. See: https://aind-data-schema.readthedocs.io/en/latest/components/configs.html#channel
And they have a "device_name" field. See https://aind-data-schema.readthedocs.io/en/latest/components/configs.html#deviceconfig
As it stands, the device_names in the emission_filters align with the names in the active_devices. Is this not necessary? Should I retain the names in "emission_filters" and drop them from active_devices, or drop them in both places?
| } | ||
| ], | ||
| "code": null, | ||
| "notes": "Gene barcode sequencing (7 cycles) using sequential base incorporation imaging", |
There was a problem hiding this comment.
This note feels weird to me - I would think saying something like cycle 1 of 7 makes sense, but this isn't the entire 7 cycles, is it?
| "configurations": [ | ||
| { | ||
| "object_type": "Imaging config", | ||
| "device_name": "Ti2-E__0", |
There was a problem hiding this comment.
I'm not sure what device this is - the main microscope? Is this the correct device to pin to? We can use the instrument itself (correct me if I'm wrong @dbirman)
There was a problem hiding this comment.
I think the imaging config here should point to the full instrument_id in this case.
There was a problem hiding this comment.
So the field name should say "device_name": "Dogwood"?
| "channels": [ | ||
| { | ||
| "object_type": "Channel", | ||
| "channel_name": "GeneSeq_G", |
There was a problem hiding this comment.
This is a preference thing, but I would name the channel around the color if that's possible and leave the meaning to the intended measurement.
There was a problem hiding this comment.
We don't yet have the mapping for base to wavelength. And even when we do, I'm afraid there might be some subjectivity in how color names are mapped to wavelength.
I think we have 3 options:
- Leave as is (channel identifies base being imaged)
- Name channels with wavelength (precise, but maybe not intuitive)
- Name channels with color. If we do this, I'll need guidance on how to assign color names.
| { | ||
| "object_type": "Channel", | ||
| "channel_name": "GeneSeq_G", | ||
| "intended_measurement": "Fluorescent signal from sequencing reaction indicating guanine incorporation", |
There was a problem hiding this comment.
Might be better to make this less verbose.
There was a problem hiding this comment.
I think "Guanine" is sufficient, personally.
| }, | ||
| { | ||
| "object_type": "Channel", | ||
| "channel_name": "GeneSeq_DAPI", |
There was a problem hiding this comment.
I'd remove "GeneSeq" since DAPI is not part of the sequencing.
saskiad
left a comment
There was a problem hiding this comment.
More comments - great job on the imaging config. I think the big question is about whether each round is a distinct raw asset or not.
…the instrument_id)
How do we resolve that question? Does it come down to how data is actually stored? Do we need to reach out to Xiaoyin or someone else? |


Work in progress. Lots of ancillary files that we won't actually want in the repo. Remove before merging.