Thanks, Valentin for the suggestion. I'm not sure I can go that way. I include below the statements from the paper containing the knowledge on the basis of which I would like to know at specified [H] the concentration of each of the many metabolites given the constraints. I have tried to contact the author to get the full code but it seems difficult.
BW Troels hatp <- 10^6.494*H*atp hhatp <- 10^3.944*H*hatp hhhatp <- 10^1.9*H*hhatp hhhhatp <- 10*H*hhhatp mgatp <- 10^4.363*atp*mg mghatp <- 10^2.299*hatp*mg mg2atp <- 10^1-7*mg*mgatp katp <- 10^0.959*atp*k hadp <- 10^6.349*adp*H hhadp <- 10^3.819*hadp*H hhhadp <- 10*H*hhadp mgadp <- 10^3.294*mg*adp mghadp <- 10^1.61*mg*hadp mg2adp <- 10*mg*mgadp kadp <- 10^0.82*k*adp hpi <- 10^11.616*H*pi hhpi <- 10^6.7*h*hpi hhhpi <- 10^1.962*h*hhpi mgpi <- 10^3.4*mg*pi mghpi <- 10^1.946*mg*hpi mghhpi <- 10^1.19*mg*hhpi kpi <- 10^0.6*k*pi khpi <- 10^1.218*k*hpi khhpi <- 10^-0.2*k*hhpi hpcr <- 10^14.3*h*pcr hhpcr <- 10^4.5*h*hpcr hhhpcr <- 10^2.7*h*hhpcr hhhhpcr <- 100*h*hhhpcr mghpcr <- 10^1.6*mg*hpcr kpcr <- 10^0.74*k*pcr khpcr <- 10^0.31*k*hpcr khhpcr <- 10^-0.13*k*hhpcr hcr <- 10^14.3*h*cr hhcr <- 10^2.512*h*hcr hlactate <- 10^3.66*h*lactate mglactate <- 10^0.93*mg*lactate tatp <- atp + hatp + hhatp + hhhatp + mgatp + mghatp + mg2atp + katp tadp <- adp + hadp + hhadp + hhhadp + mghadp + mgadp + mg2adp + kadp tpi <- pi + hpi + hhpi + hhhpi + mgpi + mghpi + mghhpi + kpi + khpi + khhpi tpcr <- pcr + hpcr + hhpcr + hhhpcr + hhhhpcr + mghpcr + kpcr + khpcr + khhpcr tcr <- cr + hcr + hhcr tmg <- mg + mgatp + mghatp + mg2atp + mgadp + mghadp + mg2adp + mgpi + kghpi + mghhpi + mghpcr + mglactate tk <- k + katp + kadp + kpi + khpi + khhpi + kpcr + khpcr + khhpcr tlactate <- lactate + hlactate + mglactate # conditions tatp <- 0.008 tpcr <- 0.042 tcr <- 0.004 tadp <- 0.00001 tpi <- 0.003 tlactate <- 0.005 # free K and Mg constrained to be fixed # mg <- 0.0006 k <- 0.12 Den 19-01-2023 kl. 12:11 skrev Valentin Petzel: > > Hello Troels, > > > As fair as I understand you attempt to numerically solve a system of > non linear equations in multiple variables in R. R does not provide > this functionality natively, but have you tried multiroot from the > rootSolve package: > > > https://cran.r-project.org/web/packages/rootSolve/rootSolve.pdf > > > multiroot is called like > > > multiroot(f, start, ...) > > > where f is a function of one argument which is a vector of n values > (representing the n variables) and returning a vector of d values > (symbolising the d equations) and start is a vector of length n. > > > E.g. if we want so solve > > > x^2 + y^2 + z^2 = 1 > > x^3-y^3 = 0 > > x - z = 0 > > > (which is of course equivalent to x = y = z, x^2 + y^2 + z^2 = 1, so x > = y = z = ±sqrt(1/3) ~ 0.577) > > > we’d enter > > > f <- function(x) c(x[1]**2 + x[2]**2 + x[3]**2 - 1, x[1]**3 - x[2]**3, > x[1] - x[3]) > > > multiroot(f, c(0,0,0)) > > > which yields > > > $root > > [1] 0.5773502 0.5773505 0.5773502 > > > $f.root > > [1] 1.412261e-07 -2.197939e-07 0.000000e+00 > > > $iter > > [1] 31 > > > $estim.precis > > [1] 1.2034e-07 > > > Best regards, > > Valentin > > > Am Donnerstag, 19. Jänner 2023, 10:41:22 CET schrieb Troels Ring: > > > Hi friends - I hope this is not a misplaced question. From the > > > literature (Kushmerick AJP 1997;272:C1739-C1747) I have a series of > > > Mathematica equations which are solved together to yield over different > > > pH values the concentrations of metabolites in skeletal muscle using the > > > Mathematica function FindRoot((E1,E2...),(V2,V2..)] where E is a list of > > > equations and V list of variables. Most of the equations are individual > > > binding reactions of the form 10^6.494*atp*h == hatp and next > > > 10^9.944*hatp*h ==hhatp describing binding of singe protons or Mg or K > > > to ATP or creatin for example, but we also have constraints giving total > > > concentrations of say ATP i.e. ATP + ATPH, ATPH2..ATP.Mg > > > > > > I have, without success, tried to find ways to do this in R - I have 36 > > > equations on 36 variables and 8 equations on total concentrations. As > > > far as I can see from the definition of FindRoot in Wolfram, Newton > > > search or secant search is employed. > > > > > > I'm on Windows R 4.2.2 > > > > > > Best wishes > > > Troels Ring, MD > > > Aalborg, Denmark > > > > > > ______________________________________________ > > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > > https://stat.ethz.ch/mailman/listinfo/r-help > > > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > > > and provide commented, minimal, self-contained, reproducible code. > > > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.