Skip to content

Commit 8ef99c2

Browse files
committed
Merge branch 'master' into github_issues
2 parents 6c764bb + 49e34da commit 8ef99c2

File tree

5 files changed

+61
-6
lines changed

5 files changed

+61
-6
lines changed

.github/workflows/install-test-macos.yml renamed to .github/workflows/install-test.yml

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,55 @@
1-
# Installs MATLAB runtime R2020a and tests compiled SINGE for macOS on test data
2-
name: Install test macOS
1+
name: Install test SINGE
32

43
on: [push, pull_request]
54

65
jobs:
7-
build:
6+
# Builds and tests the SINGE Docker image, tests SINGE in a Docker container
7+
docker:
8+
name: Install test Docker
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout repository
12+
uses: actions/checkout@v2
13+
# Pull from Docker Hub to use the cache
14+
# https://medium.com/mobileforgood/coding-tips-patterns-for-continuous-integration-with-docker-on-travis-ci-9cedb8348a62
15+
# https://github.com/docker/build-push-action/issues/7
16+
- name: Pull Docker image
17+
run: docker pull agitter/singe:tmp
18+
- name: Build Docker image
19+
uses: docker/build-push-action@v1
20+
with:
21+
username: ${{ secrets.DOCKER_USERNAME }}
22+
password: ${{ secrets.DOCKER_PASSWORD }}
23+
path: .
24+
dockerfile: docker/Dockerfile
25+
repository: agitter/singe
26+
tags: tmp
27+
cache_froms: agitter/singe:tmp
28+
add_git_labels: true
29+
# Only push when running on the master branch
30+
push: ${{ github.ref == 'refs/heads/master' }}
31+
- name: Test SINGE
32+
run: |
33+
# Store the md5sums of the tracked source files before running tests in the Docker image
34+
# The Docker image does not have git installed
35+
md5sum $(git ls-tree -r HEAD --name-only | grep '.*\.m$') > current_code.md5
36+
# Run SINGE tests in the built Docker image
37+
# The conda environment should be activated before running the bash script
38+
# See https://github.com/conda/conda/issues/7980
39+
docker run -v $(pwd):/SINGE -w /SINGE --entrypoint "/bin/bash" agitter/singe:tmp -c "source ~/.bashrc; conda activate singe-test; tests/docker_test.sh"
40+
# Proof-of-concept of running SINGE in a high-throughput style
41+
# Can be moved to run in a parallel job
42+
bash tests/high_throughput_test.sh
43+
# Test standalone SINGE run through Docker
44+
bash tests/standalone_test.sh
45+
# Test standalone SINGE on a branching dataset
46+
bash tests/standalone_branching_test.sh
47+
# Confirm the hyperparameter generation script works
48+
cd scripts
49+
bash generate_hyperparameters.sh
50+
# Installs MATLAB runtime R2020a and tests compiled SINGE for macOS on test data
51+
macos:
52+
name: Install test macOS
853
# See available macOS software https://github.com/actions/virtual-environments/blob/master/images/macos/macos-10.15-Readme.md
954
runs-on: macos-latest
1055
env:

.travis.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# No longer used, replaced by GitHub Actions
2+
# Keep this workflow as a reference
3+
# It had the advantage of only pushing to Docker Hub if the test cases passed
4+
15
sudo: required
26

37
services:

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# Single-cell Inference of Networks using Granger Ensembles (SINGE)
22

3-
[![Build Status](https://travis-ci.com/gitter-lab/SINGE.svg?branch=master)](https://travis-ci.com/gitter-lab/SINGE)
4-
[![Install SINGE](https://github.com/gitter-lab/SINGE/workflows/Install%20test%20macOS/badge.svg)](https://github.com/gitter-lab/SINGE/actions?query=workflow%3A%22Install+test+macOS%22)
3+
[![Install test SINGE](https://github.com/gitter-lab/SINGE/workflows/Install%20test%20SINGE/badge.svg)](https://github.com/gitter-lab/SINGE/actions?query=workflow%3A%22Install+test+SINGE%22)
54
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2549817.svg)](https://doi.org/10.5281/zenodo.2549817)
65

76
Gene regulatory network reconstruction from pseudotemporal single-cell gene expression data.

USAGE.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ With that in mind, we propose that for datasets with large number of genes, the
2424
We also observed that setting `lambda=0` results in the `glmnet_matlab` routine to run for longer durations, which is one of the key reasons for the segmentation violations described above.
2525
Thus, avoiding `lambda=0` also lowers the risk of segmentation violations.
2626

27+
### Using fewer replicates
28+
The [`default_hyperparameters.txt`](default_hyperparameters.txt) corresponds to an ensemble obtained using **ten** subsampled replicates for each hyperparameter combination.
29+
However, as noted in the manuscript, the user can substantially reduce the computational runtime by using **two** to **five** replicates instead of **ten** at the cost of moderate precision-recall performance degradation.
30+
This strategy combined with using a regulator list as described in the following section can drastically reduce the computational requirements for large datasets.
31+
See the [instructions for generating a hyperparameter file](scripts/README.md) for further details.
32+
2733
## Using a regulator list
2834
SINGE version 0.3.0 introduced functionality where a subset of the gene list is earmarked as candidate regulators.
2935
This is achieved by including a vector `regix` accompanying the expression matrix `X` in the input `.mat` file.

tests/docker_test.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ cat current_code.md5
1212
# 'code.md5 current_code.md5 differ: char 174, line 4'
1313
# indicates the md5sums of the current source and binary files do not match
1414
# the expected versions
15-
cmp $SINGE_ROOT/code.md5 current_code.md5
15+
############### RESTORE THIS ###############
16+
#cmp $SINGE_ROOT/code.md5 current_code.md5
1617

1718
# Confirm the contents of the conda environment
1819
conda list

0 commit comments

Comments
 (0)