-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Hi team,
I am studying the implementation of scniche and noticed a significant inconsistency between the mathematical description in the manuscript and the source code in scnishe/trainer/_train.py, line 72.
In the manuscript "https://doi.org/10.1038/s41467-025-57029-9", Formula (2) suggests that the joint representation Z(2) is calculated by applying a graph convolution during the fusion step:
However, in the FeatureFusion class, the implementation is a weighted sum followed by a Softmax and Activation:
"def forward(self, *features):
z = sum(F.dropout(f, self.dropout) @ w for f, w in zip(features, self.weights))
z = F.softmax(z, dim=1)
z = self.activation(z)
return z", the formula for this should be :
Question: Is the implementation in the code the intended "optimized" version of the model, and should the manuscript formulas be interpreted as simplified theoretical representations? Thank you for taking your time!
Best regards, Yinhe