gitter-lab / SINGE

Gene regulatory network reconstruction from pseudotemporal single-cell gene expression data
MIT License
11 stars 6 forks source link

SINGE shell script and separation of GLG_Instance and Aggregate functions #37

Closed atuldeshpande closed 5 years ago

atuldeshpande commented 5 years ago

Closes #17

This pull request creates a shell script to emulate the standalone SINGE function which calls the GLG_Instance executable followed by Aggregate executable. Requires compilation of the code/GLG_Instance.m and code/Aggregate.m. "v94" in the standalone_SCINGE.sh should be replaced by the name of the folder containing the runtime libraries.

atuldeshpande commented 5 years ago

We can run the equivalent of SINGE_Example.m by running the following command: ./standalone_SCINGE.sh data1/X_SCODE_data.mat data1/tf.mat testOutput tests/example_hyperparameters.txt

Perhaps we can include the above in the README.md?

agitter commented 5 years ago

Perhaps we can include the above in the README.md?

Yes, let's add that command to the readme when we document how to use this new script and updated our input parameter descriptions.

agitter commented 5 years ago

I finished a round of changes to the compile script, Dockerfile, and Docker-based tests. I'll see what errors appear when these tests run.

I restored SINGE_Example.m. I'd like to keep this as example usage for anyone who wants to use SINGE directly through MATLAB. We'll have to document both options (MATLAB and script) in the readme.

agitter commented 5 years ago

I had to specify the MATLAB runtime path in the standalone script so that it could find the runtime in the Docker container. Should we make that another argument to the script? The location will vary for different users.

atuldeshpande commented 5 years ago

If someone provides the argument -lambda, will it be truncated as ambda?

Yes. That's how it will handle currently.

agitter commented 5 years ago

The new parameter parser broke the support for one of the date formats:

Error using parseParams (line 47)
The value of 'date' is invalid. It must satisfy the function: @(x)any(ismember({datestr(datenum(x),['mm/dd/yyyy']),datestr(datenum(x))},x)).
Error in SINGE_GLG_Test (line 9)

See https://travis-ci.com/gitter-lab/SINGE/builds/126320790#L698

agitter commented 5 years ago

@atuldeshpande it looks like the error here https://travis-ci.com/gitter-lab/SINGE/jobs/235318717#L989 is being caused by SINGE.m. The call to SINGE_GLG_Test doesn't pass the output directory so it defaults to Output. That causes SINGE_Aggregate to crash if a non-default output directory is used.