Hi NTv3 team,
Thank you for making the benchmark datasets and split files publicly available.
I have been studying the homology-aware splitting strategy described in the NTv3 paper (Section 4.6.3, p.41) and trying to understand how the published splits.bed files (e.g. rice) were generated.
From the manuscript, my understanding is that the workflow consists of:
- generating 1 Mb gene-aware genomic windows,
- retrieving homologous gene pairs from Ensembl BioMart,
- constructing a weighted window-to-window connectivity graph based on shared homology,
- applying MCL clustering,
- assigning clusters into train/validation/test splits,
- performing additional edge pruning for some species such as rice.
In a previous discussion, I learned that the objective was to minimize rather than completely eliminate homology leakage, which makes perfect sense in practice. github issue
I am now interested in reproducing the split-generation procedure itself, either to recreate the published rice split or to apply the same protocol to additional plant genomes.
In many previous genomic foundation models, train/validation/test sets were typically separated by chromosome-level partitioning. While simple and practical, such strategies can still leave substantial sequence or gene-level homology shared across splits, potentially leading to information leakage and over-optimistic evaluation.
The NTv3 homology-aware splitting strategy is therefore particularly interesting, and I would like to better understand the implementation details behind the published benchmark splits.
Would it be possible to provide more implementation details about this workflow?
In particular, I am interested in:
- how the 1 Mb gene-aware windows were generated;
- the exact definition of edge weights between windows;
- the Ensembl/BioMart release version used;
- the MCL implementation and selected parameters;
- how modularity was computed when selecting the inflation value;
- the precise definition of the 10% homology pruning criterion used for rice;
- how clusters were assigned to train/validation/test partitions;
- whether the split generation was deterministic or involved a fixed random seed.
If there is already code or a script used to generate the benchmark splits, a pointer to it would be greatly appreciated.
Thanks for your time and for developing NTv3.
Best regards,
Jianhong.
Hi NTv3 team,
Thank you for making the benchmark datasets and split files publicly available.
I have been studying the homology-aware splitting strategy described in the NTv3 paper (Section 4.6.3, p.41) and trying to understand how the published splits.bed files (e.g. rice) were generated.
From the manuscript, my understanding is that the workflow consists of:
In a previous discussion, I learned that the objective was to minimize rather than completely eliminate homology leakage, which makes perfect sense in practice. github issue
I am now interested in reproducing the split-generation procedure itself, either to recreate the published rice split or to apply the same protocol to additional plant genomes.
In many previous genomic foundation models, train/validation/test sets were typically separated by chromosome-level partitioning. While simple and practical, such strategies can still leave substantial sequence or gene-level homology shared across splits, potentially leading to information leakage and over-optimistic evaluation.
The NTv3 homology-aware splitting strategy is therefore particularly interesting, and I would like to better understand the implementation details behind the published benchmark splits.
Would it be possible to provide more implementation details about this workflow?
In particular, I am interested in:
If there is already code or a script used to generate the benchmark splits, a pointer to it would be greatly appreciated.
Thanks for your time and for developing NTv3.
Best regards,
Jianhong.