Repository navigation
Conversation
A categorical grouping column was ordered by its categories, so aggregate rows came out in a different order than the documented MultiIndex.factorize(sort=True) order. The per-column codes are now combined with np.ravel_multi_index.
The check ran in tl.map on every row, before replicability dropped the controls, and never in evaluate_integration. It now runs in _score_map on the rows it scores, for cosine, abs_cosine and correlation, and accepts a callable distance.
Size guide-null atom buffers for the bands a control guide with missing cells adds and warn instead of truncating, weight guides by their exact probability of a measured median, draw the measured cell count, drop unmeasured guides from the gene, condition on a measured null median, and form even midpoints in float64.
materialize computes row chunks in this process instead of storing into a local array from the workers, and get_matrix uses it for dask input. A lazy read keeps raw, refuses sparse matrices, and write refuses to overwrite the file a lazy object still reads from. rank_int on lazy X warns, stream_bytes must be positive, and the lazy extra takes anndata's dask constraint.
mad_robustize compared the spread to epsilon after adding epsilon, so only a MAD of exactly zero was flagged. A zero-feature object divided by zero when sizing its slices. Also list positive_control among the aconcagua tiers.
Categories past the sixth no longer reuse the G1 and G2M colours, a category with too few cells in a panel gets no density instead of setting the shared scale, and a NaN bandwidth is refused.
The robust spread kernel and median polish use the quickselect helpers, so the sort helpers go. normalize fits every method through one helper, and iter_waves reuses _masked_offsets. Results are bit-identical.
A call with qc_metrics=("variance", "n_unique") rebuilt qc_fail from no flags and cleared every failure, including pp.outliers' flags. qc_metrics and copy are now keyword-only.
…feature mean With n_fit, score_samples counted each sampled row as its own neighbour. Partly missing or infinite rows were zero-filled onto the origin; they now take the feature's finite mean, as ECOD fills a gap. n_fit and later parameters are keyword-only.
…ront layer= without key_added left X untouched when the layer had no gap, a mistyped by or reference passed on a complete matrix, and method="zero" cast a complete int matrix. Drop the test that only ran on /lustre.
…aselines Forcing covariance_eigh on a reference with fewer rows than features skipped the null-direction padding, and the covariance PCA in evaluate_integration and pl.control_drift lost float32 precision under a large mean. svd_solver is validated and keyword-only; epsilon docs name "auto" again; svd_flip replaces the local sign helper.
The gene kernel enumerated every subset of guides (which come out missing, and which sit on each side of an even median), so a group of 63 or more guides crashed or returned zero, and within_perturbation always tests the non-targeting group. Count and boundary terms are now dynamic programs over the guides, equal to the enumeration to rounding.
…umba mAP After #334 tl.map takes only named distances, so the callable-distance test goes; pl.qc and io's lazy-source check read matrices through _core, a cache test covers the extreme-value kernel, and the stale pyarrow mypy override is dropped.
…er, fewer copies Results are bit-identical.
Skip atoms no high guide can balance and splits no guide has the atoms for, fuse the program's inner loop, keep the reflected _median_lt (the nextafter form was slower), and deal genes by their old cost.
A slice of an array the threads share updates its reference count from every thread, which serialized the boundary program and the binary searches on a many-core node.
The term of each swept atom is F(at most it) - F(below it); while no high guide's cut moves these telescope, so the guide program runs where a cut moves, once for both sides of the move, and with half the counts when no guide can be missing.
Documentation build overview
30 files changed ·
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #339 +/- ##
==========================================
+ Coverage 76.16% 76.38% +0.21%
==========================================
Files 100 100
Lines 13934 14000 +66
==========================================
+ Hits 10613 10694 +81
+ Misses 3321 3306 -15
🚀 New features to boost your workflow:
|
A run of atoms under one cut is F(end) - F(start); one program over the guides sums that difference as positive terms, so a tiny boundary term keeps its digits, at the cost of the two evaluations it replaces.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes the findings of the clean review of v0.1.0a4..main.
Changes:
Verified with the touched test modules, new regression tests that fail on main (bootstrap against brute-force enumeration with missing values and float32, and against simulation for 64 and 65 guides), the full suite and mypy on the cluster, and tl.bootstrap_features re-timed on the Aconcagua 100k and 1M benchmark subsets.