Thanks, @tsalo! That did the trick. I had things backward in my mind regarding who is regressed out of whom.
The relevant carpet plots now look much better:
Would you say this is the recommended way to go in general, since tedana seems to sometimes err on the side of false positive components (see another example from a different dataset here)?
At least, as long as we believe that aCompCor components are noise and that motion related regressors do not represent BOLD signal, this sounds fine to me, but I would love to hear your opinion on this.
Many thanks!
P.S.
For future reference, to complete step 2 in your explanation, I replaced the following lines in the xcpd-tedana example code:
# Prepend "signal__" to all accepted components' column names
accepted_columns = metrics_df.loc[metrics_df["classification"] != "rejected", "Component"]
mixing_matrix = mixing_matrix.rename(columns={c: f"signal__{c}" for c in accepted_columns})
with:
# Instead of prepending "Signal__" to the accepted components, we omit them altogether, following the advice here: https://neurostars.org/t/summary-report-of-xcp-d-using-multi-echo-bold-and-tedana/28304/5
accepted_columns = metrics_df.loc[metrics_df["classification"] != "rejected", "Component"]
mixing_matrix = mixing_matrix.drop(columns=accepted_columns, errors='ignore')
