00001 #ifndef NEUROMLIMPORTER_H_
00002 #define NEUROMLIMPORTER_H_
00003
00004 #include <string>
00005 #include "SimNetwork.h"
00006
00007 #include "parser/implementation/NeuroML_Level3_v1.7.1-pimpl.hpp"
00008
00009 #include "parser/PCSIMParserEnvironment.h"
00010
00011 #include <map>
00012 #include <string>
00013 #include "SimObject.h"
00014 #include <boost/shared_ptr.hpp>
00015 #include "pcsim_hash.h"
00016
00017 #include "LifNeuron.h"
00018
00019 class NeuroMLImporter
00020 {
00021
00022 public:
00023 NeuroMLImporter(std::string schema_location = ".");
00024 ~NeuroMLImporter();
00025
00026 void load(std::string filename, SimNetwork &net);
00027
00028 const PCSIMParserEnvironment& elements()
00029 {
00030 return *env;
00031 }
00032
00033 private:
00034 std::string schema_location;
00035 PCSIMParserEnvironment *env;
00036
00037 private:
00038
00039 void connect_parsers();
00040 void setSimulationEnvironment();
00041
00042
00043
00044
00045 ::neuroml::schema::NeuroMLLevel3_pimpl NeuroMLLevel3_p;
00046 ::metadata::schema::Notes_pimpl Notes_p;
00047 ::metadata::schema::Properties_pimpl Properties_p;
00048 ::metadata::schema::Property_pimpl Property_p;
00049 ::xml_schema::string_pimpl string_p;
00050 ::metadata::schema::Annotation_pimpl Annotation_p;
00051 ::metadata::schema::Group_pimpl Group_p;
00052 ::metadata::schema::Authors_pimpl Authors_p;
00053 ::metadata::schema::Person_pimpl Person_p;
00054 ::metadata::schema::Publication_pimpl Publication_p;
00055 ::metadata::schema::NeuronDBReference_pimpl NeuronDBReference_p;
00056 ::metadata::schema::ModelDBReference_pimpl ModelDBReference_p;
00057 ::neuroml::schema::Level3Cells_pimpl Level3Cells_p;
00058 ::neuroml::schema::Level3Cell_pimpl Level3Cell_p;
00059 ::morphml::schema::cellBody_pimpl cellBody_p;
00060 ::metadata::schema::Polygon_pimpl Polygon_p;
00061 ::metadata::schema::Point_pimpl Point_p;
00062 ::xml_schema::double_pimpl double_p;
00063 ::metadata::schema::Polyhedron_pimpl Polyhedron_p;
00064 ::metadata::schema::polygons_pimpl polygons_p;
00065 ::metadata::schema::Sphere_pimpl Sphere_p;
00066 ::morphml::schema::segments_pimpl segments_p;
00067 ::morphml::schema::Segment_pimpl Segment_p;
00068 ::metadata::schema::SegmentIdInCell_pimpl SegmentIdInCell_p;
00069 ::xml_schema::non_negative_integer_pimpl non_negative_integer_p;
00070 ::morphml::schema::FreePoints_pimpl FreePoints_p;
00071 ::morphml::schema::spines_pimpl spines_p;
00072 ::morphml::schema::Spine_pimpl Spine_p;
00073 ::morphml::schema::SpineShape_pimpl SpineShape_p;
00074 ::morphml::schema::cables_pimpl cables_p;
00075 ::morphml::schema::Cable_pimpl Cable_p;
00076 ::metadata::schema::ZeroToOne_pimpl ZeroToOne_p;
00077 ::morphml::schema::CableGroup_pimpl CableGroup_p;
00078 ::morphml::schema::cable_pimpl cable_p;
00079 ::morphml::schema::InhomogeneousParam_pimpl InhomogeneousParam_p;
00080 ::morphml::schema::metric_pimpl metric_p;
00081 ::morphml::schema::proximal_pimpl proximal_p;
00082 ::morphml::schema::distal_pimpl distal_p;
00083 ::neuroml::schema::Level3Biophysics_pimpl Level3Biophysics_p;
00084 ::biophysics::schema::Mechanism_pimpl Mechanism_p;
00085 ::biophysics::schema::NamedParameter_pimpl NamedParameter_p;
00086 ::biophysics::schema::VariableNamedParameter_pimpl VariableNamedParameter_p;
00087 ::biophysics::schema::InhomogeneousValue_pimpl InhomogeneousValue_p;
00088 ::biophysics::schema::MechanismType_pimpl MechanismType_p;
00089 ::xml_schema::boolean_pimpl boolean_p;
00090 ::biophysics::schema::SpecCapacitance_pimpl SpecCapacitance_p;
00091 ::biophysics::schema::UnnamedParameter_pimpl UnnamedParameter_p;
00092 ::biophysics::schema::VariableParameter_pimpl VariableParameter_p;
00093 ::biophysics::schema::SpecAxialResistance_pimpl SpecAxialResistance_p;
00094 ::biophysics::schema::InitialMembPotential_pimpl InitialMembPotential_p;
00095 ::biophysics::schema::IonProperties_pimpl IonProperties_p;
00096 ::metadata::schema::Units_pimpl Units_p;
00097 ::networkml::schema::PotentialSynapticLocation_pimpl PotentialSynapticLocation_p;
00098 ::networkml::schema::SynapseDirection_pimpl SynapseDirection_p;
00099 ::networkml::schema::Level3Connectivity_pimpl Level3Connectivity_p;
00100 ::networkml::schema::PotentialSynLoc_pimpl PotentialSynLoc_p;
00101 ::channelml::schema::ChannelML_pimpl ChannelML_p;
00102 ::channelml::schema::Ion_pimpl Ion_p;
00103 ::biophysics::schema::VoltageValue_pimpl VoltageValue_p;
00104 ::xml_schema::positive_integer_pimpl positive_integer_p;
00105 ::channelml::schema::IonRole_pimpl IonRole_p;
00106 ::channelml::schema::ChannelType_pimpl ChannelType_p;
00107 ::metadata::schema::Status_pimpl Status_p;
00108 ::metadata::schema::StatusValue_pimpl StatusValue_p;
00109 ::channelml::schema::CurrentVoltageRelation_pimpl CurrentVoltageRelation_p;
00110 ::channelml::schema::Ohmic_pimpl Ohmic_p;
00111 ::channelml::schema::conductance_pimpl conductance_p;
00112 ::channelml::schema::RateAdjustments_pimpl RateAdjustments_p;
00113 ::channelml::schema::q10_settings_pimpl q10_settings_p;
00114 ::biophysics::schema::TemperatureValue_pimpl TemperatureValue_p;
00115 ::channelml::schema::offset_pimpl offset_p;
00116 ::channelml::schema::Gate_pimpl Gate_p;
00117 ::channelml::schema::state_pimpl state_p;
00118 ::biophysics::schema::ConductanceDensityValue_pimpl ConductanceDensityValue_p;
00119 ::channelml::schema::IntegrateAndFire_pimpl IntegrateAndFire_p;
00120 ::biophysics::schema::TimeValue_pimpl TimeValue_p;
00121 ::biophysics::schema::ConductanceValue_pimpl ConductanceValue_p;
00122 ::channelml::schema::HHGate_pimpl HHGate_p;
00123 ::channelml::schema::Transition_pimpl Transition_p;
00124 ::channelml::schema::VoltageGate_pimpl VoltageGate_p;
00125 ::channelml::schema::RateConstantEqnChoice_pimpl RateConstantEqnChoice_p;
00126 ::channelml::schema::AkdEquation_pimpl AkdEquation_p;
00127 ::channelml::schema::Parameter_pimpl Parameter_p;
00128 ::channelml::schema::GenericEquation_pimpl GenericEquation_p;
00129 ::channelml::schema::VoltageConcGate_pimpl VoltageConcGate_p;
00130 ::channelml::schema::ConcDependence_pimpl ConcDependence_p;
00131 ::biophysics::schema::ConcentrationValue_pimpl ConcentrationValue_p;
00132 ::channelml::schema::RateConstVoltConcDep_pimpl RateConstVoltConcDep_p;
00133 ::channelml::schema::KSGate_pimpl KSGate_p;
00134 ::channelml::schema::KSState_pimpl KSState_p;
00135 ::channelml::schema::ImplementationPrefs_pimpl ImplementationPrefs_p;
00136 ::channelml::schema::table_settings_pimpl table_settings_p;
00137 ::metadata::schema::YesNo_pimpl YesNo_p;
00138 ::channelml::schema::SynapseType_pimpl SynapseType_p;
00139 ::channelml::schema::ElectricalSynapse_pimpl ElectricalSynapse_p;
00140 ::channelml::schema::DoubleExponentialSynapse_pimpl DoubleExponentialSynapse_p;
00141 ::biophysics::schema::TimeConstantValueIncZero_pimpl TimeConstantValueIncZero_p;
00142 ::biophysics::schema::TimeConstantValue_pimpl TimeConstantValue_p;
00143 ::channelml::schema::BlockingSynapse_pimpl BlockingSynapse_p;
00144 ::channelml::schema::Block_pimpl Block_p;
00145 ::channelml::schema::MultiDecaySynapse_pimpl MultiDecaySynapse_p;
00146 ::channelml::schema::FacDepSynapse_pimpl FacDepSynapse_p;
00147 ::channelml::schema::FacDep_pimpl FacDep_p;
00148 ::channelml::schema::IonConcentration_pimpl IonConcentration_p;
00149 ::channelml::schema::IonSpecies_pimpl IonSpecies_p;
00150 ::channelml::schema::DecayingPoolModel_pimpl DecayingPoolModel_p;
00151 ::biophysics::schema::InvTimeConstantValue_pimpl InvTimeConstantValue_p;
00152 ::channelml::schema::PoolVolumeInfo_pimpl PoolVolumeInfo_p;
00153 ::biophysics::schema::LengthValue_pimpl LengthValue_p;
00154 ::channelml::schema::FixedPoolInfo_pimpl FixedPoolInfo_p;
00155 ::networkml::schema::Populations_pimpl Populations_p;
00156 ::networkml::schema::Population_pimpl Population_p;
00157 ::networkml::schema::Instances_pimpl Instances_p;
00158 ::networkml::schema::CellInstance_pimpl CellInstance_p;
00159 ::metadata::schema::Point3D_pimpl Point3D_p;
00160 ::networkml::schema::PopulationLocation_pimpl PopulationLocation_p;
00161 ::networkml::schema::RandomArrangement_pimpl RandomArrangement_p;
00162 ::metadata::schema::RectangularBox_pimpl RectangularBox_p;
00163 ::metadata::schema::size_pimpl size_p;
00164 ::networkml::schema::GridArrangement_pimpl GridArrangement_p;
00165 ::networkml::schema::spacing_pimpl spacing_p;
00166 ::metadata::schema::NonSpatialGrid_pimpl NonSpatialGrid_p;
00167 ::networkml::schema::Projections_pimpl Projections_p;
00168 ::networkml::schema::Projection_pimpl Projection_p;
00169 ::networkml::schema::GlobalSynapticProperties_pimpl GlobalSynapticProperties_p;
00170 ::biophysics::schema::SynapticDelayValue_pimpl SynapticDelayValue_p;
00171 ::metadata::schema::NonNegativeDouble_pimpl NonNegativeDouble_p;
00172 ::networkml::schema::SynapseInternalProperties_pimpl SynapseInternalProperties_p;
00173 ::networkml::schema::Connections_pimpl Connections_p;
00174 ::networkml::schema::Connection_pimpl Connection_p;
00175 ::networkml::schema::SynapticLocation_pimpl SynapticLocation_p;
00176 ::xml_schema::integer_pimpl integer_p;
00177 ::networkml::schema::LocalSynapticProperties_pimpl LocalSynapticProperties_p;
00178 ::networkml::schema::ConnectivityPattern_pimpl ConnectivityPattern_p;
00179 ::networkml::schema::all_to_all_pimpl all_to_all_p;
00180 ::networkml::schema::fixed_probability_pimpl fixed_probability_p;
00181 ::networkml::schema::PerCellConnection_pimpl PerCellConnection_p;
00182 ::networkml::schema::direction_pimpl direction_p;
00183 ::metadata::schema::PositiveDouble_pimpl PositiveDouble_p;
00184 ::networkml::schema::Inputs_pimpl Inputs_p;
00185 ::networkml::schema::Input_pimpl Input_p;
00186 ::networkml::schema::PulseInput_pimpl PulseInput_p;
00187 ::biophysics::schema::CurrentValue_pimpl CurrentValue_p;
00188 ::networkml::schema::RandomStim_pimpl RandomStim_p;
00189 ::biophysics::schema::FrequencyValue_pimpl FrequencyValue_p;
00190 ::networkml::schema::InputTarget_pimpl InputTarget_p;
00191 ::networkml::schema::InputSites_pimpl InputSites_p;
00192 ::networkml::schema::InputSite_pimpl InputSite_p;
00193 ::networkml::schema::CellIdInNetwork_pimpl CellIdInNetwork_p;
00194 ::networkml::schema::InputSitePattern_pimpl InputSitePattern_p;
00195 ::networkml::schema::all_cells_pimpl all_cells_p;
00196 ::networkml::schema::percentage_cells_pimpl percentage_cells_p;
00197 ::metadata::schema::Percentage_pimpl Percentage_p;
00198 ::metadata::schema::LengthUnits_pimpl LengthUnits_p;
00199 ::metadata::schema::VolumeUnits_pimpl VolumeUnits_p;
00200
00201 };
00202
00203 #endif