Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
a283eab
Test running SCINGE inside Octave Docker container
agitter Mar 15, 2019
90140be
Test working directory
agitter Mar 15, 2019
41783a2
Set Docker working directory
agitter Mar 15, 2019
cca0db2
Revert test script debugging commands
agitter Mar 15, 2019
a1eeda5
Run Octave through bash shell
agitter Mar 15, 2019
aa1b669
Try to fix entrypoint
agitter Mar 15, 2019
f12fac6
Command errors
agitter Mar 15, 2019
7c669d7
Change entrypoint order
agitter Mar 15, 2019
fa195e1
Confirm Octave call from bash works
agitter Mar 15, 2019
d2076e1
Try to propagate error code
agitter Mar 15, 2019
043d6be
Test error codes
agitter Mar 15, 2019
c880cb6
Test exit 1
agitter Mar 15, 2019
1c5d594
Try running Octave inside a script
agitter Mar 15, 2019
bcdf3c4
Change script call
agitter Mar 15, 2019
4586bbe
Revert script for testing
agitter Mar 15, 2019
b3a69e1
Check Octave version
agitter Mar 15, 2019
03dc7ae
Test octave-snapshot container
agitter Mar 15, 2019
08acb2c
Remove intentional error
agitter Mar 15, 2019
e554962
Placeholder script to install Glmnet for Octave inside Docker
agitter Mar 19, 2019
ec4e277
Attempt to compile MEX files with Octave
agitter Mar 19, 2019
9bb3d8b
Install wget
agitter Mar 19, 2019
8425d62
apt-get install problems
agitter Mar 19, 2019
0c9d42c
Debug fintrf.h error
agitter Mar 19, 2019
fd15176
Assess whether compilation worked
agitter Mar 19, 2019
04d4b0f
Small Changes. Test push to Travis branch
atuldeshpande Mar 26, 2019
c1ac0c4
Add more debugging output
agitter Apr 4, 2019
76c2f70
Switch to Docker container with stable Octave version
agitter Apr 4, 2019
d1af7d8
Switch to curl
agitter Apr 4, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,12 @@ sudo: required

services:
- docker

env:
- OCTAVE_VERSION=5.1.0

before_install:
- docker pull mtmiller/octave:${OCTAVE_VERSION}

script:
- docker run -v $(pwd):/SCINGE -w /SCINGE --entrypoint "/bin/bash" mtmiller/octave:${OCTAVE_VERSION} -c "./install_glmnet_docker.sh; octave -v; octave SCINGE_Example.m"
2 changes: 1 addition & 1 deletion SCINGE_Example.m
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,4 @@
gene_list = tf;

%% Run SCINGE
[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);
54 changes: 1 addition & 53 deletions code/GLG_Instance.m
Original file line number Diff line number Diff line change
Expand Up @@ -6,43 +6,7 @@ function GLG_Instance(Data,varargin)
%
tic
%%% InputParser
p = inputParser;
def_lambda = 0.01;
def_dT = 1;
def_rep = 0;
def_width = 2;
def_probzero = 0;
def_family = 'gaussian';
def_L = 15;
def_ID = 0;
def_outdir = 'Output';
def_prob_remove_samples = 0.2;
def_date = date;
%
expected_family = {'gaussian','poisson'};
validScalar = @(x) isnumeric(x) && isscalar(x) && (x >= 0);
validFile = @(x) isfilecomp(x);
validString = @(x) ischar(x) && isempty(regexp(x,'[\/?*''."<>|]','once'));
validInteger = @(x) (x - floor(x)==0) && (x >= 0);
validLags = @(x) (x - floor(x)==0) && (p.Results.dT*x)<100;
validProb = @(x) isnumeric(x) && isscalar(x) && (x >= 0) &&(x<1);
validDate = @(x) any(ismember({datestr(datenum(x) ,['mm/dd/yyyy']) datestr(datenum(x))},x));
addRequired(p,'Data',validFile);
addParameter(p,'family',def_family,@(x) any(validatestring(x,expected_family)));
addParameter(p,'outdir',def_outdir,validString);
addParameter(p,'lambda',def_lambda,validScalar);
addParameter(p,'dT',def_dT,validScalar);
addParameter(p,'num_lags',def_L,validLags);
addParameter(p,'kernel_width',def_width,validScalar);
addParameter(p,'prob_zero_removal',def_probzero,validProb);
addParameter(p,'prob_remove_samples',def_prob_remove_samples,validProb);
addParameter(p,'replicate',def_rep,validInteger);
addParameter(p,'ID',def_ID,validInteger);
addParameter(p,'date',def_date,validDate);
parse(p,Data,varargin{:});
params = p.Results;
params.p1 = p.Results.dT*p.Results.num_lags;
params.DateNumber = datenum(params.date);
params = parseParams(Data,varargin{:})
mkdir(params.outdir)
%%% End InputParser
tic;
Expand Down Expand Up @@ -89,20 +53,4 @@ function GLG_Instance(Data,varargin)
if isdeployed
quit;
end
end

function y = isfilecomp(x)
if verLessThan('matlab','9.3')
if (exist([x '.mat'], 'file') == 2)||(exist(x, 'file') == 2)
y = 1;
else
y = 0;
end
else
if (isfile([x '.mat'])||isfile(x))
y = 1;
else
y = 0;
end
end
end
47 changes: 47 additions & 0 deletions code/parseParams.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
function params = parseParams(Data,varargin)
p = inputParser;
def_lambda = 0.01;
def_dT = 1;
def_rep = 0;
def_width = 2;
def_probzero = 0;
def_family = 'gaussian';
def_L = 15;
def_ID = 0;
def_outdir = 'Output';
def_prob_remove_samples = 0.2;
def_date = date;
%
expected_family = {'gaussian','poisson'};
validScalar = @(x) isnumeric(x) && isscalar(x) && (x >= 0);
validFile = @(x) isfilecomp(x);
validString = @(x) ischar(x) && isempty(regexp(x,'[\/?*''."<>|]','once'));
validInteger = @(x) (x - floor(x)==0) && (x >= 0);
validLags = @(x) (x - floor(x)==0) && (p.Results.dT*x)<100;
validProb = @(x) isnumeric(x) && isscalar(x) && (x >= 0) &&(x<1);
validDate = @(x) any(ismember({datestr(datenum(x) ,['mm/dd/yyyy']) datestr(datenum(x))},x));
addRequired(p,'Data',validFile);
addParameter(p,'family',def_family,@(x) any(validatestring(x,expected_family)));
addParameter(p,'outdir',def_outdir,validString);
addParameter(p,'lambda',def_lambda,validScalar);
addParameter(p,'dT',def_dT,validScalar);
addParameter(p,'num_lags',def_L,validLags);
addParameter(p,'kernel_width',def_width,validScalar);
addParameter(p,'prob_zero_removal',def_probzero,validProb);
addParameter(p,'prob_remove_samples',def_prob_remove_samples,validProb);
addParameter(p,'replicate',def_rep,validInteger);
addParameter(p,'ID',def_ID,validInteger);
addParameter(p,'date',def_date,validDate);
parse(p,Data,varargin{:});
params = p.Results;
params.p1 = p.Results.dT*p.Results.num_lags;
params.DateNumber = datenum(params.date);
end

function y = isfilecomp(x)
if (exist([x '.mat'], 'file') == 2)||(exist(x, 'file') == 2)
y = 1;
else
y = 0;
end
end
15 changes: 15 additions & 0 deletions install_glmnet_docker.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash
# Install Glmnet by downloading from
# http://web.stanford.edu/~hastie/glmnet_matlab/index.html
# and compiling for Octave
curl -O http://web.stanford.edu/~hastie/glmnet_matlab/glmnet_matlab.zip
unzip glmnet_matlab.zip

cd glmnet_matlab
curl -O https://raw.githubusercontent.com/SheffieldML/GPmat/master/kern/mex/fintrf.h
mkoctfile --verbose --mex glmnetMex.F GLMnet.f

cd ..

# To help debugging
gfortran --version