Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Question] since populationList is a type of population, should it be included in Population in the LEMS definitions somehow? #167

Open
sanjayankur31 opened this issue Jul 1, 2021 · 0 comments
Labels
T: question Type: question

Comments

@sanjayankur31
Copy link
Member

To use population lists, where instances have locations, one uses this type of call in libNeuroML.

    pop = Population(id="pop0", notes="A population for our cell", component="olm", size=1, type="populationList")

In the XSD schema, we have this:

    <xs:complexType name="Population">

        <xs:complexContent>
            <xs:extension base="Standalone">
                <xs:choice>
                    <xs:element name="layout" type="Layout" minOccurs="0"/>
                    <xs:element name="instance" type="Instance" maxOccurs="unbounded"/>
                </xs:choice>

                <xs:attribute name="component" type="NmlId" use="required"/>

                <xs:attribute name="size" type="NonNegativeInteger" use="optional"/>

                <xs:attribute name="type" type="populationTypes" use="optional"/>

                <xs:attribute name="extracellularProperties" type="NmlId" use="optional"/>

            </xs:extension>
        </xs:complexContent>

    </xs:complexType>



    <xs:simpleType name="populationTypes">
        <xs:restriction base="xs:string">
            <xs:enumeration value="population"/>
            <xs:enumeration value="populationList"/>
        </xs:restriction>
    </xs:simpleType>

In the LEMS defs though, populationList is defined as a separate component type, unrelated to population (and so it also appears as a separate entity in the schema docs we generate). So, one expects to use it as pop = PopulationList ..., similar to Population.

    <ComponentType name="population" extends="basePopulation" description="A population of components, with just one parameter for the _size">
        <Parameter name="size" dimension="none" description="Number of instances of this Component to create when the population is instantiated"/>
        <Structure>
            <MultiInstantiate number="size" component="component"/>
        </Structure>
    </ComponentType>


    <ComponentType name="populationList" extends="basePopulation" description="An explicit list of the cells in the population. ">
        <Children name="instances" type="instance"/>

        <Text name="size"/> <!--Note: Text, not Parameter, as this is not actually used by LEMS, the <instance> elements determine the size, this attribute is really just metadata, though the two should be consistent-->
    </ComponentType>


Should the LEMS definition be modified somehow to make population include a type attribute, that can take population and populationlist values?

@sanjayankur31 sanjayankur31 added the T: question Type: question label Jul 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T: question Type: question
Projects
Status: 📋 Backlog
Development

No branches or pull requests

1 participant