コード例 #1
0
ファイル: SBML_Event.cs プロジェクト: ecell/ecell3-ide
 /// <summary>
 /// 
 /// </summary>
 /// <param name="aEvent"></param>
 /// <returns></returns>
 public string getEventID(EventStruct aEvent)
 {
     if (this.Model.Level == 1)
         return "Process:/:" + aEvent.Name;
     else if (this.Model.Level == 2)
         return "Process:/:" + aEvent.ID;
     else
     {
         string anID = "Process:/:Event" + this.EventNumber;
         this.EventNumber = this.EventNumber + 1;
         return anID;
     }
 }
コード例 #2
0
ファイル: TestStructs.cs プロジェクト: ecell/ecell3-ide
 public void TestConstructorOfStructs()
 {
     //
     CompartmentStruct c = new CompartmentStruct(
         "ID",
         "Name",
         0,
         0.0,
         0.0,
         "Unit",
         "Parent",
         false);
     //
     EventStruct e = new EventStruct(
         "ID",
         "Name",
         "Trigger",
         "delay",
         "TimeUnit",
         new List<EventAssignmentStruct>());
     //
     EventAssignmentStruct ea = new EventAssignmentStruct(
         "Variable",
         "Formula");
     //
     FunctionDefinitionStruct fd = new FunctionDefinitionStruct(
         "ID",
         "Name",
         "Formula");
     //
     ParameterStruct p = new ParameterStruct(
         "ID",
         "Name",
         0.0,
         "Unit",
         false);
     //
     ReactionStruct r = new ReactionStruct(
         "ID",
         "Name",
         new List<KineticLawStruct>(),
         false,
         false,
         new List<ReactantStruct>(),
         new List<ProductStruct>(),
         new List<string>());
     //
     KineticLawStruct k = new KineticLawStruct(
         "Formula",
         new List<string>(),
         "TimeUnit",
         "Substance",
         new List<ParameterStruct>(),
         null);
     //
     ReactantStruct rs = new ReactantStruct(
         "Species",
         0,
         "Formula",
         0);
     //
     ProductStruct ps = new ProductStruct(
         "Species",
         0.0,
         "Formula",
         0);
     //
     RuleStruct rule = new RuleStruct(
         0,
         "Formula",
         "Variable");
     //
     SpeciesStruct s = new SpeciesStruct(
         "ID",
         "Name",
         "Parent",
         0.0,
         0.0,
         "Substance",
         "Spatial",
         "Unit",
         false,
         false,
         0,
         false);
     //
     UnitDefinitionStruct ud = new UnitDefinitionStruct(
         "ID",
         "Name",
         new List<UnitStruct>());
     //
     UnitStruct u = new UnitStruct(
         "Kind",
         0,
         0,
         0.0,
         0.0);
     //
     VariableReferenceStruct v = new VariableReferenceStruct(
         "Name",
         "Variable",
         0);
     //
     InitialAssignmentStruct i = new InitialAssignmentStruct(
         "Name",
         0.0);
 }
コード例 #3
0
ファイル: SbmlFunctions.cs プロジェクト: ecell/ecell3-ide
        /// <summary>
        /// [ EventStruct ]
        ///  [[ Id , Name , StringTrigger , StringDelay , TimeUnit , [[ VariableAssignment , StringAssignment ]] ]] 
        /// </summary>
        /// <param name="aSBMLmodel"></param>
        /// <returns></returns>
        public static List<EventStruct> getEvent(Model aSBMLmodel)
        {
            List<EventStruct> list = new List<EventStruct>();
            ListOfEvents events = aSBMLmodel.getListOfEvents();
            for (int i = 0; i < events.size(); i++ )
            {
                Event anEvent = aSBMLmodel.getEvent(i);
                string anId_Ev = anEvent.getId();
                string aName_Ev = anEvent.getName();
                Trigger anASTNode_Ev_Tr = anEvent.getTrigger();
                string aString_Ev_Tr = libsbml.libsbml.formulaToString(anASTNode_Ev_Tr.getMath());
                Delay anASTNode_Ev_De = anEvent.getDelay();
                string aString_Ev_De = libsbml.libsbml.formulaToString(anASTNode_Ev_Tr.getMath());

                string aTimeUnit_Ev = anEvent.getTimeUnits();

                List<EventAssignmentStruct> listOfEventAssignments = new List<EventAssignmentStruct>();

                ListOfEventAssignments assignments = anEvent.getListOfEventAssignments();
                for (int j = 0; j < assignments.size(); j++ )
                {
                    EventAssignment anEventAssignment = anEvent.getEventAssignment(j);

                    string aVariable_Ev_As = anEventAssignment.getVariable();
                    ASTNode anASTNode_Ev_As = anEventAssignment.getMath();
                    string aString_Ev_As = libsbml.libsbml.formulaToString(anASTNode_Ev_As);

                    EventAssignmentStruct listOfEventAssignment = new EventAssignmentStruct(
                        aVariable_Ev_As,
                        aString_Ev_As);

                    listOfEventAssignments.Add(listOfEventAssignment);
                }
                EventStruct eventStruct = new EventStruct(
                    anId_Ev,
                    aName_Ev,
                    aString_Ev_Tr,
                    aString_Ev_De,
                    aTimeUnit_Ev,
                    listOfEventAssignments);

                list.Add(eventStruct);
            }
            return list;
        }
コード例 #4
0
ファイル: TestStructs.cs プロジェクト: ecell/ecell3-ide
        public void TestSBML_Event()
        {
            SBMLReader reader = new SBMLReader();
            SBMLDocument document = reader.readSBML(TestConstant.SBML_Oscillation);

            SBML_Model model = new SBML_Model(document.getModel());
            SBML_Event e = new SBML_Event(model);

            EventStruct es = new EventStruct();
            es.ID = "Test1";
            string id = e.getEventID(es);
            Assert.AreEqual("Process:/:Test1", id, "getEventID returns unexpected value.");

            model.Level = 1;
            es.Name = "Test2";
            id = e.getEventID(es);
            Assert.AreEqual("Process:/:Test2", id, "getEventID returns unexpected value.");

            model.Level = 0;
            id = e.getEventID(es);
            Assert.AreEqual("Process:/:Event0", id, "getEventID returns unexpected value.");
        }