Bases: DataProcessingPipe
Methods:
Attributes:
assume_even_sample
instance-attribute
liability_heritability_column
instance-attribute
liability_heritability_column: str
observed_heritability_column
instance-attribute
observed_heritability_column: str
sample_info
instance-attribute
sample_info: PhenotypeInfo
process
process(x: LazyFrame) -> narwhals.LazyFrame
Source code in mecfs_bio/build_system/task/pipes/heritability_conversion_pipe.py
| def process(self, x: narwhals.LazyFrame) -> narwhals.LazyFrame:
if isinstance(self.sample_info, QuantPhenotype):
return x
pop_prev = self.sample_info.estimated_population_prevalence
df = x.collect().to_pandas()
if self.assume_even_sample:
sample_prev = 0.5
else:
sample_prev = self.sample_info.sample_prevalence
pop_prev = self.sample_info.estimated_population_prevalence
df[self.liability_heritability_column] = df[
self.observed_heritability_column
].apply(
lambda h: _get_liability_scale_heritability(
h,
sample_prev=sample_prev,
population_prev=pop_prev,
)
)
return narwhals.from_native(df).lazy()
|