ucl.physiol.neuroconstruct.cell
Class Cell

java.lang.Object
  extended by ucl.physiol.neuroconstruct.cell.Cell
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
ComplexCell, GolgiCell, GranuleCell, MossyFiber, OneSegment, PurkinjeCell, SimpleCell

public class Cell
extends Object
implements Serializable

The base class for all cells, defining the segments, section etc. Also contains extra information describing the cell, including biophysical information.

Author:
Padraig Gleeson
See Also:
Serialized Form

Constructor Summary
Cell()
          Default constructor is needed for XMLEncoder.
 
Method Summary
 void addAxonalArbour(AxonalConnRegion axonalArbour)
           
 Segment addAxonalSegment(float radius, String name, Point3f endPointPosn, Segment parent, float fractionAlongParentSegment, String sectionName)
           
 Segment addDendriticSegment(float radius, String name, Point3f endPointPosn, Segment parent, float fractionAlongParentSegment, String sectionName, boolean inheritParentsRadius)
           
 Segment addFirstSomaSegment(float startRadius, float endRadius, String name, Point3f startPointPosn, Point3f endPointPosn, Section section)
          For adding the root segment of the soma.
 void addParameterisedGroup(ParameterisedGroup pg)
           
 Segment addSomaSegment(float radius, String name, Point3f endPointPosn, Segment parent, Section section)
          For adding the second or greater soma section.
 boolean associateGroupWithApPropSpeed(String group, ApPropSpeed apPropSpeed)
           
 boolean associateGroupWithChanMech(String group, ChannelMechanism newChanMech)
           
 boolean associateGroupWithIonProperties(String group, IonProperties ip)
           
 boolean associateGroupWithSpecAxRes(String group, float specAxRes)
           
 boolean associateGroupWithSpecCap(String group, float specCap)
           
 boolean associateGroupWithSynapse(String group, String synapseType)
           
 boolean associateParamGroupWithVarMech(ParameterisedGroup paraGrp, VariableMechanism varMech)
           
 Object clone()
          Makes an exact copy of the Cell, with new Segments (as opposed to references) to the old Segments, containing the same morphological data as this Cell
 void deleteAxonalArbour(String aaName)
           
 void deleteParameterisedGroup(String name)
           
 boolean disassociateGroupFromApPropSpeeds(String group)
          Since there should be only one appv per group, disassociate group from all appvs
 boolean disassociateGroupFromChanMech(String group, ChannelMechanism chanMech)
           
 boolean disassociateGroupFromChanMech(String group, String chanMechName)
           
 boolean disassociateGroupFromIonProperties(String group, IonProperties ip)
          Since there should be only one IonProperties per group
 boolean disassociateGroupFromSpecAxRes(String group)
          There should be only one spec ax res for any given group
 boolean disassociateGroupFromSpecCap(String group)
          There should be only one spec cap for any given group
 boolean disassociateGroupFromSynapse(String group, String synapseType)
           
 boolean dissociateParamGroupFromVarMech(ParameterisedGroup paraGrp, VariableMechanism varMech)
           
 ArrayList<String> getAllAllowedSynapseTypes()
           
 ArrayList<ApPropSpeed> getAllApPropSpeeds()
           
 ArrayList<String> getAllChanMechNames(boolean removeRepeats)
           
 Vector<String> getAllGroupNames()
           
 ArrayList<Section> getAllSections()
           
 Vector<Segment> getAllSegments()
          Note: used by XMLEncoder
 LinkedList<Segment> getAllSegmentsInSection(Section section)
           
 ArrayList<ChannelMechanism> getAllUniformChanMechs(boolean removeRepeats)
           
 ApPropSpeed getApPropSpeedForGroup(String group)
           
 ApPropSpeed getApPropSpeedForSection(Section section)
           
 ApPropSpeed getApPropSpeedForSegment(Segment segment)
           
 Hashtable<ApPropSpeed,Vector<String>> getApPropSpeedsVsGroups()
           
 Vector<AxonalConnRegion> getAxonalArbours()
          Note: used by XMLEncoder
 String getCellDescription()
           
 ArrayList<ChannelMechanism> getChanMechsForGroup(String group)
           
 Hashtable<ChannelMechanism,Vector<String>> getChanMechsVsGroups()
           
 ArrayList<Float> getDefinedSpecAxResistances()
           
 ArrayList<Float> getDefinedSpecCaps()
           
 Vector<Segment> getExplicitlyModelledSegments()
          Returns the segments whose sections don't have an ApPropSpeed mechanism specified
 Segment getFirstSomaSegment()
           
 Vector getGroupsWithApPropSpeed(ApPropSpeed appv)
           
 Vector getGroupsWithApPropSpeed(IonProperties ip)
           
 Vector<String> getGroupsWithChanMech(ChannelMechanism chanMech)
           
 Vector<String> getGroupsWithSpecAxRes(float specAxRes)
           
 Vector<String> getGroupsWithSpecCap(float specCap)
           
 Vector<String> getGroupsWithSynapse(String synapseType)
           
 NumberGenerator getInitialPotential()
           
 String getInstanceName()
           
 ArrayList<IonProperties> getIonPropertiesForGroup(String group)
           
 Hashtable<IonProperties,Vector<String>> getIonPropertiesVsGroups()
           
 String getMorphSummary()
           
 int getNextSegmentId()
          Gets a unique new segment id.
 NumberGenerator getOldGlobalSpecAxRes()
          Deprecated.  
 NumberGenerator getOldGlobalSpecCapacitance()
          Deprecated.  
 Vector<Segment> getOnlyAxonalSegments()
           
 Vector<Segment> getOnlyDendriticSegments()
           
 Vector<Segment> getOnlySomaSegments()
           
 Vector<ParameterisedGroup> getParameterisedGroups()
          Note: used by XMLEncoder
 ArrayList<Section> getSectionsInGroup(String group)
           
 int getSegmentBranchingOrder(int id)
           
 ArrayList<Segment> getSegmentsInGroup(String group)
           
 Segment getSegmentWithId(int id)
           
 Segment getSegmentWithName(String segName, boolean allowSimFriendlyName)
          Normally used to get Segment where segName = getSegmentName(), but if allowSimFriendlyName is true allows SimEnvHelper.getSimulatorFriendlyName(segName) = getSegmentName()
 float getSpecAxResForGroup(String group)
           
 float getSpecAxResForSection(Section section)
           
 Hashtable<Float,Vector<String>> getSpecAxResVsGroups()
           
 float getSpecCapForGroup(String group)
           
 float getSpecCapForSection(Section section)
           
 Hashtable<Float,Vector<String>> getSpecCapVsGroups()
           
 Hashtable<Species,Vector<String>> getSpeciesVsGroups()
           
 Vector<String> getSynapsesForGroup(String group)
           
 Hashtable<String,Vector<String>> getSynapsesVsGroups()
           
 ArrayList<ChannelMechanism> getUniformChanMechsForSec(Section section)
           
 ArrayList<ChannelMechanism> getUniformChanMechsForSeg(Segment segment)
           
 ArrayList<VariableMechanism> getVarChanMechsForSection(Section section)
           
 ArrayList<VariableMechanism> getVarChanMechsForSegment(Segment segment)
           
 Hashtable<VariableMechanism,ParameterisedGroup> getVarMechsVsParaGroups()
           
 boolean isGroup(String group)
           
 boolean isNeuroML2AbstractCell()
           
static void main(String[] args)
           
 void removeAllBiophysics()
          For example to compare cells ignoring biophysical properties
 void removeAllSynapseInfo()
          For example to compare cells ignoring biophysical properties
 void renameGroup(String oldGroup, String newGroup)
           
 void setAllSegments(Vector<Segment> allSegments)
           
 void setApPropSpeedsVsGroups(Hashtable<ApPropSpeed,Vector<String>> ap)
           
 void setAxonalArbours(Vector<AxonalConnRegion> axonalArbours)
           
 void setCellDescription(String cellDescription)
           
 void setChanMechsVsGroups(Hashtable<ChannelMechanism,Vector<String>> chanMechsVsGroups)
           
 void setInitialPotential(NumberGenerator initPot)
           
 void setInstanceName(String instanceName)
           
 void setIonPropertiesVsGroups(Hashtable<IonProperties,Vector<String>> ips)
           
 void setParameterisedGroups(Vector<ParameterisedGroup> pgs)
           
 void setSpecAxResVsGroups(Hashtable<Float,Vector<String>> sp)
           
 void setSpecCapVsGroups(Hashtable<Float,Vector<String>> specCapVsGroups)
           
 void setSpeciesVsGroups(Hashtable<Species,Vector<String>> speciesVsGroups)
           
 void setSynapsesVsGroups(Hashtable<String,Vector<String>> synapsesVsGroups)
           
 void setVarMechsVsParaGroups(Hashtable<VariableMechanism,ParameterisedGroup> varMechsVsParaGroups)
           
 String toString()
           
 void updateAxonalArbour(AxonalConnRegion axonalArbour)
           
 void updateParameterisedGroup(ParameterisedGroup pg)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Cell

public Cell()
Default constructor is needed for XMLEncoder.

Method Detail

getAllSegments

public Vector<Segment> getAllSegments()
Note: used by XMLEncoder


getAxonalArbours

public Vector<AxonalConnRegion> getAxonalArbours()
Note: used by XMLEncoder


deleteAxonalArbour

public void deleteAxonalArbour(String aaName)

getMorphSummary

public String getMorphSummary()

setAxonalArbours

public void setAxonalArbours(Vector<AxonalConnRegion> axonalArbours)

addAxonalArbour

public void addAxonalArbour(AxonalConnRegion axonalArbour)

updateAxonalArbour

public void updateAxonalArbour(AxonalConnRegion axonalArbour)

getParameterisedGroups

public Vector<ParameterisedGroup> getParameterisedGroups()
Note: used by XMLEncoder


deleteParameterisedGroup

public void deleteParameterisedGroup(String name)

setParameterisedGroups

public void setParameterisedGroups(Vector<ParameterisedGroup> pgs)

addParameterisedGroup

public void addParameterisedGroup(ParameterisedGroup pg)

updateParameterisedGroup

public void updateParameterisedGroup(ParameterisedGroup pg)

isNeuroML2AbstractCell

public boolean isNeuroML2AbstractCell()

getExplicitlyModelledSegments

public Vector<Segment> getExplicitlyModelledSegments()
Returns the segments whose sections don't have an ApPropSpeed mechanism specified


getOnlySomaSegments

public Vector<Segment> getOnlySomaSegments()

getOnlyAxonalSegments

public Vector<Segment> getOnlyAxonalSegments()

getOnlyDendriticSegments

public Vector<Segment> getOnlyDendriticSegments()

addDendriticSegment

public Segment addDendriticSegment(float radius,
                                   String name,
                                   Point3f endPointPosn,
                                   Segment parent,
                                   float fractionAlongParentSegment,
                                   String sectionName,
                                   boolean inheritParentsRadius)

addAxonalSegment

public Segment addAxonalSegment(float radius,
                                String name,
                                Point3f endPointPosn,
                                Segment parent,
                                float fractionAlongParentSegment,
                                String sectionName)

addSomaSegment

public Segment addSomaSegment(float radius,
                              String name,
                              Point3f endPointPosn,
                              Segment parent,
                              Section section)
For adding the second or greater soma section. Use addFirstSomaSegment for the first segment


addFirstSomaSegment

public Segment addFirstSomaSegment(float startRadius,
                                   float endRadius,
                                   String name,
                                   Point3f startPointPosn,
                                   Point3f endPointPosn,
                                   Section section)
For adding the root segment of the soma. If its spherical have startPointPosn, endPointPosn equal


getAllSegmentsInSection

public LinkedList<Segment> getAllSegmentsInSection(Section section)

getAllSections

public ArrayList<Section> getAllSections()

getSectionsInGroup

public ArrayList<Section> getSectionsInGroup(String group)
To do:
Check not replicated elsewhere...

getSegmentsInGroup

public ArrayList<Segment> getSegmentsInGroup(String group)
To do:
Check not replicated elsewhere...

getFirstSomaSegment

public Segment getFirstSomaSegment()

getSegmentWithId

public Segment getSegmentWithId(int id)

getSegmentBranchingOrder

public int getSegmentBranchingOrder(int id)

getSegmentWithName

public Segment getSegmentWithName(String segName,
                                  boolean allowSimFriendlyName)
Normally used to get Segment where segName = getSegmentName(), but if allowSimFriendlyName is true allows SimEnvHelper.getSimulatorFriendlyName(segName) = getSegmentName()


getNextSegmentId

public int getNextSegmentId()
Gets a unique new segment id. Will normally be simply incremented (0,1,2...) but allows for breaks in ids (e.g. due to deleted segments)


getCellDescription

public String getCellDescription()

getInstanceName

public String getInstanceName()

getAllAllowedSynapseTypes

public ArrayList<String> getAllAllowedSynapseTypes()

getAllUniformChanMechs

public ArrayList<ChannelMechanism> getAllUniformChanMechs(boolean removeRepeats)

getAllChanMechNames

public ArrayList<String> getAllChanMechNames(boolean removeRepeats)

getDefinedSpecAxResistances

public ArrayList<Float> getDefinedSpecAxResistances()

getDefinedSpecCaps

public ArrayList<Float> getDefinedSpecCaps()

getAllApPropSpeeds

public ArrayList<ApPropSpeed> getAllApPropSpeeds()

getAllGroupNames

public Vector<String> getAllGroupNames()

isGroup

public boolean isGroup(String group)

toString

public String toString()
Overrides:
toString in class Object

getGroupsWithSynapse

public Vector<String> getGroupsWithSynapse(String synapseType)

getGroupsWithSpecAxRes

public Vector<String> getGroupsWithSpecAxRes(float specAxRes)

getGroupsWithSpecCap

public Vector<String> getGroupsWithSpecCap(float specCap)

getGroupsWithChanMech

public Vector<String> getGroupsWithChanMech(ChannelMechanism chanMech)

getGroupsWithApPropSpeed

public Vector getGroupsWithApPropSpeed(ApPropSpeed appv)

getGroupsWithApPropSpeed

public Vector getGroupsWithApPropSpeed(IonProperties ip)

getApPropSpeedForGroup

public ApPropSpeed getApPropSpeedForGroup(String group)

getIonPropertiesForGroup

public ArrayList<IonProperties> getIonPropertiesForGroup(String group)

getChanMechsForGroup

public ArrayList<ChannelMechanism> getChanMechsForGroup(String group)

getSynapsesForGroup

public Vector<String> getSynapsesForGroup(String group)

getSpecCapForGroup

public float getSpecCapForGroup(String group)

getSpecAxResForGroup

public float getSpecAxResForGroup(String group)

getSpecAxResForSection

public float getSpecAxResForSection(Section section)

getSpecCapForSection

public float getSpecCapForSection(Section section)

getUniformChanMechsForSeg

public ArrayList<ChannelMechanism> getUniformChanMechsForSeg(Segment segment)

getUniformChanMechsForSec

public ArrayList<ChannelMechanism> getUniformChanMechsForSec(Section section)

getVarChanMechsForSegment

public ArrayList<VariableMechanism> getVarChanMechsForSegment(Segment segment)

getVarChanMechsForSection

public ArrayList<VariableMechanism> getVarChanMechsForSection(Section section)

getApPropSpeedForSegment

public ApPropSpeed getApPropSpeedForSegment(Segment segment)

getApPropSpeedForSection

public ApPropSpeed getApPropSpeedForSection(Section section)

associateGroupWithSynapse

public boolean associateGroupWithSynapse(String group,
                                         String synapseType)

associateParamGroupWithVarMech

public boolean associateParamGroupWithVarMech(ParameterisedGroup paraGrp,
                                              VariableMechanism varMech)

dissociateParamGroupFromVarMech

public boolean dissociateParamGroupFromVarMech(ParameterisedGroup paraGrp,
                                               VariableMechanism varMech)

associateGroupWithChanMech

public boolean associateGroupWithChanMech(String group,
                                          ChannelMechanism newChanMech)

associateGroupWithSpecCap

public boolean associateGroupWithSpecCap(String group,
                                         float specCap)

associateGroupWithSpecAxRes

public boolean associateGroupWithSpecAxRes(String group,
                                           float specAxRes)

associateGroupWithApPropSpeed

public boolean associateGroupWithApPropSpeed(String group,
                                             ApPropSpeed apPropSpeed)

associateGroupWithIonProperties

public boolean associateGroupWithIonProperties(String group,
                                               IonProperties ip)

disassociateGroupFromIonProperties

public boolean disassociateGroupFromIonProperties(String group,
                                                  IonProperties ip)
Since there should be only one IonProperties per group


disassociateGroupFromApPropSpeeds

public boolean disassociateGroupFromApPropSpeeds(String group)
Since there should be only one appv per group, disassociate group from all appvs


disassociateGroupFromSynapse

public boolean disassociateGroupFromSynapse(String group,
                                            String synapseType)

disassociateGroupFromSpecCap

public boolean disassociateGroupFromSpecCap(String group)
There should be only one spec cap for any given group


disassociateGroupFromSpecAxRes

public boolean disassociateGroupFromSpecAxRes(String group)
There should be only one spec ax res for any given group


disassociateGroupFromChanMech

public boolean disassociateGroupFromChanMech(String group,
                                             ChannelMechanism chanMech)

disassociateGroupFromChanMech

public boolean disassociateGroupFromChanMech(String group,
                                             String chanMechName)

removeAllBiophysics

public void removeAllBiophysics()
For example to compare cells ignoring biophysical properties


removeAllSynapseInfo

public void removeAllSynapseInfo()
For example to compare cells ignoring biophysical properties


clone

public Object clone()
Makes an exact copy of the Cell, with new Segments (as opposed to references) to the old Segments, containing the same morphological data as this Cell

Overrides:
clone in class Object

renameGroup

public void renameGroup(String oldGroup,
                        String newGroup)

main

public static void main(String[] args)

setCellDescription

public void setCellDescription(String cellDescription)

setAllSegments

public void setAllSegments(Vector<Segment> allSegments)

setInstanceName

public void setInstanceName(String instanceName)

getSynapsesVsGroups

public Hashtable<String,Vector<String>> getSynapsesVsGroups()

setSynapsesVsGroups

public void setSynapsesVsGroups(Hashtable<String,Vector<String>> synapsesVsGroups)

getChanMechsVsGroups

public Hashtable<ChannelMechanism,Vector<String>> getChanMechsVsGroups()

setChanMechsVsGroups

public void setChanMechsVsGroups(Hashtable<ChannelMechanism,Vector<String>> chanMechsVsGroups)

getSpeciesVsGroups

public Hashtable<Species,Vector<String>> getSpeciesVsGroups()

setSpeciesVsGroups

public void setSpeciesVsGroups(Hashtable<Species,Vector<String>> speciesVsGroups)

setVarMechsVsParaGroups

public void setVarMechsVsParaGroups(Hashtable<VariableMechanism,ParameterisedGroup> varMechsVsParaGroups)

getVarMechsVsParaGroups

public Hashtable<VariableMechanism,ParameterisedGroup> getVarMechsVsParaGroups()

getSpecCapVsGroups

public Hashtable<Float,Vector<String>> getSpecCapVsGroups()

getSpecAxResVsGroups

public Hashtable<Float,Vector<String>> getSpecAxResVsGroups()

getApPropSpeedsVsGroups

public Hashtable<ApPropSpeed,Vector<String>> getApPropSpeedsVsGroups()

getIonPropertiesVsGroups

public Hashtable<IonProperties,Vector<String>> getIonPropertiesVsGroups()

setSpecCapVsGroups

public void setSpecCapVsGroups(Hashtable<Float,Vector<String>> specCapVsGroups)

setSpecAxResVsGroups

public void setSpecAxResVsGroups(Hashtable<Float,Vector<String>> sp)

setApPropSpeedsVsGroups

public void setApPropSpeedsVsGroups(Hashtable<ApPropSpeed,Vector<String>> ap)

setIonPropertiesVsGroups

public void setIonPropertiesVsGroups(Hashtable<IonProperties,Vector<String>> ips)

getOldGlobalSpecAxRes

public NumberGenerator getOldGlobalSpecAxRes()
Deprecated. 

Needed to support projects saved when spec ax res was a global cell parameter


getInitialPotential

public NumberGenerator getInitialPotential()

setInitialPotential

public void setInitialPotential(NumberGenerator initPot)

getOldGlobalSpecCapacitance

public NumberGenerator getOldGlobalSpecCapacitance()
Deprecated. 

Needed to support projects saved when spec cap was a global cell parameter