Multiple separator characters

1 reply [Last post]
Julia's picture
Offline
Joined: 03/29/2012

Hello.
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!
Julia

Ryne's picture
Offline
Joined: 07/31/2009
"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.