+
Skip to content

Conversation

qiyunzhu
Copy link
Contributor

@qiyunzhu qiyunzhu commented Jun 1, 2025

This PR switched the internal representation of BIOM from scipy.sparse.*_matrix to *_array. This is a major change. It is being made following NumPy and SciPy's migration from (sparse) matrix to (sparse) array (source, source), the Scientific Python community's priority (source), and recommendations from colleagues. It has been discussed with @wasade .

The migration guideline was followed.

This PR does not introduce public-facing changes to the API. All current functionality remains functional. However, if one extracts sparse data from a BIOM table (e.g., via table.matrix_data or table.data('S1', 'sample', dense=False)) and perform subsequent analyses on it, they may notice changes. Therefore, we might consider updating the minor version (e.g., 2.2, instead of 2.1.17).

We need to make sure notable downstream packages are not affected by this change. I have confirmed that scikit-bio is not affected. But let me ping @antgonza and @ebolyen too.

There is still an obstacle: Sparse array was introduced to SciPy 1.8.0, which required a minimum of Python 3.10. Therefore, we need to drop Python 3.9 support (EOL: 2025-10) before adopting this change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载