END_TEST START_TEST (test_RDFAnnotation_C_parseCVTerms) { SBase_t * obj = (SBase_t *) (Model_getCompartment(m, 0)); XMLNode_t* node = RDFAnnotationParser_parseCVTerms(obj); fail_unless(XMLNode_getNumChildren(node) == 1); const XMLNode_t* rdf = XMLNode_getChild(node, 0); fail_unless(!strcmp(XMLNode_getName(rdf), "RDF")); fail_unless(!strcmp(XMLNode_getPrefix(rdf), "rdf")); fail_unless(!strcmp(XMLNode_getURI(rdf), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); fail_unless(XMLNode_getNumChildren(rdf) == 1); const XMLNode_t* desc = XMLNode_getChild(rdf, 0); fail_unless(!strcmp(XMLNode_getName(desc), "Description")); fail_unless(!strcmp(XMLNode_getPrefix(desc), "rdf")); fail_unless(!strcmp(XMLNode_getURI(desc), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); fail_unless(XMLNode_getNumChildren(desc) == 1); const XMLNode_t * is1 = XMLNode_getChild(desc, 0); fail_unless(!strcmp(XMLNode_getName(is1), "is")); fail_unless(!strcmp(XMLNode_getPrefix(is1), "bqbiol")); fail_unless(XMLNode_getNumChildren(is1) == 1); const XMLNode_t * Bag = XMLNode_getChild(is1, 0); fail_unless(!strcmp(XMLNode_getName(Bag), "Bag")); fail_unless(!strcmp(XMLNode_getPrefix(Bag), "rdf")); fail_unless(!strcmp(XMLNode_getURI(Bag), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); fail_unless(XMLNode_getNumChildren(Bag) == 4); const XMLNode_t * li = XMLNode_getChild(Bag, 0); fail_unless(!strcmp(XMLNode_getName(li), "li")); fail_unless(!strcmp(XMLNode_getPrefix(li), "rdf")); fail_unless(!strcmp(XMLNode_getURI(li), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); fail_unless(XMLNode_getNumChildren(li) == 0); const XMLNode_t * li1 = XMLNode_getChild(Bag, 1); fail_unless(!strcmp(XMLNode_getName(li1), "li")); fail_unless(!strcmp(XMLNode_getPrefix(li1), "rdf")); fail_unless(!strcmp(XMLNode_getURI(li1), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); fail_unless(XMLNode_getNumChildren(li1) == 0); const XMLNode_t * li2 = XMLNode_getChild(Bag, 2); fail_unless(!strcmp(XMLNode_getName(li2), "li")); fail_unless(!strcmp(XMLNode_getPrefix(li2), "rdf")); fail_unless(!strcmp(XMLNode_getURI(li2), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); fail_unless(XMLNode_getNumChildren(li2) == 0); const XMLNode_t * li3 = XMLNode_getChild(Bag, 3); fail_unless(!strcmp(XMLNode_getName(li3), "li")); fail_unless(!strcmp(XMLNode_getPrefix(li3), "rdf")); fail_unless(!strcmp(XMLNode_getURI(li3), "http://www.w3.org/1999/02/22-rdf-syntax-ns#")); fail_unless(XMLNode_getNumChildren(li3) == 0); XMLNode_free(node); }
END_TEST START_TEST (test_SBMLConvertStrict_convertSBO) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 4); Model_t * m = SBMLDocument_createModel(d); /* create a compartment with SBO */ Compartment_t * c = Model_createCompartment(m); Compartment_setId(c, "c"); SBase_setSBOTerm((SBase_t *) (c), 240); fail_unless( SBMLDocument_setLevelAndVersionStrict(d, 2, 3) == 1 ); fail_unless( SBMLDocument_getLevel (d) == 2, NULL ); fail_unless( SBMLDocument_getVersion(d) == 3, NULL ); fail_unless( SBMLDocument_setLevelAndVersionStrict(d, 2, 2) == 1 ); fail_unless( SBMLDocument_getLevel (d) == 2, NULL ); fail_unless( SBMLDocument_getVersion(d) == 2, NULL ); /* check that sbo term has been removed */ Compartment_t *c1 = Model_getCompartment(SBMLDocument_getModel(d), 0); fail_unless (SBase_getSBOTerm((SBase_t *) (c1)) == -1, NULL ); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLConvertStrict_convertNonStrictSBO) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 4); Model_t * m = SBMLDocument_createModel(d); /* create a compartment with SBO */ Compartment_t * c = Model_createCompartment(m); Compartment_setId(c, "c"); Compartment_setConstant(c, 0); SBase_setSBOTerm((SBase_t *) (c), 64); /* conversion to L2V3 and L2V2 should fail due to bad SBO * but to L2V1 and L1 should pass as sbo terms not applicable */ fail_unless( SBMLDocument_setLevelAndVersionStrict(d, 2, 3) == 0 ); fail_unless( SBMLDocument_getLevel (d) == 2, NULL ); fail_unless( SBMLDocument_getVersion(d) == 4, NULL ); fail_unless( SBMLDocument_setLevelAndVersionStrict(d, 2, 2) == 0 ); fail_unless( SBMLDocument_getLevel (d) == 2, NULL ); fail_unless( SBMLDocument_getVersion(d) == 4, NULL ); fail_unless( SBMLDocument_setLevelAndVersionStrict(d, 2, 1) == 1 ); fail_unless( SBMLDocument_getLevel (d) == 2, NULL ); fail_unless( SBMLDocument_getVersion(d) == 1, NULL ); /* check that sbo term has been removed */ Compartment_t *c1 = Model_getCompartment(SBMLDocument_getModel(d), 0); fail_unless (SBase_getSBOTerm((SBase_t *) (c1)) == -1, NULL ); fail_unless( SBMLDocument_setLevelAndVersionStrict(d, 1, 2) == 1 ); fail_unless( SBMLDocument_getLevel (d) == 1, NULL ); fail_unless( SBMLDocument_getVersion(d) == 2, NULL ); /* check that sbo term has been removed */ Compartment_t *c2 = Model_getCompartment(SBMLDocument_getModel(d), 0); fail_unless (SBase_getSBOTerm((SBase_t *) (c2)) == -1, NULL ); SBMLDocument_free(d); }
void printSpecies(Model_t *m, FILE *f) { int i, j; Species_t *s; Compartment_t *c; fprintf(f, "\n"); fprintf(f, "# Initial Conditions for Species and Compartments:\n"); for ( i=0; i<Model_getNumCompartments(m); i++ ) { if ( i== 0 ) fprintf(f, "# Compartments:\n"); c = Model_getCompartment(m,i); if(Compartment_isSetId(c)) fprintf(f, "%s ", Compartment_getId(c)); if(Compartment_isSetName(c)) fprintf(f, "(%s) ", Compartment_getName(c)); if ( Compartment_isSetVolume(c) ) fprintf(f, "= %g; ", Compartment_getSize(c)); fprintf(f, "%s", Compartment_getConstant(c) ? "" : "variable; "); if(Compartment_isSetOutside(c)) fprintf(f, "outside %s; ", Compartment_getOutside(c)); /* fprintf(f, "\n"); */ fprintf(f, "dimensions %d; ", Compartment_getSpatialDimensions(c)); if(Compartment_isSetUnits(c)) fprintf(f, "[%s]; ", Compartment_getUnits(c)); fprintf(f, "\n"); fprintf(f, "# Species concentrations in `compartment' %s\n", Compartment_getId(c)); for(j=0;j<Model_getNumSpecies(m);j++){ s = Model_getSpecies(m,j); if(strcmp(Species_getCompartment(s), Compartment_getId(c))==0){ fprintf(f, "%s ", Species_getId(s)); if(Species_isSetName(s)) fprintf(f, "(%s) ", Species_getName(s)); if ( Species_isSetInitialAmount(s) ) fprintf(f, "= %g/%g; ", Species_getInitialAmount(s), Compartment_getSize(c)); else if ( Species_isSetInitialConcentration(s) ) fprintf(f, "= %g; ", Species_getInitialConcentration(s)); else fprintf(f, "# no initial value;"); fprintf(f, "%s", Species_getBoundaryCondition(s) ? "boundary;" : ""); fprintf(f, "%s", Species_getConstant(s) ? "constant;" : ""); if(Species_isSetCharge(s)) fprintf(f, "charge = %d; ", Species_getCharge(s)); fprintf(f, "\n"); } } fprintf(f, "\n"); } }
END_TEST START_TEST (test_RDFAnnotation_C_delete) { SBase_t * obj = (SBase_t *) (Model_getCompartment(m, 0)); XMLNode_t* node = RDFAnnotationParser_parseCVTerms(obj); XMLNode_t* n1 = RDFAnnotationParser_deleteRDFAnnotation(node); fail_unless(XMLNode_getNumChildren(n1) == 0); fail_unless(!strcmp(XMLNode_getName(n1), "annotation")); XMLNode_free(node); }
END_TEST START_TEST (test_SBMLConvertStrict_convertToL1) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 4); /* create model with metaid */ Model_t * m = SBMLDocument_createModel(d); SBase_setMetaId((SBase_t *) (m), "_m"); /* create a compartment with sbo*/ Compartment_t * c = Model_createCompartment(m); Compartment_setId(c, "c"); SBase_setSBOTerm((SBase_t *) (c), 240); /* create a species with hasOnlySubstanceUnits = true*/ Species_t *s = Model_createSpecies(m); Species_setId(s, "s"); Species_setCompartment(s, "c"); Species_setHasOnlySubstanceUnits(s, 1); fail_unless( SBMLDocument_setLevelAndVersionStrict(d, 1, 2) == 1 ); fail_unless( SBMLDocument_getLevel (d) == 1, NULL ); fail_unless( SBMLDocument_getVersion(d) == 2, NULL ); ///* check that attributes that are no longer valid have been removed */ Model_t * m1 = SBMLDocument_getModel(d); fail_unless (SBase_getMetaId((SBase_t *) (m1)) == NULL); Compartment_t *c1 = Model_getCompartment(m1, 0); fail_unless (SBase_getSBOTerm((SBase_t *) (c1)) == -1, NULL ); Species_t *s1 = Model_getSpecies(m1, 0); fail_unless (Species_getHasOnlySubstanceUnits(s1) == 0); SBMLDocument_free(d); }
END_TEST START_TEST (test_SBMLConvert_convertToL3_compartment) { SBMLDocument_t *d = SBMLDocument_createWithLevelAndVersion(2, 2); Model_t *m = SBMLDocument_createModel(d); const char *sid = "C"; Compartment_t *c = Model_createCompartment(m); Compartment_t *c1; Compartment_setId ( c, sid ); fail_unless( SBMLDocument_setLevelAndVersionNonStrict(d, 3, 1) == 1, NULL); c1 = Model_getCompartment(m, 0); fail_unless(Compartment_hasRequiredAttributes(c1) == 1); SBMLDocument_free(d); }
int main (int argc, char* argv[]) { unsigned int i,j,errors; const char* filename = argv[1]; SBMLDocument_t* document; Model_t* m; if (argc != 3) { printf("\nUsage: unsetNotes <input-filename> <output-filename>\n"); return 1; } filename = argv[1]; document = readSBML(filename); errors = SBMLDocument_getNumErrors(document); if(errors > 0) { SBMLDocument_printErrors(document, stderr); SBMLDocument_free(document); return errors; } m = SBMLDocument_getModel( document ); SBase_unsetNotes((SBase_t*)m); for(i=0; i < Model_getNumReactions(m); i++) { Reaction_t* re = Model_getReaction(m, i); SBase_unsetNotes((SBase_t*)re); for(j=0; j < Reaction_getNumReactants(re); j++) { SpeciesReference_t* rt = Reaction_getReactant(re,j); SBase_unsetNotes((SBase_t*)rt); } for(j=0; j < Reaction_getNumProducts(re); j++) { SpeciesReference_t* rt = Reaction_getProduct(re,j); SBase_unsetNotes((SBase_t*)rt); } for(j=0; j < Reaction_getNumModifiers(re); j++) { SpeciesReference_t* md = Reaction_getModifier(re,j); SBase_unsetNotes((SBase_t*)md); } if(Reaction_isSetKineticLaw(re)) { KineticLaw_t* kl = Reaction_getKineticLaw(re); SBase_unsetNotes((SBase_t*)kl); for(j=0; j < KineticLaw_getNumParameters(kl); j++) { Parameter_t* pa = KineticLaw_getParameter(kl, j); SBase_unsetNotes((SBase_t*)pa); } } } for(i=0; i < Model_getNumSpecies(m); i++) { Species_t* sp = Model_getSpecies(m, i); SBase_unsetNotes((SBase_t*)sp); } for(i=0; i < Model_getNumCompartments(m); i++) { Compartment_t* sp = Model_getCompartment(m,i); SBase_unsetNotes((SBase_t*)sp); } for(i=0; i < Model_getNumFunctionDefinitions(m); i++) { FunctionDefinition_t* sp = Model_getFunctionDefinition(m,i); SBase_unsetNotes((SBase_t*)sp); } for(i=0; i < Model_getNumUnitDefinitions(m); i++) { UnitDefinition_t* sp = Model_getUnitDefinition(m, i); SBase_unsetNotes((SBase_t*)sp); } for(i=0; i < Model_getNumParameters(m); i++) { Parameter_t* sp = Model_getParameter(m, i); SBase_unsetNotes((SBase_t*)sp); } for(i=0; i < Model_getNumRules(m); i++) { Rule_t* sp = Model_getRule(m, i); SBase_unsetNotes((SBase_t*)sp); } for(i=0; i < Model_getNumInitialAssignments(m); i++) { InitialAssignment_t* sp = Model_getInitialAssignment(m, i); SBase_unsetNotes((SBase_t*)sp); } for(i=0; i < Model_getNumEvents(m); i++) { Event_t* sp = Model_getEvent(m, i); SBase_unsetNotes((SBase_t*)sp); for(j=0; j < Event_getNumEventAssignments(sp); j++) { EventAssignment_t* ea = Event_getEventAssignment(sp, j); SBase_unsetNotes((SBase_t*)ea); } } for(i=0; i < Model_getNumSpeciesTypes(m); i++) { SpeciesType_t* sp = Model_getSpeciesType(m, i); SBase_unsetNotes((SBase_t*)sp); } for(i=0; i < Model_getNumConstraints(m); i++) { Constraint_t* sp = Model_getConstraint(m, i); SBase_unsetNotes((SBase_t*)sp); } writeSBML(document, argv[2]); SBMLDocument_free(document); return errors; }
int main (int argc, char* argv[]) { unsigned int i,j,errors; const char* filename; SBMLDocument_t* document; Model_t* m; if (argc != 2) { printf("\nUsage: printNotes filename\n\n"); return 1; } filename = argv[1]; document = readSBML(filename); errors = SBMLDocument_getNumErrors( document); printf("\n%s\n\n", filename); if(errors > 0) { SBMLDocument_printErrors(document, stderr); SBMLDocument_free(document); return errors; } /* Model */ m = SBMLDocument_getModel(document); printNotes((SBase_t*)m, Model_getId(m)); for(i=0; i < Model_getNumReactions(m); i++) { Reaction_t* re = Model_getReaction( m, i); printNotes((SBase_t*)re, Reaction_getId(re)); /* SpeciesReference (Reactant) */ for(j=0; j < Reaction_getNumReactants( re); j++) { SpeciesReference_t* rt = Reaction_getReactant(re, j); if (SBase_isSetNotes((SBase_t*) rt)) printf(" "); printNotes((SBase_t*)rt, SpeciesReference_getSpecies( rt ) ); } /* SpeciesReference (Product) */ for(j=0; j < Reaction_getNumProducts( re ); j++) { SpeciesReference_t* rt = Reaction_getProduct( re, j); if (SBase_isSetNotes((SBase_t*) rt)) printf(" "); printNotes((SBase_t*)rt, SpeciesReference_getSpecies( rt ) ); } /* ModifierSpeciesReference (Modifiers) */ for(j=0; j < Reaction_getNumModifiers( re ); j++) { SpeciesReference_t* md = Reaction_getModifier(re, j); if (SBase_isSetNotes((SBase_t*) md)) printf(" "); printNotes((SBase_t*)md, SpeciesReference_getSpecies( md ) ); } /* KineticLaw */ if(Reaction_isSetKineticLaw( re )) { KineticLaw_t* kl = Reaction_getKineticLaw( re ); if (SBase_isSetNotes((SBase_t*) kl)) printf(" "); printNotes((SBase_t*)kl, ""); /* Parameter */ for(j=0; j < KineticLaw_getNumParameters( kl ); j++) { Parameter_t* pa = KineticLaw_getParameter( kl, j); if (SBase_isSetNotes((SBase_t*) pa)) printf(" "); printNotes((SBase_t*)pa, Parameter_getId(pa)); } } } /* Species */ for(i=0; i < Model_getNumSpecies(m); i++) { Species_t* sp = Model_getSpecies(m, i); printNotes((SBase_t*)sp, Species_getId(sp)); } /* Compartments */ for(i=0; i < Model_getNumCompartments( m ); i++) { Compartment_t* sp = Model_getCompartment(m, i); printNotes((SBase_t*)sp, Compartment_getId(sp)); } /* FunctionDefinition */ for(i=0; i < Model_getNumFunctionDefinitions(m); i++) { FunctionDefinition_t* sp = Model_getFunctionDefinition(m, i); printNotes((SBase_t*)sp, FunctionDefinition_getId(sp)); } /* UnitDefinition */ for(i=0; i < Model_getNumUnitDefinitions(m); i++) { UnitDefinition_t* sp = Model_getUnitDefinition( m, i); printNotes((SBase_t*)sp, UnitDefinition_getId(sp)); } /* Parameter */ for(i=0; i < Model_getNumParameters( m ); i++) { Parameter_t* sp = Model_getParameter( m, i); printNotes((SBase_t*)sp, Parameter_getId(sp)); } /* Rule */ for(i=0; i < Model_getNumReactions( m ); i++) { Rule_t* sp = Model_getRule(m, i); printNotes((SBase_t*)sp, ""); } /* InitialAssignment */ for(i=0; i < Model_getNumInitialAssignments(m); i++) { InitialAssignment_t* sp = Model_getInitialAssignment(m, i); printNotes((SBase_t*)sp, ""); } /* Event */ for(i=0; i < Model_getNumEvents(m); i++) { Event_t* sp = Model_getEvent(m, i); printNotes((SBase_t*)sp, Event_getId(sp)); /* Trigger */ if(Event_isSetTrigger( sp )) { Trigger_t* tg = Event_getTrigger(sp); if (SBase_isSetNotes( (SBase_t*) tg)) printf( " " ); printNotes((SBase_t*)tg, ""); } /* Delay */ if(Event_isSetDelay(sp)) { Delay_t* dl = Event_getDelay(sp); if (SBase_isSetNotes( (SBase_t*) dl)) printf( " " ); printNotes((SBase_t*) dl, ""); } /* EventAssignment */ for(j=0; j < Event_getNumEventAssignments(sp); j++) { EventAssignment_t* ea = Event_getEventAssignment(sp, j); if (SBase_isSetNotes( (SBase_t*) ea)) printf( " " ); printNotes((SBase_t*)ea, ""); } } /* SpeciesType */ for(i=0; i < Model_getNumSpeciesTypes(m); i++) { SpeciesType_t* sp = Model_getSpeciesType(m, i); printNotes((SBase_t*)sp, SpeciesType_getId(sp)); } /* Constraints */ for(i=0; i < Model_getNumConstraints(m); i++) { Constraint_t* sp = Model_getConstraint(m, i); printNotes((SBase_t*)sp, ""); } SBMLDocument_free( document ); return errors; }
int main(int argc, char** argv) { myspecies_t* species; //pinakas ximikon stoixeion reaction_t *reaction; //20 ximikes antidraseis int i,j,k,num_species, num_reactions; double V; FILE *pf1, *pf2, *pf3, *pf4, *pf5, *pf6, *fsize; SBMLDocument_t *d; Model_t *m; ListOf_t *lo; Species_t *sp; Reaction_t *re; Parameter_t *p; KineticLaw_t *kin; SpeciesReference_t *sr; Compartment_t *c; //an den exei 2 argument if(argc != 2) { printf("Ektelesi: %s <SBML xml>\n", argv[0]); exit(-1); } //arxeia results if((pf1 = fopen("RT_reactant.txt", "w")) == NULL) { printf("Error create file %s\n","RT_reactant.txt"); exit(-1); } if((pf2 = fopen("RT_product.txt", "w")) == NULL) { printf("Error create file %s\n","RT_product.txt"); fclose(pf1); exit(-1); } if((pf3 = fopen("VT_reactant.txt", "w")) == NULL) { printf("Error create file %s\n","VT_reactant.txt"); fclose(pf1); fclose(pf2); exit(-1); } if((pf4 = fopen("VT_product.txt", "w")) == NULL) { printf("Error create file %s\n","VT_product.txt"); fclose(pf1); fclose(pf2); fclose(pf3); exit(-1); } if((pf5 = fopen("ST.txt", "w")) == NULL) { printf("Error create file %s\n","ST.txt"); fclose(pf1); fclose(pf2); fclose(pf3); fclose(pf4); exit(-1); } if((pf6 = fopen("k_parameter.txt", "w")) == NULL) { printf("Error create file %s\n","k_parameter.txt"); fclose(pf1); fclose(pf2); fclose(pf3); fclose(pf4); fclose(pf5); exit(-1); } fsize = fopen("fsize.txt", "w"); //anoigo to SBML arxeio d = readSBML(argv[1]); //d=readSBML("C:/home/orsalia/BIOMD0000000001"); m = SBMLDocument_getModel(d); num_species = Model_getNumSpecies(m); num_reactions = Model_getNumReactions(m); fprintf(fsize,"%d\n",num_species); fprintf(fsize,"%d\n",num_reactions); //Pairnoume ton ogko c = Model_getCompartment(m,0); V = Compartment_getVolume(c); //Desmeysi pinakon domon gia stoixeia kai reaction species = (myspecies_t*) malloc(num_species*sizeof(myspecies_t)); reaction = (reaction_t*) malloc(num_reactions*sizeof(reaction_t)); //gemizo ton pinaka me tis arxikes sigkentroseis ton stoixeion for(i=0;i<num_species;i++) { sp = Model_getSpecies(m,i); species[i].conc = Species_getInitialConcentration(sp)?Species_getInitialConcentration(sp):Species_getInitialAmount(sp); species[i].name = malloc(50*sizeof(char)); strcpy(species[i].name,Species_getId(sp)); strcpy(species[i].name2,Species_getName(sp)); } ///gemizo ton pinaka domon ton reaction for(i=0;i<num_reactions;i++) { re = Model_getReaction(m,i); kin = Reaction_getKineticLaw(re); p = KineticLaw_getParameter(kin,0); reaction[i].react_num = Reaction_getNumReactants(re); reaction[i].product_num = Reaction_getNumProducts(re); reaction[i].react = (x_vector_t*) malloc(reaction[i].react_num*sizeof(x_vector_t)); reaction[i].product = (x_vector_t*) malloc(reaction[i].product_num*sizeof(x_vector_t)); for(j=0;j<reaction[i].react_num;j++) { sr = Reaction_getReactant(re,j); for(k=0;k<num_species;k++) { //an vrei to stoixeio ston megalo pinaka krata ti thesi tou if (strcmp(SpeciesReference_getSpecies(sr),species[k].name) == 0) { reaction[i].react[j].x = k; //ithesi ston pinaka species reaction[i].react[j].v = (-1) * SpeciesReference_getStoichiometry(sr); break; } } } for(j=0;j<reaction[i].product_num;j++) { sr = Reaction_getProduct(re,j); for(k=0;k<num_species;k++) { //an vrei to stoixeio ston megalo pinaka krata ti thesi tou if (strcmp(SpeciesReference_getSpecies(sr),species[k].name) == 0) { reaction[i].product[j].x = k; //ithesi ston pinaka species reaction[i].product[j].v = SpeciesReference_getStoichiometry(sr); break; } } } reaction[i].k = Parameter_getValue(p); //vlepo tin eidos antidraseis einai kai vazo to c tis kathe antidrasis if(reaction[i].react_num == 3) { reaction[i].type = 7; reaction[i].c = Parameter_getValue(p)/(V*V); //mallon } else if(reaction[i].react_num == 2) { sr = Reaction_getReactant(re,0); if (SpeciesReference_getStoichiometry(sr) == 2 ) { reaction[i].type = 5; reaction[i].c = 2*Parameter_getValue(p)/(V*V); //oute kan } else { sr = Reaction_getReactant(re,1); if (SpeciesReference_getStoichiometry(sr) == 2 ) { reaction[i].type = 6; reaction[i].c = 2*Parameter_getValue(p)/(V*V); //oute kan } else { reaction[i].type = 2; reaction[i].c = Parameter_getValue(p)/V; } } } else //if(reaction[i].react_num == 1) { sr = Reaction_getReactant(re,0); if (SpeciesReference_getStoichiometry(sr) == 2 ) //an einai bimolecular me to idio stoixeio { reaction[i].type = 3; reaction[i].c = 2*Parameter_getValue(p)/V; } else if(SpeciesReference_getStoichiometry(sr) == 3 ) { reaction[i].type = 4; reaction[i].c = 3*Parameter_getValue(p)/(V*V); //mallon } else { reaction[i].type = 1; reaction[i].c = Parameter_getValue(p); } } } for(i=0;i<num_species;i++) { //fprintf(pf5,"%d\t%s\n",(int)species[i].conc,species[i].name2); fprintf(pf5,"%d\t\n",(int)species[i].conc); } for(i=0;i<num_reactions;i++) { for(k=0;k<reaction[i].react_num;k++) { fprintf(pf1,"%d\t",reaction[i].react[k].x+1); fprintf(pf3,"%d\t",reaction[i].react[k].v); } for(k=0;k<reaction[i].product_num;k++) { fprintf(pf2,"%d\t",reaction[i].product[k].x+1); fprintf(pf4,"%d\t",reaction[i].product[k].v); } fprintf(pf1,"\n"); fprintf(pf3,"\n"); fprintf(pf2,"\n"); fprintf(pf4,"\n"); fprintf(pf6,"%f\n",reaction[i].k); } fclose(pf1); fclose(pf2); fclose(pf3); fclose(pf4); fclose(pf5); fclose(pf6); fclose(fsize); }