diff --git a/tedana/io.py b/tedana/io.py index 72ca5090d..94966793b 100644 --- a/tedana/io.py +++ b/tedana/io.py @@ -552,7 +552,8 @@ def write_split_ts(data, mmix, mask, comptable, io_generator, echo=0): Output directory. echo : :obj: `int`, optional Echo number to generate filenames, used by some verbose - functions. Default 0. + functions. Currently this is only not 0 when + io_generator.verbose==True. Default 0. Returns ------- @@ -562,13 +563,23 @@ def write_split_ts(data, mmix, mask, comptable, io_generator, echo=0): Generated Files --------------- - ============================ ============================================ - Filename Content - ============================ ============================================ - [prefix]Accepted_bold.nii.gz High-Kappa time series. - [prefix]Rejected_bold.nii.gz Low-Kappa time series. - [prefix]Denoised_bold.nii.gz Denoised time series. - ============================ ============================================ + ===================================== ============================================ + Filename Content + ===================================== ============================================ + desc-denoised_bold.nii.gz Denoised time series. + + if io_generator.verbose==True + desc-optcomAccepted_bold.nii.gz High-Kappa time series. + desc-optcomRejected_bold.nii.gz Low-Kappa time series. + + if echo>0 + echo-[echo]_desc-Accepted_bold.nii.gz High-Kappa timeseries for echo + number ``echo``. + echo-[echo]_desc-Rejected_bold.nii.gz Low-Kappa timeseries for echo + number ``echo``. + echo-[echo]_desc-Denoised_bold.nii.gz Denoised timeseries for echo + number ``echo``. + ===================================== ============================================ """ acc = comptable[comptable.classification == "accepted"].index.values rej = comptable[comptable.classification == "rejected"].index.values @@ -577,17 +588,23 @@ def write_split_ts(data, mmix, mask, comptable, io_generator, echo=0): if len(acc) != 0: if echo != 0: + # This outputs time series for a single echo + # In practice this only happens when verbose is true + # in io.writeresults_echoes. Neither this or the elif below + # are written out if verbose is not true fout = io_generator.save_file(hikts, "high kappa ts split img", echo=echo) - else: + LGR.info(f"Writing high-Kappa time series: {fout}") + elif io_generator.verbose: fout = io_generator.save_file(hikts, "high kappa ts img") - LGR.info(f"Writing high-Kappa time series: {fout}") + LGR.info(f"Writing high-Kappa time series: {fout}") if len(rej) != 0: if echo != 0: fout = io_generator.save_file(lowkts, "low kappa ts split img", echo=echo) - else: + LGR.info(f"Writing low-Kappa time series: {fout}") + elif io_generator.verbose: fout = io_generator.save_file(lowkts, "low kappa ts img") - LGR.info(f"Writing low-Kappa time series: {fout}") + LGR.info(f"Writing low-Kappa time series: {fout}") if echo != 0: fout = io_generator.save_file(dnts, "denoised ts split img", echo=echo) @@ -623,19 +640,20 @@ def writeresults(ts, mask, comptable, mmix, io_generator): Generated Files --------------- - ========================================= ===================================== + ========================================= =========================================== Filename Content - ========================================= ===================================== - desc-optcomAccepted_bold.nii.gz High-Kappa time series. - desc-optcomRejected_bold.nii.gz Low-Kappa time series. - desc-optcomDenoised_bold.nii.gz Denoised time series. + ========================================= =========================================== + desc-denoised_bold.nii.gz Denoised time series. + + desc-optcomAccepted_bold.nii.gz High-Kappa time series. (only with verbose) + desc-optcomRejected_bold.nii.gz Low-Kappa time series. (only with verbose) desc-ICA_components.nii.gz Spatial component maps for all components. desc-ICAAccepted_components.nii.gz Spatial component maps for accepted components. desc-ICAAccepted_stat-z_components.nii.gz Z-normalized spatial component maps for accepted components. - ========================================= ===================================== + ========================================= =========================================== """ acc = comptable[comptable.classification == "accepted"].index.values write_split_ts(ts, mmix, mask, comptable, io_generator) diff --git a/tedana/resources/config/outputs.json b/tedana/resources/config/outputs.json index a77c28807..f87a26615 100644 --- a/tedana/resources/config/outputs.json +++ b/tedana/resources/config/outputs.json @@ -37,7 +37,7 @@ }, "denoised ts img": { "orig": "dn_ts_OC", - "bidsv1.5.0": "desc-optcomDenoised_bold" + "bidsv1.5.0": "desc-denoised_bold" }, "high kappa ts img": { "orig": "hik_ts_OC", diff --git a/tedana/tests/data/cornell_three_echo_outputs.txt b/tedana/tests/data/cornell_three_echo_outputs.txt index 821f07b8e..20d5f6a57 100644 --- a/tedana/tests/data/cornell_three_echo_outputs.txt +++ b/tedana/tests/data/cornell_three_echo_outputs.txt @@ -20,9 +20,7 @@ desc-PCA_metrics.tsv desc-PCA_mixing.tsv desc-PCA_stat-z_components.nii.gz desc-adaptiveGoodSignal_mask.nii.gz -desc-optcomAccepted_bold.nii.gz -desc-optcomDenoised_bold.nii.gz -desc-optcomRejected_bold.nii.gz +desc-denoised_bold.nii.gz desc-optcom_bold.nii.gz figures figures/carpet_optcom.svg diff --git a/tedana/tests/data/fiu_four_echo_outputs.txt b/tedana/tests/data/fiu_four_echo_outputs.txt index d6487a225..4357c2402 100644 --- a/tedana/tests/data/fiu_four_echo_outputs.txt +++ b/tedana/tests/data/fiu_four_echo_outputs.txt @@ -28,7 +28,7 @@ sub-01_desc-limited_S0map.nii.gz sub-01_desc-limited_T2starmap.nii.gz sub-01_desc-optcomAcceptedMIRDenoised_bold.nii.gz sub-01_desc-optcomAccepted_bold.nii.gz -sub-01_desc-optcomDenoised_bold.nii.gz +sub-01_desc-denoised_bold.nii.gz sub-01_desc-optcomMIRDenoised_bold.nii.gz sub-01_desc-optcomNoGlobalSignal_bold.nii.gz sub-01_desc-optcomRejected_bold.nii.gz diff --git a/tedana/tests/data/nih_five_echo_outputs_verbose.txt b/tedana/tests/data/nih_five_echo_outputs_verbose.txt index de8693395..76e9c54ba 100644 --- a/tedana/tests/data/nih_five_echo_outputs_verbose.txt +++ b/tedana/tests/data/nih_five_echo_outputs_verbose.txt @@ -29,7 +29,7 @@ sub-01_desc-adaptiveGoodSignal_mask.nii.gz sub-01_desc-limited_S0map.nii.gz sub-01_desc-limited_T2starmap.nii.gz sub-01_desc-optcomAccepted_bold.nii.gz -sub-01_desc-optcomDenoised_bold.nii.gz +sub-01_desc-denoised_bold.nii.gz sub-01_desc-optcom_whitened_bold.nii.gz sub-01_desc-optcomRejected_bold.nii.gz sub-01_desc-optcom_bold.nii.gz diff --git a/tedana/tests/data/reclassify_debug_out.txt b/tedana/tests/data/reclassify_debug_out.txt index 76e0db830..4076b88fa 100644 --- a/tedana/tests/data/reclassify_debug_out.txt +++ b/tedana/tests/data/reclassify_debug_out.txt @@ -9,7 +9,6 @@ sub-testymctestface_dataset_description.json sub-testymctestface_dn_ts_OC.nii.gz sub-testymctestface_dn_ts_OC_MIR.nii.gz sub-testymctestface_feats_OC2.nii.gz -sub-testymctestface_hik_ts_OC.nii.gz sub-testymctestface_hik_ts_OC_MIR.nii.gz sub-testymctestface_ica_components.nii.gz sub-testymctestface_ica_cross_component_metrics.json @@ -21,6 +20,5 @@ sub-testymctestface_ica_mir_mixing.tsv sub-testymctestface_ica_mixing.tsv sub-testymctestface_ica_orth_mixing.tsv sub-testymctestface_ica_status_table.tsv -sub-testymctestface_lowk_ts_OC.nii.gz sub-testymctestface_registry.json sub-testymctestface_sphis_hik.nii.gz diff --git a/tedana/tests/data/reclassify_no_bold.txt b/tedana/tests/data/reclassify_no_bold.txt index 277e94cc4..ae33d8e66 100644 --- a/tedana/tests/data/reclassify_no_bold.txt +++ b/tedana/tests/data/reclassify_no_bold.txt @@ -6,8 +6,7 @@ desc-ICA_decomposition.json desc-ICA_mixing.tsv desc-ICA_stat-z_components.nii.gz desc-ICA_status_table.tsv -desc-optcomDenoised_bold.nii.gz -desc-optcomRejected_bold.nii.gz +desc-denoised_bold.nii.gz desc-tedana_metrics.json desc-tedana_metrics.tsv desc-tedana_registry.json diff --git a/tedana/tests/data/reclassify_quiet_out.txt b/tedana/tests/data/reclassify_quiet_out.txt index 5f4bee9bf..c62687db8 100644 --- a/tedana/tests/data/reclassify_quiet_out.txt +++ b/tedana/tests/data/reclassify_quiet_out.txt @@ -8,9 +8,7 @@ desc-ICA_decomposition.json desc-ICA_mixing.tsv desc-ICA_stat-z_components.nii.gz desc-ICA_status_table.tsv -desc-optcomAccepted_bold.nii.gz -desc-optcomDenoised_bold.nii.gz -desc-optcomRejected_bold.nii.gz +desc-denoised_bold.nii.gz desc-tedana_metrics.json desc-tedana_metrics.tsv desc-tedana_registry.json diff --git a/tedana/tests/data/reclassify_run_twice.txt b/tedana/tests/data/reclassify_run_twice.txt index 9609c85ba..93c7fc9bd 100644 --- a/tedana/tests/data/reclassify_run_twice.txt +++ b/tedana/tests/data/reclassify_run_twice.txt @@ -8,9 +8,7 @@ desc-ICA_decomposition.json desc-ICA_mixing.tsv desc-ICA_stat-z_components.nii.gz desc-ICA_status_table.tsv -desc-optcomAccepted_bold.nii.gz -desc-optcomDenoised_bold.nii.gz -desc-optcomRejected_bold.nii.gz +desc-denoised_bold.nii.gz desc-tedana_metrics.json desc-tedana_metrics.tsv desc-tedana_registry.json diff --git a/tedana/tests/test_io.py b/tedana/tests/test_io.py index 4c01f81f2..c37a51749 100644 --- a/tedana/tests/test_io.py +++ b/tedana/tests/test_io.py @@ -142,6 +142,7 @@ def test_smoke_write_split_ts(): classification = np.random.choice(["accepted", "rejected", "ignored"], n_components) df_data = np.column_stack((component, metric, classification)) comptable = pd.DataFrame(df_data, columns=["component", "metric", "classification"]) + io_generator.verbose = True me.write_split_ts(data, mmix, mask, comptable, io_generator) @@ -153,6 +154,17 @@ def test_smoke_write_split_ts(): # remove all files generated os.remove(filename) + io_generator.verbose = False + + me.write_split_ts(data, mmix, mask, comptable, io_generator) + + # TODO: midk_ts.nii is never generated? + fn = io_generator.get_name + split = "denoised ts img" + fname = fn(split) + # remove all files generated + os.remove(fname) + def test_smoke_filewrite(): """