Use both b-tree and BRIN indexes in PostgreSQL
Your index on (study, analysis, gene, sample) INCLUDE (value) would still be usable for a query like select gene, sample, value from t where study='PNAS908' and analysis = 'the correct one'.  And will probably be better than BRIN, or at last not worse by enough to matter.
Note that if &quot;analysis&quot; is just labelled in a low-entropy way within a study (a, b, c, 1, 2, 3, log, linear, sqrt, intervention, SOC, placebo, ...), such that the same analysis identifier is reused from study to study, then the multi-column BRIN index is unlikely to do what you want.  The columns in a BRIN index are not hierarchical like they are within a btree index, they are each independent.