Seems like regression was broken. Here's a worctut script that utilizes regression. Perhaps add this to the unit tests?
# Welcome to the tutorial of WORC: a Workflow for Optimal Radiomics
# Classification! It will provide you with basis knowledge and practical
# skills on how to run the WORC. For advanced topics and WORCflows, please see
# the other notebooks provided with this tutorial. For installation details,
# see the ReadMe.md provided with this tutorial.
# This tutorial interacts with WORC through SimpleWORC and is especially
# suitable for first time usage.
# import neccesary packages
from WORC import SimpleWORC
import os
# These packages are only used in analysing the results
import pandas as pd
import json
import fastr
import glob
# If you don't want to use your own data, we use the following example set,
# see also the next code block in this example.
from WORC.exampledata.datadownloader import download_HeadAndNeck
# Define the folder this script is in, so we can easily find the example data
script_path = os.path.dirname(os.path.abspath(__file__))
def main():
"""Execute WORC Tutorial experiment."""
# ---------------------------------------------------------------------------
# Input
# ---------------------------------------------------------------------------
# The minimal inputs to WORC are:
# - Images
# - Segmentations
# - Labels
#
# In SimpleWORC, we assume you have a folder "datadir", in which there is a
# folder for each patient, where in each folder there is a image.nii.gz and a mask.nii.gz:
# Datadir
# Patient_001
# image.nii.gz
# mask.nii.gz
# Patient_002
# image.nii.gz
# mask.nii.gz
# ...
#
#
# You can skip this part if you use your own data.
# In the example, We will use open source data from the online XNAT platform
# at https://xnat.bmia.nl/data/archive/projects/stwstrategyhn1. This dataset
# consists of CT scans of patients with Head and Neck tumors. We will download
# a subset of 20 patients in this folder. You can change this settings if you
# like
nsubjects = 20 # use "all" to download all patients
data_path = os.path.join(script_path, 'Data')
#download_HeadAndNeck(datafolder=data_path, nsubjects=nsubjects)
# Identify our data structure: change the fields below accordingly
# if you use your own data.
imagedatadir = os.path.join(data_path, 'stwstrategyhn1')
image_file_name = 'image.nii.gz'
segmentation_file_name = 'mask.nii.gz'
# File in which the labels (i.e. outcome you want to predict) is stated
# Again, change this accordingly if you use your own data.
label_file = os.path.join(data_path, 'Examplefiles', 'pinfo_HN.csv')
# Name of the label you want to predict
label_name = 'Age'
# Determine whether we want to do a coarse quick experiment, or a full lengthy
# one. Again, change this accordingly if you use your own data.
coarse = True
# Give your experiment a name
experiment_name = 'Example_STWStrategyHN'
# Instead of the default tempdir, let's but the temporary output in a subfolder
# in the same folder as this script
tmpdir = os.path.join(script_path, 'WORC_' + experiment_name)
# ---------------------------------------------------------------------------
# The actual experiment
# ---------------------------------------------------------------------------
# Create a Simple WORC object
experiment = SimpleWORC(experiment_name)
# Set the input data according to the variables we defined earlier
experiment.images_from_this_directory(imagedatadir,
image_file_name=image_file_name)
experiment.segmentations_from_this_directory(imagedatadir,
segmentation_file_name=segmentation_file_name)
experiment.labels_from_this_file(label_file)
experiment.predict_labels([label_name])
# Use the standard workflow for binary classification
#experiment.binary_classification(coarse=coarse)
experiment.regression(coarse=coarse, estimators=['SVR', 'RFR', 'ElasticNet', 'Lasso', 'SGDR'])
# Set the temporary directory
experiment.set_tmpdir(tmpdir)
experiment.set_multicore_execution()
experiment.add_evaluation()
# Run the experiment!
experiment.execute()
if __name__ == '__main__':
main()
Seems like regression was broken. Here's a worctut script that utilizes regression. Perhaps add this to the unit tests?