greenelab / connectivity-search-analyses

hetnet connectivity search research notebooks (previously hetmech)
BSD 3-Clause "New" or "Revised" License
8 stars 5 forks source link

Inverse Hyperbolic Sine Transformation Was Applied to DWPCs Reported on the Connectivity Search Website #177

Open NegarJanani opened 2 months ago

NegarJanani commented 2 months ago

When I was trying to reproduce the code, I found that the DWPCs I calculated using the hetnetpy repository differed from those in the connectivity search website. Upon further investigation of the code in connectivity-search-analyses/explore, I discovered that an inverse hyperbolic sine transformation was applied to the DWPCs, accounting for the difference.

This transformation makes sense because it can reduce the influence of outliers in a right-skewed distribution. Since DWPCs are sparse, it helps fit the Gamma-hurdle distribution to the data and find p-values using the Gamma-hurdle distribution as the null distribution.

After discussing with @cgreene, he believes it would be useful to mention this both here and in the connectivity-search-frontend repository.

dhimmel commented 2 months ago

Hey @NegarJanani. Wondering if you can provide a comment in addition to the title.

NegarJanani commented 2 months ago

Hey @NegarJanani. Wondering if you can provide a comment in addition to the title.

Hi @dhimmel I will update it soon :)

dhimmel commented 2 months ago

Thanks @NegarJanani for helping clarify the documentation. I agree the webapp should note if the DWPCs are transformed or not. I believe the DWPCs shows in the webapp are transformed due to:

Quoting from the manuscript:

Rather than using the raw DWPC for a source–metapath–target combination, we transform the DWPC across all source–target node pairs for a metapath to yield a distribution that is more compact and amenable to modeling [31].

And this line of code in the API. Do we also need to update the description for this API field?

NegarJanani commented 2 months ago

this API field

I think it would be useful to update the API as well.