Closed JasonMendoza2008 closed 9 months ago
I was going to ask for a similar feature. I would like to filter p-values before we know the answer. In my case, I want to show only NS, which I cannot know prior to run the code and it is hard work to select pairs one-by-one afterwards. I would like to automate this process.
It would be welcome to have both features indeed, with an optional parameter which, by default, would not filter anything. I don't have enough knowledge of the package to dive into the code unfortunately.
+1
This might be a workaround to annotate only the significant p-values BUT it affects the p-values in multiple test corrections.
# create annotator
annotator = Annotator(axs, pairs, data=df, x=x, y=y, order=order)
# configure
annotator.configure(test=test, comparisons_correction=corr, text_format='star', loc='inside')
# apply ONLY tests
annotator.apply_test()
# pick the pairs producing significant p-value
sig_pairs = [annotator.pairs[i] for i, x in enumerate(annotator.get_annotations_text()) if x != "ns"]
# decide what to do
if len(sig_pairs) == len(pairs): # all pairs gave significant p-values -> annotate
annotator.annotate()
elif len(sig_pairs) == 0: # there are no significant pairs so don't add anything to the plot
pass
else: # some pairs were not significant -> use only those
annotator = Annotator(axs, sig_pairs, data=df, x=x, y=y, order=order)
annotator.configure(test=test, comparisons_correction=corr, text_format='star', loc='inside')
annotator.apply_and_annotate()
For hiding non significant results, we merged #95 into our dev
branch, so you can check it out. Just pass hide_non_significant=True
when creating the Annotator
.
Shouldn't this issue be closed? It has been working for a while on the dev
branch.
PR https://github.com/trevismd/statannotations/pull/127 corrects a bugfix related to this issue but otherwise it seems fine.
EDIT: I'll let @trevismd close it if deemed adequate.
Merged today and released in v0.6.0!
The tests that are displayed are defined by what's fed into the argument
pairs
ofAnnotator
but we don't know prior to runningapply_and_annotate
what tests are significant. I don't think there's an easy way to eliminate from the list fed topairs
thepairs
that are not significant.