Skip to content

Commit f8678e2

Browse files
committed
Add Sample tracker to Amplifier data
1 parent d600b0d commit f8678e2

File tree

3 files changed

+235
-85
lines changed

3 files changed

+235
-85
lines changed

src/Extensions/OnixEcephys.bonsai

Lines changed: 91 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<WorkflowBuilder Version="2.8.5"
2+
<WorkflowBuilder Version="2.9.0"
33
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
44
xmlns:rx="clr-namespace:Bonsai.Reactive;assembly=Bonsai.Core"
55
xmlns:harp="clr-namespace:Bonsai.Harp;assembly=Bonsai.Harp"
6+
xmlns:scr="clr-namespace:Bonsai.Scripting.Expressions;assembly=Bonsai.Scripting.Expressions"
67
xmlns="https://bonsai-rx.org/2018/workflow">
78
<Workflow>
89
<Nodes>
@@ -72,6 +73,87 @@
7273
<Expression xsi:type="SubscribeSubject">
7374
<Name>OnixNeuropixelData</Name>
7475
</Expression>
76+
<Expression xsi:type="GroupWorkflow">
77+
<Name>TrackSampleIndex</Name>
78+
<Workflow>
79+
<Nodes>
80+
<Expression xsi:type="WorkflowInput">
81+
<Name>Source1</Name>
82+
</Expression>
83+
<Expression xsi:type="MemberSelector">
84+
<Selector>AmplifierData</Selector>
85+
</Expression>
86+
<Expression xsi:type="MemberSelector">
87+
<Selector>Cols</Selector>
88+
</Expression>
89+
<Expression xsi:type="SubscribeSubject">
90+
<Name>OnixNeuropixelData</Name>
91+
</Expression>
92+
<Expression xsi:type="Combinator">
93+
<Combinator xsi:type="rx:Take">
94+
<rx:Count>1</rx:Count>
95+
</Combinator>
96+
</Expression>
97+
<Expression xsi:type="MemberSelector">
98+
<Selector>AmplifierData.Cols</Selector>
99+
</Expression>
100+
<Expression xsi:type="PropertyMapping">
101+
<PropertyMappings>
102+
<Property Name="Value" />
103+
</PropertyMappings>
104+
</Expression>
105+
<Expression xsi:type="Subtract">
106+
<Operand xsi:type="IntProperty">
107+
<Value>0</Value>
108+
</Operand>
109+
</Expression>
110+
<Expression xsi:type="Combinator">
111+
<Combinator xsi:type="IntProperty">
112+
<Value>0</Value>
113+
</Combinator>
114+
</Expression>
115+
<Expression xsi:type="rx:Scan">
116+
<Workflow>
117+
<Nodes>
118+
<Expression xsi:type="WorkflowInput">
119+
<Name>Source1</Name>
120+
</Expression>
121+
<Expression xsi:type="MemberSelector">
122+
<Selector>Accumulation,Value</Selector>
123+
</Expression>
124+
<Expression xsi:type="Add" />
125+
<Expression xsi:type="WorkflowOutput" />
126+
</Nodes>
127+
<Edges>
128+
<Edge From="0" To="1" Label="Source1" />
129+
<Edge From="1" To="2" Label="Source1" />
130+
<Edge From="2" To="3" Label="Source1" />
131+
</Edges>
132+
</Workflow>
133+
</Expression>
134+
<Expression xsi:type="WorkflowOutput" />
135+
</Nodes>
136+
<Edges>
137+
<Edge From="0" To="1" Label="Source1" />
138+
<Edge From="1" To="2" Label="Source1" />
139+
<Edge From="2" To="7" Label="Source1" />
140+
<Edge From="3" To="4" Label="Source1" />
141+
<Edge From="4" To="5" Label="Source1" />
142+
<Edge From="5" To="6" Label="Source1" />
143+
<Edge From="6" To="7" Label="Source2" />
144+
<Edge From="7" To="9" Label="Source1" />
145+
<Edge From="8" To="9" Label="Source2" />
146+
<Edge From="9" To="10" Label="Source1" />
147+
</Edges>
148+
</Workflow>
149+
</Expression>
150+
<Expression xsi:type="Combinator">
151+
<Combinator xsi:type="rx:Zip" />
152+
</Expression>
153+
<Expression xsi:type="scr:ExpressionTransform">
154+
<scr:Name>Relabel</scr:Name>
155+
<scr:Expression>new(Item1 as Data, Item2 as AccumulatedSamples)</scr:Expression>
156+
</Expression>
75157
<Expression xsi:type="SubscribeSubject">
76158
<Name>HarpTimestamp</Name>
77159
</Expression>
@@ -102,11 +184,15 @@
102184
<Edge From="14" To="15" Label="Source2" />
103185
<Edge From="15" To="16" Label="Source1" />
104186
<Edge From="16" To="17" Label="Source1" />
105-
<Edge From="18" To="21" Label="Source1" />
106-
<Edge From="19" To="20" Label="Source1" />
107-
<Edge From="20" To="21" Label="Source2" />
108-
<Edge From="21" To="22" Label="Source1" />
187+
<Edge From="18" To="19" Label="Source1" />
188+
<Edge From="18" To="20" Label="Source1" />
189+
<Edge From="19" To="20" Label="Source2" />
190+
<Edge From="20" To="21" Label="Source1" />
191+
<Edge From="21" To="24" Label="Source1" />
109192
<Edge From="22" To="23" Label="Source1" />
193+
<Edge From="23" To="24" Label="Source2" />
194+
<Edge From="24" To="25" Label="Source1" />
195+
<Edge From="25" To="26" Label="Source1" />
110196
</Edges>
111197
</Workflow>
112198
</WorkflowBuilder>

src/Extensions/OnixEphys.bonsai

Lines changed: 98 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<WorkflowBuilder Version="2.8.5"
2+
<WorkflowBuilder Version="2.9.0"
33
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
44
xmlns:rx="clr-namespace:Bonsai.Reactive;assembly=Bonsai.Core"
55
xmlns:aeon="clr-namespace:Aeon.Acquisition;assembly=Aeon.Acquisition"
66
xmlns:dsp="clr-namespace:Bonsai.Dsp;assembly=Bonsai.Dsp"
7+
xmlns:io="clr-namespace:Bonsai.IO;assembly=Bonsai.System"
78
xmlns="https://bonsai-rx.org/2018/workflow">
89
<Workflow>
910
<Nodes>
@@ -67,7 +68,10 @@
6768
<Combinator xsi:type="rx:Merge" />
6869
</Expression>
6970
<Expression xsi:type="MemberSelector">
70-
<Selector>Value.Clock</Selector>
71+
<Selector>Value.Data</Selector>
72+
</Expression>
73+
<Expression xsi:type="MemberSelector">
74+
<Selector>Clock</Selector>
7175
</Expression>
7276
<Expression xsi:type="SubscribeSubject">
7377
<Name>Data</Name>
@@ -109,7 +113,10 @@
109113
<Combinator xsi:type="rx:Merge" />
110114
</Expression>
111115
<Expression xsi:type="MemberSelector">
112-
<Selector>Value.HubClock</Selector>
116+
<Selector>Value.Data</Selector>
117+
</Expression>
118+
<Expression xsi:type="MemberSelector">
119+
<Selector>HubClock</Selector>
113120
</Expression>
114121
<Expression xsi:type="SubscribeSubject">
115122
<Name>Data</Name>
@@ -151,7 +158,10 @@
151158
<Combinator xsi:type="rx:Merge" />
152159
</Expression>
153160
<Expression xsi:type="MemberSelector">
154-
<Selector>Value.AmplifierData</Selector>
161+
<Selector>Value.Data</Selector>
162+
</Expression>
163+
<Expression xsi:type="MemberSelector">
164+
<Selector>AmplifierData</Selector>
155165
</Expression>
156166
<Expression xsi:type="SubscribeSubject">
157167
<Name>Data</Name>
@@ -186,6 +196,56 @@
186196
<dsp:Layout>ColumnMajor</dsp:Layout>
187197
</Combinator>
188198
</Expression>
199+
<Expression xsi:type="SubscribeSubject">
200+
<Name>Data</Name>
201+
</Expression>
202+
<Expression xsi:type="Combinator">
203+
<Combinator xsi:type="rx:Merge" />
204+
</Expression>
205+
<Expression xsi:type="MemberSelector">
206+
<Selector>Value.AccumulatedSamples</Selector>
207+
</Expression>
208+
<Expression xsi:type="Combinator">
209+
<Combinator xsi:type="rx:Take">
210+
<rx:Count>1</rx:Count>
211+
</Combinator>
212+
</Expression>
213+
<Expression xsi:type="Format">
214+
<Format>{{start_sample: {0}}}</Format>
215+
<Selector>it</Selector>
216+
</Expression>
217+
<Expression xsi:type="SubscribeSubject">
218+
<Name>Data</Name>
219+
</Expression>
220+
<Expression xsi:type="MemberSelector">
221+
<Selector>Key</Selector>
222+
</Expression>
223+
<Expression xsi:type="SubscribeSubject">
224+
<Name>deviceName</Name>
225+
</Expression>
226+
<Expression xsi:type="Format">
227+
<Format>{0}_SampleMetadata.json</Format>
228+
</Expression>
229+
<Expression xsi:type="PropertyMapping">
230+
<PropertyMappings>
231+
<Property Name="Name" />
232+
</PropertyMappings>
233+
</Expression>
234+
<Expression xsi:type="IncludeWorkflow" Path="Aeon.Acquisition:FormatFileName.bonsai">
235+
<Name />
236+
<Extension>bin</Extension>
237+
</Expression>
238+
<Expression xsi:type="PropertyMapping">
239+
<PropertyMappings>
240+
<Property Name="Path" />
241+
</PropertyMappings>
242+
</Expression>
243+
<Expression xsi:type="Combinator">
244+
<Combinator xsi:type="io:WriteAllText">
245+
<io:Overwrite>false</io:Overwrite>
246+
<io:Append>false</io:Append>
247+
</Combinator>
248+
</Expression>
189249
</Nodes>
190250
<Edges>
191251
<Edge From="0" To="1" Label="Source1" />
@@ -194,34 +254,49 @@
194254
<Edge From="4" To="5" Label="Source1" />
195255
<Edge From="6" To="7" Label="Source1" />
196256
<Edge From="7" To="8" Label="Source1" />
197-
<Edge From="8" To="16" Label="Source1" />
198-
<Edge From="9" To="10" Label="Source1" />
199-
<Edge From="10" To="14" Label="Source1" />
200-
<Edge From="11" To="12" Label="Source1" />
257+
<Edge From="8" To="9" Label="Source1" />
258+
<Edge From="9" To="17" Label="Source1" />
259+
<Edge From="10" To="11" Label="Source1" />
260+
<Edge From="11" To="15" Label="Source1" />
201261
<Edge From="12" To="13" Label="Source1" />
202-
<Edge From="13" To="14" Label="Source2" />
203-
<Edge From="14" To="15" Label="Source1" />
204-
<Edge From="15" To="16" Label="Source2" />
205-
<Edge From="17" To="18" Label="Source1" />
262+
<Edge From="13" To="14" Label="Source1" />
263+
<Edge From="14" To="15" Label="Source2" />
264+
<Edge From="15" To="16" Label="Source1" />
265+
<Edge From="16" To="17" Label="Source2" />
206266
<Edge From="18" To="19" Label="Source1" />
207-
<Edge From="19" To="27" Label="Source1" />
267+
<Edge From="19" To="20" Label="Source1" />
208268
<Edge From="20" To="21" Label="Source1" />
209-
<Edge From="21" To="25" Label="Source1" />
269+
<Edge From="21" To="29" Label="Source1" />
210270
<Edge From="22" To="23" Label="Source1" />
211-
<Edge From="23" To="24" Label="Source1" />
212-
<Edge From="24" To="25" Label="Source2" />
271+
<Edge From="23" To="27" Label="Source1" />
272+
<Edge From="24" To="25" Label="Source1" />
213273
<Edge From="25" To="26" Label="Source1" />
214274
<Edge From="26" To="27" Label="Source2" />
215-
<Edge From="28" To="29" Label="Source1" />
216-
<Edge From="29" To="30" Label="Source1" />
217-
<Edge From="30" To="38" Label="Source1" />
275+
<Edge From="27" To="28" Label="Source1" />
276+
<Edge From="28" To="29" Label="Source2" />
277+
<Edge From="30" To="31" Label="Source1" />
218278
<Edge From="31" To="32" Label="Source1" />
219-
<Edge From="32" To="36" Label="Source1" />
220-
<Edge From="33" To="34" Label="Source1" />
279+
<Edge From="32" To="33" Label="Source1" />
280+
<Edge From="33" To="41" Label="Source1" />
221281
<Edge From="34" To="35" Label="Source1" />
222-
<Edge From="35" To="36" Label="Source2" />
282+
<Edge From="35" To="39" Label="Source1" />
223283
<Edge From="36" To="37" Label="Source1" />
224-
<Edge From="37" To="38" Label="Source2" />
284+
<Edge From="37" To="38" Label="Source1" />
285+
<Edge From="38" To="39" Label="Source2" />
286+
<Edge From="39" To="40" Label="Source1" />
287+
<Edge From="40" To="41" Label="Source2" />
288+
<Edge From="42" To="43" Label="Source1" />
289+
<Edge From="43" To="44" Label="Source1" />
290+
<Edge From="44" To="45" Label="Source1" />
291+
<Edge From="45" To="46" Label="Source1" />
292+
<Edge From="46" To="54" Label="Source1" />
293+
<Edge From="47" To="48" Label="Source1" />
294+
<Edge From="48" To="52" Label="Source1" />
295+
<Edge From="49" To="50" Label="Source1" />
296+
<Edge From="50" To="51" Label="Source1" />
297+
<Edge From="51" To="52" Label="Source2" />
298+
<Edge From="52" To="53" Label="Source1" />
299+
<Edge From="53" To="54" Label="Source2" />
225300
</Edges>
226301
</Workflow>
227302
</Expression>

0 commit comments

Comments
 (0)