While refactoring things to make the heater type user-specifiable and the layout obtainable from Glider (#122) for Bilby, it dawned on me that Thermocycler and its components are defined kind of weirdly. In particular, Thermocycler holds two arrays:
where ChannelEndpoint holds, among other things, a heater number as an index into the heaters array:
class ChannelEndpoint(NamedTuple):
heater_no: int
I think that the notion here was that we might want to specify the channels by topology before we actually have the heaters, but thinking about it more, it seems as though it would make more sense to simply have ChannelEndpoint hold its Heater directly.
Migrated from internal repository. Originally created by @EvanKirshenbaum on Aug 22, 2022 at 2:32 PM PDT.
While refactoring things to make the heater type user-specifiable and the layout obtainable from Glider (#122) for Bilby, it dawned on me that
Thermocycler
and its components are defined kind of weirdly. In particular,Thermocycler
holds two arrays:where
ChannelEndpoint
holds, among other things, a heater number as an index into theheaters
array:I think that the notion here was that we might want to specify the channels by topology before we actually have the heaters, but thinking about it more, it seems as though it would make more sense to simply have
ChannelEndpoint
hold itsHeater
directly.Migrated from internal repository. Originally created by @EvanKirshenbaum on Aug 22, 2022 at 2:32 PM PDT.