/*! * \brief This reaction build a PromoterReaction reaction from a PromoterProperties class * \param props The PromoterProperties which will serve to create the reaction * \return Return the new reaction or null if it fail. */ public static IReaction buildPromoterFromProps(PromoterProperties props) { if (props == null) { return(null); } PromoterParser parser = new PromoterParser(); PromoterReaction reaction = new PromoterReaction(); reaction.setName(props.name); reaction.setBeta(props.beta); reaction.setTerminatorFactor(props.terminatorFactor); reaction.setEnergyCost(props.energyCost); TreeNode <PromoterNodeData> formula = parser.Parse(props.formula); reaction.setFormula(formula); Product newProd; foreach (Product p in props.products) { newProd = new Product(p); reaction.addProduct(newProd); } return(reaction); }
/*! * \brief Load promoter formula by checking the validity of the given string * \param formula The given formula * \return Return true if succeeded and false if value parameter is invalid. */ private bool loadPromoterFormula(string formula) { TreeNode <PromoterNodeData> tree = _parser.Parse(formula); if (tree == null) { Debug.Log("Syntax Error in promoter Formula"); return(false); } setFormula(tree); return(true); }
private float _terminatorFactor; //! Determine the fiability of the terminator (0-1 wich correspond to 0% to 100%) #endregion Fields #region Methods public static IReaction buildPromoterFromProps(PromoterProprieties props) { PromoterParser parser = new PromoterParser(); Promoter reaction = new Promoter(); reaction.setName(props.name); reaction.setBeta(props.beta); reaction.setTerminatorFactor(props.terminatorFactor); TreeNode<PromoterNodeData> formula = parser.Parse(props.formula); reaction.setFormula(formula); Product newProd; foreach (Product p in props.products) { newProd = new Product(p); reaction.addProduct(newProd); } return reaction; }