You are here

Multiple separator characters

2 posts / 0 new
Last post
Julia's picture
Joined: 03/29/2012 - 09:40
Multiple separator characters

We are currently developing an environment in R which would allow us analysing data without physical sharing of them, i.e. data (from one or several sources) are located on external server(-s) and R commands are sent to that server via a secured authenticated network. Only restricted summary statistics would be sent back to the analysis computer without disclosing any data. I will not go into details here, but just to give an idea of what it is.
We would like to build OpenMx into that environment as well so that it would allow twin researches to analyse their data without having to share the data files themselves (both size issues and security reasons).

Now to the question. I am trying to run a simple saturated univariate model to begin with. It works fine if I run it in OpenMx itself, but when I run it via DataSHIELD (this is our environment), I get an error that I never had before and cannot find anywhere else in this forum:

Error : The reference '..1' has multiple separator characters.

I managed to find that it comes from omxReversIdentifier function and is passed to mxRun through omxCheckNamespace. But it did not shed any light for me on what is wrong. Could anyone tell me a bit more about this error and where it comes from? I would guess that it has something to do with the way how DataSHIELD calls data or models (since it works fine in OpenMx itself), but I would need a bit more details about the error in order to be able to explain it to DataSHIELD IT-team.
What is exactly "namespace" in the internal functions?

Any help would be highly appreciated!
Thanks in advance!

Ryne's picture
Joined: 07/31/2009 - 15:12
"Namespace" refers to the set

"Namespace" refers to the set of names assigned to the models, matrices, algebras, constraints and free parameters (matrix elements) in an MxModel. These (and other S4 objects in R) can thus be referenced by name. For example, mxAlgebras can include expressions like "A + B" and thus reference the objects A and B by name.

Sometimes, the flexibility of OpenMx means that referencing objects gets a little complicated. Models may contain (sub)models, which may contain their own (sub)models, or we might want to refer to portions of the data, or model structures like the objective function value. To deal with these issues, dots (".") can be used to refer to these objects, with the general form "where.what". So, "example.A" will reference the object "A" in the model "example". Similarly, "data.x" will reference a definition variable.

However, you can't have two dots in the same name, hence your error. Similarly, you can't have dots in variable names (data) or object names. Many R functions that manipulate strings and data use the dot as a deliminator by default, including the rep() and reshape() functions. I'm going to guess that some part of the data has some of these invalid variable names, or that DATASHIELD is renaming or reshaping data and putting these things in.