Hi Darryl,

I'm working on approaches for representing parameter uncertainty in CellML, and was wondering if you had any more recent draft specifications for the SBML dist package than the 2005 version on the SBML site (which currently only seems to have the 2005 draft and your presentation from 2010) that you were willing to share?

I think the realisastions based approach discussed in your 2010 presentation could be a good way to go in CellML for representing distributions, alongside either a fixed set of univariate and multivariate distributions or a general facility for describing a distribution (possibly as a series of univariate distributions, optionally conditional on other parameters, including other randomly sampled parameters) from p.d.fs (solver software would either pattern match for known p.d.fs, or try to analytically or numerically invert the function).

We obviously also need some kind of operator to say that a parameter has a fixed but uncertain value, and that a given distribution is the probability distribution for the parameter (I think using MathML to describe that, with a csymbol operator, would be the most consistent with the approach taken in CellML); for example, if we believe that parameter x has a fixed value:

e.g. x(0) ~ N(mu=0, sigma^2 = 1)

  <apply>
<csymbol definitionURL="http://www.cellml.org/1.2#uncertainWithDistribution"/>
    <apply>
<csymbol definitionURL="http://www.cellml.org/1.2#atBoundVariableValue"/>
      <ci>x</ci>
      <cn cellml:units="second">0</cn>
    </apply>
    <apply>
<csymbol definitionURL="http://www.cellml.org/1.2#distributionFrompdf"/>
      <apply>
        <csymbol definitionURL="http://www.cellml.org/1.2#normalpdf"/>
        <cn cellml:units="metre">0</cn>
        <cn cellml:units="square_metre">1</cn>
      </apply>
    </apply>
  </apply>

Or (x(0), y(0)) ~ a distribution from realisations...

  <apply>
<csymbol definitionURL="http://www.cellml.org/1.2#uncertainWithDistribution"/>
    <vector>
      <apply>
<csymbol definitionURL="http://www.cellml.org/1.2#atBoundVariableValue"/>
        <ci>x</ci>
        <cn cellml:units="second">0</cn>
      </apply>
      <apply>
<csymbol definitionURL="http://www.cellml.org/1.2#atBoundVariableValue"/>
        <ci>y</ci>
        <cn cellml:units="second">0</cn>
      </apply>
    </vector>
    <apply>
<csymbol definitionURL="http://www.cellml.org/1.2#distributionFromRealisations"/> <!-- For consistency with the univariate case, this represented in MathML as a 'vector of vectors' rather than a matrix; we could perhaps treat a MathML matrix as syntactic sugar for a vector of vectors anyway. -->
      <vector>
        <vector><cn units="metre">1</cn><cn units="metre">2</cn></vector>
        <vector><cn units="metre">3</cn><cn units="metre">3</cn></vector>
        <vector><cn units="metre">1</cn><cn units="metre">5</cn></vector>
        <vector><cn units="metre">2</cn><cn units="metre">4</cn></vector>
        <vector><cn units="metre">1</cn><cn units="metre">5</cn></vector>
        <vector><cn units="metre">1</cn><cn units="metre">3</cn></vector>
        <vector><cn units="metre">3</cn><cn units="metre">5</cn></vector>
        <vector><cn units="metre">2</cn><cn units="metre">5</cn></vector>
        <vector><cn units="metre">1</cn><cn units="metre">4</cn></vector>
        <vector><cn units="metre">3</cn><cn units="metre">5</cn></vector>
        <!-- And so on - obviously this could lead to big files... -->
      </vector>
    </apply>
  </apply>

Any comments you may have on this approach would be greatly appreciated.

Best wishes,
Andrew
_______________________________________________
cellml-discussion mailing list
cellml-discussion@cellml.org
http://lists.cellml.org/mailman/listinfo/cellml-discussion

Reply via email to