-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathexternal.xsl
122 lines (104 loc) · 3.75 KB
/
external.xsl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions" exclude-result-prefixes="fn">
<xsl:output method="xml" omit-xml-declaration="no" version="1.0" encoding="UTF-8" indent="yes"/>
<!--
This template adds the Processes and Links necessary to connect
in the Patra-developed and Seb-brahms-wrapped biomechanical eye
model.
Currently, this DEPENDS on the SpineML model being the
Oculomotor model with saccade generator and on correct naming of
the outputs of the saccade generator (MN up/down, MN left/right)
It also requires that the user has compiled the saccsim code,
including the component.so BRAHMS component, and installed that
in dev/NoTremor/saccsim within the BRAHMS Namespace dirs that are
being used by SpineML_2_BRAHMS.
-->
<xsl:param name="spineml_output_dir" select="'./'"/>
<!-- START TEMPLATE -->
<xsl:template name="external">
<xsl:comment>Generated by Saccsim_Oculomotor.xsl</xsl:comment>
<!-- GET A LINK TO THE EXPERIMENT FILE FOR LATER USE -->
<xsl:variable name="expt_root" select="/"/>
<!-- GET THE SAMPLE RATE -->
<xsl:variable name="sampleRate" select="(1 div number($expt_root//@dt)) * 1000.0"/>
<!-- GET A LINK TO THE NETWORK FILE FOR LATER USE -->
<!-- <xsl:variable name="main_root" select="/"/> -->
<!-- This is the destination process - the Saccade simulator itself. -->
<Process>
<Name>SaccSim</Name>
<Class>dev/NoTremor/saccsim</Class>
<State c="z" a="output_data_path;simtk_integrator;" Format="DataML" Version="5" AuthTool="SystemML Toolbox" AuthToolVersion="0">
<m><xsl:value-of select="$spineml_output_dir"/></m>
<m>ExplicitEuler</m>
</State>
<Time><SampleRate><xsl:value-of select="$sampleRate"/></SampleRate></Time>
<State></State>
</Process>
<Process>
<Name>Zeroes</Name>
<Class>std/2009/source/numeric</Class>
<Time><SampleRate><xsl:value-of select="$sampleRate"/></SampleRate></Time>
<State c="z" a="data;repeat;" Format="DataML" Version="5" AuthTool="SystemML Toolbox" AuthToolVersion="0">
<m b="1 1" c="d">0</m>
<m c="l">1</m>
</State>
</Process>
<!-- Here, we link each muscle input activity process to the Saccade simulator. -->
<Link>
<Src>MN_up>a</Src>
<Dst>SaccSim<<<suprect</Dst>
<Lag>0</Lag>
</Link>
<Link>
<Src>MN_down>a</Src>
<Dst>SaccSim<<<infrect</Dst>
<Lag>0</Lag>
</Link>
<Link>
<Src>MN_right>a</Src>
<Dst>SaccSim<<<medrect</Dst>
<Lag>0</Lag>
</Link>
<Link>
<Src>MN_left>a</Src>
<Dst>SaccSim<<<latrect</Dst>
<Lag>0</Lag>
</Link>
<Link>
<Src>MN_zplus>a</Src>
<Dst>SaccSim<<<supobl</Dst>
<Lag>0</Lag>
</Link>
<Link>
<Src>MN_zminus>a</Src>
<Dst>SaccSim<<<infobl</Dst>
<Lag>0</Lag>
</Link>
<!-- This is the world data maker process. Saccade simulator feeds rotations into this process. -->
<Process>
<Name>WorldDataMaker</Name>
<Class>dev/NoTremor/worldDataMaker</Class>
<State c="z" a="output_data_path;neuronsPerPopulation;" Format="DataML" Version="5" AuthTool="SystemML Toolbox" AuthToolVersion="0">
<m><xsl:value-of select="$spineml_output_dir"/></m>
<m c="f">2500</m>
</State>
<Time><SampleRate><xsl:value-of select="$sampleRate"/></SampleRate></Time>
<State></State>
</Process>
<!-- Rotations output from Saccsim is input to WorldDataMaker component -->
<Link>
<Src>SaccSim>out</Src>
<Dst>WorldDataMaker<<<rotationsIn</Dst>
<Lag>0</Lag>
</Link>
<!-- Output from WorldDataMaker is fed into the World population, which
then gates this with MN output and feeds it into Retina_1 and Retina_2 -->
<Link>
<Src>WorldDataMaker>corticalSheet</Src>
<Dst>World<in</Dst>
<Lag>0</Lag>
</Link>
<!-- END TEMPLATE -->
</xsl:template>
</xsl:stylesheet>