Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Config files handling #22

Closed
wants to merge 4 commits into from
Closed

Config files handling #22

wants to merge 4 commits into from

Conversation

atuldeshpande
Copy link
Collaborator

@atuldeshpande atuldeshpande commented May 24, 2019

Set of changes to incorporate a config file for setting parameters and identifying input files and output directories, etc. Also changed the name of SCINGE_Example.m and SCINGE.m to SINGE equivalents.

Closes #17

Copy link
Member

@agitter agitter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One design question is whether we want to modify SINGE_Example.m to only support parameters in config files or have one example wrapper showing SINGE with parameters in the config files (SINGE_cmd.m) and another showing parameters in the MATLAB file (the previous style of SINGE_Example.m). Should we have have both? In both cases, they would only be wrappers for SINGE.m.

What changed in tf.mat? Is this what is causing the Travis CI build to fail with the error:

Error using InputOutputModel/subsref (line 43)
Subscript no. 1 is out of range.
Error in adjmatrix2edgelist (line 16)
Error in SCINGE (line 33)
Error in SCINGE_Example (line 36)

I'd prefer to revert the tf.mat changes and save them for a different pull request so we can confirm the new way of running SINGE still produces the exact same output.

SINGE_Example.m Outdated
@@ -0,0 +1,47 @@
%% Simple example that runs SCINGE for two replicates of two hyperparameter settings
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How much of this file changed? If you delete the old SCINGE_Example.m in the same commit where you add this file, git may recognize that you renamed the file. That would make comparing the new and old version easier.

Please convert the name here as well

end

%% Import list of parameter combinations
fid = fopen('SINGE_params.cfg');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should support specifying the config file names as a command line argument. This could be the default name or we could require both types of config files to be provided before running. That way we can compile this file one and let users run on different datasets without needing to recompile.

%% Import list of parameter combinations
fid = fopen('SINGE_params.cfg');
temp = fgetl(fid);
while any(temp~=-1)||isempty(temp)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How much error handling do we need here? I believe that parseParams.m will provide default values for most of the parameters. Are the data files the only required configuration file values?

%% Specify Path to Input data and path to Output folder, gene_list and number of subsampled replicates
fid = fopen('SINGE_IO.cfg');
temp = fgetl(fid);
while any(temp~=-1)||isempty(temp)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question as above regarding error handling and required config file values.

@@ -0,0 +1,4 @@
Data data1/X_SCODE_data.mat
outdir Output
num_replicates 2
Copy link
Member

@agitter agitter May 26, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we call this file SINGE_config.cfg, SINGE_options.cfg, or SINGE_settings.cfg? Most of it is I/O related, except the number of replicates.

Before merging, we'll need to update the readme to describe this file and how to run SINGE with it. Is this space separated or whitespace-separated? Tab-separated may be safest so we can support Windows file paths.

SINGE_config.cfg Outdated Show resolved Hide resolved
@@ -0,0 +1,19 @@
1 ID 541
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we make this file tab-separated as well? I see multiple spaces instead of tabs.

We will also document this file in the readme.

code/SINGE.m Outdated
@@ -0,0 +1,42 @@
function [ranked_edges, gene_influence] = SCINGE(gene_list,Data,outdir,num_replicates,param_list)
% [ranked_edges, gene_influence] = SCINGE(gene_list,Data,outdir,num_replicates,param_list)
% Standalone SCINGE implementation.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rename SCINGE here and below.

code/SINGE.m Outdated
@@ -0,0 +1,42 @@
function [ranked_edges, gene_influence] = SCINGE(gene_list,Data,outdir,num_replicates,param_list)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's remove the old SCINGE.m if it is no longer needed. How much of this file changed? Just the name?

@agitter
Copy link
Member

agitter commented Aug 17, 2019

Can we close this now that it is replaced by #37?

@atuldeshpande
Copy link
Collaborator Author

Closed since being replaced by #37.

@agitter agitter deleted the config-file branch August 19, 2019 11:04
@agitter agitter restored the config-file branch August 19, 2019 14:56
@agitter agitter deleted the config-file branch August 19, 2019 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Command line interface for SINGE
2 participants