Skip to content

Commit e05494b

Browse files
committed
sbml folder can be supplied
1 parent eeec981 commit e05494b

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

addons/PhysiPKPD/src/PhysiPKPD_PK.cpp

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,22 +104,37 @@ void setup_pk_model(Pharmacokinetics_Model *pNew, pugi::xml_node pk_node)
104104
rrc::RRCDataPtr result;
105105

106106
// reading given SBML
107+
std::string sbml_folder = "./config/"; // default folder for SBML files
108+
if (!(pk_node.child("sbml_folder")))
109+
{
110+
std::cout << "PhysiPKPD WARNING: No SBML folder provided for " << pNew->substrate_name << "." << std::endl
111+
<< " You may include a folder as a string in " << "sbml_folder" << std::endl
112+
<< " For now, PhysiPKPD will use " << sbml_folder << " as the default folder for SBML files." << std::endl
113+
<< std::endl;
114+
}
115+
else
116+
{
117+
sbml_folder = pk_node.child("sbml_folder").text().as_string();
118+
// check that sbml_folder ends in a file separator
119+
if (sbml_folder.back() != '/')
120+
{
121+
sbml_folder += "/";
122+
}
123+
}
107124
std::string sbml_filename = "PK_default.xml";
108-
// if (parameters.strings.find_index(pNew->substrate_name + "_sbml_filename")==-1)
109125
if (!(pk_node.child("sbml_filename")))
110126
{
111127
std::cout << "PhysiPKPD WARNING: No SBML filename provided for " << pNew->substrate_name << "." << std::endl
112-
<< " You may include a filename as a string in " << pNew->substrate_name + "_sbml_filename" << std::endl
113-
<< " For example: <" << pNew->substrate_name << "_sbml_filename type=\"string\">PK_default.xml</" << pNew->substrate_name + "_sbml_filename>" << std::endl
114-
<< " Place that file in ./config/ for PhysiPKPD to properly locate it." << std::endl
115-
<< " For now, PhysiPKPD will use ./config/" + sbml_filename << std::endl
128+
<< " You may include a filename as a string in " << "sbml_filename" << std::endl
129+
<< " Place that file in " << sbml_folder << " for PhysiPKPD to properly locate it." << std::endl
130+
<< " For now, PhysiPKPD will use " + sbml_folder + "/" + sbml_filename << std::endl
116131
<< std::endl;
117132
}
118133
else
119134
{
120135
sbml_filename = pk_node.child("sbml_filename").text().as_string();
121136
}
122-
sbml_filename = "./config/" + sbml_filename;
137+
sbml_filename = sbml_folder + sbml_filename;
123138
char sbml[sbml_filename.length()+1];
124139
strcpy(sbml, sbml_filename.c_str());
125140

0 commit comments

Comments
 (0)