Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
"eyemask",
"filefolder"
],
"autoDocstring.docstringFormat": "sphinx"
"autoDocstring.docstringFormat": "sphinx",
"esbonio.sphinx.confDir": ""
}
221 changes: 157 additions & 64 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: clean clean-build clean-pyc clean-test coverage dist docs help install lint lint/flake8 lint/black Dockerfile_dev
.PHONY: clean clean-build clean-pyc clean-test coverage dist help install
.DEFAULT_GOAL := help

define BROWSER_PYSCRIPT
Expand Down Expand Up @@ -52,6 +52,38 @@ clean-test: ## remove test and coverage artifacts
clean-models: ## remove pretrained models
rm -fr models/


## INSTALL

install: clean models ## install the package to the active Python's site-packages
pip install .

install_dev: clean models ## install the package and development dependencies to the active Python's site-packages
pip install -e .[dev]

release: dist ## package and upload a release
twine upload dist/*

dist: clean ## builds source and wheel package
python setup.py sdist
python setup.py bdist_wheel
ls -l dist


## PRE-TRAINED MODELS
models: models/dataset1_guided_fixations.h5 models/dataset5_free_viewing.h5 ## gets all pretrained models from OSF

models/dataset1_guided_fixations.h5:
mkdir -p models
wget -q https://osf.io/download/cqf74/ -O models/dataset1_guided_fixations.h5

models/dataset5_free_viewing.h5:
mkdir -p models
wget -q https://osf.io/download/89nky/ -O models/dataset5_free_viewing.h5


## STYLE

lint/flake8: ## check style with flake8
flake8 bidsmreye tests
lint/black: ## check style with black
Expand All @@ -61,6 +93,13 @@ lint/mypy: ## check style with mypy

lint: lint/black lint/mypy lint/flake8 ## check style

validate_cff: ## Validate the citation file
cffconvert --validate


## DOC
.PHONY: docs

docs: ## generate Sphinx HTML documentation, including API docs
rm -f docs/source/bidsmreye.rst
rm -f docs/source/modules.rst
Expand All @@ -72,23 +111,6 @@ docs: ## generate Sphinx HTML documentation, including API docs
servedocs: docs ## compile the docs watching for changes
watchmedo shell-command -p '*.rst' -c '$(MAKE) -C docs html' -R -D .

release: dist ## package and upload a release
twine upload dist/*

dist: clean ## builds source and wheel package
python setup.py sdist
python setup.py bdist_wheel
ls -l dist

install: clean models ## install the package to the active Python's site-packages
pip install .

install_dev: clean models ## install the package and development dependencies to the active Python's site-packages
pip install .[dev]


validate_cff: ## Validate the citation file
cffconvert --validate

## TESTS

Expand All @@ -102,53 +124,131 @@ tests/data/moae_fmriprep: ## gets fmriprep preprocessed data of the SPM MOAE dat
rm download
mv moae_fmriprep tests/data/moae_fmriprep

## PRE-TRAINED MODELS
models: models/dataset1_guided_fixations.h5 models/dataset5_free_viewing.h5 ## gets all pretrained models from OSF

models/dataset1_guided_fixations.h5:
mkdir -p models
wget -q https://osf.io/download/cqf74/ -O models/dataset1_guided_fixations.h5

models/dataset5_free_viewing.h5:
mkdir -p models
wget -q https://osf.io/download/89nky/ -O models/dataset5_free_viewing.h5


## DEMO
.PHONY: clean-demo

clean-demo:
rm -fr outputs/moae_fmriprep

demo: clean-demo ## demo: runs all demo steps on MOAE dataset
make prepare_data
make combine
make generalize
demo: clean-demo tests/data/moae_fmriprep models/dataset1_guided_fixations.h5 ## demo: runs all demo steps on MOAE dataset
bidsmreye --action all \
--verbosity INFO \
--debug true \
--reset_database true \
$$PWD/tests/data/moae_fmriprep \
$$PWD/outputs/moae_fmriprep/derivatives \
participant

prepare_data: tests/data/moae_fmriprep models/dataset1_guided_fixations.h5 ## demo: prepares the data of MOAE dataset
prepare: tests/data/moae_fmriprep models/dataset1_guided_fixations.h5 ## demo: prepares the data of MOAE dataset
bidsmreye --action prepare \
--verbosity INFO \
--debug true \
--reset_database true \
$$PWD/tests/data/moae_fmriprep \
$$PWD/outputs participant
$$PWD/outputs/moae_fmriprep/derivatives \
participant

combine: ## demo: combines data and dummy labels of MOAE dataset
bidsmreye --action combine \
--verbosity INFO \
--debug true \
--reset_database true \
$$PWD/tests/data/moae_fmriprep \
$$PWD/outputs participant
$$PWD/outputs/moae_fmriprep/derivatives \
participant

generalize: ## demo: predicts labels of MOAE dataset
bidsmreye --model guided_fixations \
--action generalize \
--verbosity INFO \
--debug true \
--reset_database true \
$$PWD/tests/data/moae_fmriprep \
$$PWD/outputs participant
$$PWD/outputs/moae_fmriprep/derivatives \
participant


## Openneuro data
.PHONY: get_ds002799_dat

clean-ds002799:
rm -fr outputs/ds002799/derivatives

tests/data/data_ds002799:
datalad install -s ///openneuro/ds002799 tests/data/ds002799

get_ds002799: tests/data/data_ds002799
cd tests/data/ds002799/derivatives/fmriprep && \
datalad get sub-30[27]/ses-*/func/*run-*preproc*bold*

ds002799_prepare: get_ds002799 models/dataset1_guided_fixations.h5
bidsmreye --action prepare \
--verbosity INFO \
$$PWD/tests/data/ds002799/derivatives/fmriprep \
$$PWD/outputs/ds002799/derivatives \
participant \
--participant_label 302 307 \
--space MNI152NLin2009cAsym T1w \
--run 1 2

ds002799_combine:
bidsmreye --action combine \
--verbosity INFO \
$$PWD/tests/data/ds002799/derivatives/fmriprep \
$$PWD/outputs/ds002799/derivatives \
participant \
--participant_label 302 307 \
--space MNI152NLin2009cAsym T1w \
--run 1 2

ds002799_generalize:
bidsmreye --action generalize \
--verbosity INFO \
$$PWD/tests/data/ds002799/derivatives/fmriprep \
$$PWD/outputs/ds002799/derivatives \
participant \
--participant_label 302 307 \
--space MNI152NLin2009cAsym T1w \
--run 1 2

ds002799: clean-ds002799
bidsmreye --action all \
--verbosity INFO \
$$PWD/tests/data/ds002799/derivatives/fmriprep \
$$PWD/outputs/ds002799/derivatives \
participant \
--participant_label 302 307 \
--space MNI152NLin2009cAsym T1w \
--run 1 2

clean-demo:
rm -fr outputs/bidsmreye

## DOCKER
.PHONY: docker/Dockerfile docker/Dockerfile_dev

docker/Dockerfile: ## Dockerfile for the bidsmreye docker image
docker run --rm repronim/neurodocker:0.7.0 generate docker \
--base debian:stretch-slim \
--pkg-manager apt \
--install "git wget make" \
--miniconda \
create_env="bidsmreye" \
conda_install="python=3.9 pip" \
activate="true" \
pip_install="git+https://github.com/cpp-lln-lab/bidsMReye.git" \
--run "mkdir -p /home/neuro/bidsMReye" \
--copy Makefile /home/neuro/bidsMReye \
--workdir /home/neuro/bidsMReye \
--run "make models" \
--copy ./docker/entrypoint.sh /neurodocker/startup.sh \
--run "chmod +x /neurodocker/startup.sh" \
--cmd bidsmreye \
> docker/Dockerfile

Dockerfile:
docker_build: docker/Dockerfile
docker build --tag cpplab/bidsmreye:latest --file docker/Dockerfile .

docker/Dockerfile_dev: ## Dockerfile for the bidsmreye docker image using local pacakge
docker run --rm repronim/neurodocker:0.7.0 generate docker \
--base debian:stretch-slim \
--pkg-manager apt \
Expand All @@ -163,59 +263,52 @@ Dockerfile:
--run "make models" \
--miniconda \
use_env="bidsmreye" \
pip_install="git+https://github.com/cpp-lln-lab/bidsMReye.git" \
--copy ./docker_entrypoint.sh /neurodocker/startup.sh \
pip_install="." \
--copy ./docker/entrypoint.sh /neurodocker/startup.sh \
--run "chmod +x /neurodocker/startup.sh" \
--cmd bidsmreye \
> Dockerfile
> docker/Dockerfile_dev

Docker_dev_build: Dockerfile_dev
docker build --tag bidsmreye:dev --file Dockerfile_dev .
docker_dev_build: docker/Dockerfile_dev
docker build --tag cpplab/bidsmreye:dev --file docker/Dockerfile_dev .

Docker_dev_build_no_cache: Dockerfile_dev
docker build --tag bidsmreye:dev --no-cache --file Dockerfile_dev .
docker_dev_build_no_cache: docker/Dockerfile_dev
docker build --tag bidsmreye:dev --no-cache --file docker/Dockerfile_dev .

Docker_demo: Docker_dev_build clean-demo
docker_demo: Docker_build clean-demo
make Docker_prepare_data
make Docker_combine
make Docker_generalize

Docker_prepare_data:
docker_prepare_data:
docker run --rm -it \
--user "$(id -u):$(id -g)" \
-v $$PWD/tests/data/moae_fmriprep:/home/neuro/data \
-v $$PWD/outputs:/home/neuro/outputs \
bidsmreye:dev \
bidsmreye:latest \
/home/neuro/data/ \
/home/neuro/outputs/ \
participant \
--action prepare \
--space T1w \
--task auditory
--action prepare

Docker_combine:
docker_combine:
docker run --rm -it \
--user "$(id -u):$(id -g)" \
-v $$PWD/tests/data/moae_fmriprep:/home/neuro/data \
-v $$PWD/outputs:/home/neuro/outputs \
bidsmreye:dev \
bidsmreye:latest \
/home/neuro/data/ \
/home/neuro/outputs/ \
participant \
--action combine \
--space T1w \
--task auditory
--action combine

Docker_generalize:
docker_generalize:
docker run --rm -it \
--user "$(id -u):$(id -g)" \
-v $$PWD/tests/data/moae_fmriprep:/home/neuro/data \
-v $$PWD/outputs:/home/neuro/outputs \
bidsmreye:dev \
bidsmreye:latest \
/home/neuro/data/ \
/home/neuro/outputs/ \
participant \
--action generalize \
--space T1w \
--model guided_fixations \
--task auditory
--action generalize
Loading