From 402000dde073e7e8b3713a969b9b531a138f185e Mon Sep 17 00:00:00 2001 From: Magnus Wahlberg Date: Wed, 9 Aug 2023 11:56:31 +0200 Subject: [PATCH 1/8] Create autoblack_pull_request github action (#14) * Create autoblack_pull_request.yml * fixup! Format Python code with psf/black pull_request * Update autoblack_pull_request.yml * Update autoblack_pull_request.yml add python-version: '3.11' * Update autoblack_pull_request.yml reformat * Update autoblack_pull_request.yml rename job name --------- Co-authored-by: PMBio --- .github/workflows/autoblack_pull_request.yml | 35 +++ deeprvat/data/dense_gt.py | 1 - deeprvat/data/rare.py | 211 ++++++++++--------- deeprvat/deeprvat/associate.py | 12 +- deeprvat/deeprvat/train.py | 1 - deeprvat/metrics.py | 3 - 6 files changed, 157 insertions(+), 106 deletions(-) create mode 100644 .github/workflows/autoblack_pull_request.yml diff --git a/.github/workflows/autoblack_pull_request.yml b/.github/workflows/autoblack_pull_request.yml new file mode 100644 index 00000000..2936e248 --- /dev/null +++ b/.github/workflows/autoblack_pull_request.yml @@ -0,0 +1,35 @@ +# GitHub Action that uses Black to reformat the Python code in an incoming pull request. +# If all Python code in the pull request is complient with Black then this Action does nothing. +# Othewrwise, Black is run and its changes are committed back to the incoming pull request. +# https://github.com/cclauss/autoblack + +name: autoblack_pull_request +on: [ pull_request ] +jobs: + black-code: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.head_ref }} + - uses: actions/setup-python@v4 + with: + python-version: '3.11' + - run: pip install black + - run: black --check . + - name: If needed, commit black changes to the pull request + if: failure() + run: | + printenv | grep GITHUB + git config --global user.name 'PMBio' + git config --global user.email 'PMBio@users.noreply.github.com' + git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY + git remote -v + git branch + git status + black . + git status + echo ready to commit + git commit -am "fixup! Format Python code with psf/black pull_request" + echo ready to push + git push diff --git a/deeprvat/data/dense_gt.py b/deeprvat/data/dense_gt.py index fe17f100..16670651 100644 --- a/deeprvat/data/dense_gt.py +++ b/deeprvat/data/dense_gt.py @@ -480,7 +480,6 @@ def setup_variants( min_common_af: Optional[Dict[str, float]], train_variants: Optional[pd.DataFrame], ): - logger.debug("Setting up variants") if min_common_variant_count is None and min_common_af is None: raise ValueError( diff --git a/deeprvat/data/rare.py b/deeprvat/data/rare.py index d6ecf034..40de8446 100644 --- a/deeprvat/data/rare.py +++ b/deeprvat/data/rare.py @@ -23,7 +23,8 @@ ) logger = logging.getLogger(__name__) -#this class is used DeepRVAT + +# this class is used DeepRVAT class PaddedAnnotations: def __init__( self, @@ -262,7 +263,9 @@ def apply_thresholds(self, thresholds: Optional[Dict[str, str]]): self.exploded_annotations_np = self.exploded_annotations[ self.annotations ].to_numpy() - self.genes_np = copy.deepcopy(self.exploded_annotations[self.grouping_column].to_numpy()) + self.genes_np = copy.deepcopy( + self.exploded_annotations[self.grouping_column].to_numpy() + ) def remap_group_ids(self): self.gene_map = -(2**24) * np.ones( @@ -299,15 +302,17 @@ def get_metadata(self) -> Dict[str, np.ndarray]: # #this class is used for the seed gene discovery -class SparseGenotype(): - def __init__(self, - base_dataset, - annotations: List[str], - thresholds: Dict[str, str] = None, - gene_file: Optional[str] = None, - genes_to_keep: Optional[Set[str]] = None, - verbose: bool = False, - low_memory: bool = False): +class SparseGenotype: + def __init__( + self, + base_dataset, + annotations: List[str], + thresholds: Dict[str, str] = None, + gene_file: Optional[str] = None, + genes_to_keep: Optional[Set[str]] = None, + verbose: bool = False, + low_memory: bool = False, + ): if verbose: logger.setLevel(logging.DEBUG) @@ -318,10 +323,11 @@ def __init__(self, self.low_memory = low_memory self.max_variant_id = base_dataset.variants.index[ - base_dataset.variants['rare_variant_mask']].max() + base_dataset.variants["rare_variant_mask"] + ].max() if self.base_dataset.train_dataset is not None: - logger.debug('Setting up based on training dataset') + logger.debug("Setting up based on training dataset") train_embedding = self.base_dataset.train_dataset.rare_embedding self.annotation_df = train_embedding.annotation_df self.exploded_annotations = train_embedding.exploded_annotations @@ -329,29 +335,32 @@ def __init__(self, self.gene_map = train_embedding.gene_map self.genes = train_embedding.genes else: - logger.debug('Setting up annotations') + logger.debug("Setting up annotations") rare_variant_ids = base_dataset.variants.index[ - base_dataset.variants['rare_variant_mask']] - self.setup_annotations(rare_variant_ids, thresholds, gene_file, - genes_to_keep) + base_dataset.variants["rare_variant_mask"] + ] + self.setup_annotations( + rare_variant_ids, thresholds, gene_file, genes_to_keep + ) - logger.debug(f'Applying thresholds:\n{pformat(thresholds)}') + logger.debug(f"Applying thresholds:\n{pformat(thresholds)}") self.apply_thresholds(thresholds) - logger.debug('Remapping group IDs') + logger.debug("Remapping group IDs") self.remap_group_ids() - logger.debug('Setting up metadata') + logger.debug("Setting up metadata") self.setup_metadata() if self.low_memory: - logger.info(f' Cleaning up to save memory') + logger.info(f" Cleaning up to save memory") self.annotation_df = None self.exploded_annotations = None self.base_dataset.annotation_df = None - def embed(self, idx: int, variant_ids: np.ndarray, - genotype: np.ndarray) -> coo_matrix: + def embed( + self, idx: int, variant_ids: np.ndarray, genotype: np.ndarray + ) -> coo_matrix: """Returns: List[List[torch.Tensor]] One outer list element for each gene; inner list elements are annotations @@ -364,146 +373,152 @@ def embed(self, idx: int, variant_ids: np.ndarray, result = coo_matrix( (genotype, (np.zeros(len(variant_ids)), variant_ids)), - shape=(1, self.max_variant_id + 1)) + shape=(1, self.max_variant_id + 1), + ) return result def collate_fn(self, batch: List[coo_matrix]) -> coo_matrix: return vstack(batch) - def setup_annotations(self, - rare_variant_ids: pd.Series, - thresholds: Optional[Dict[str, str]], - gene_file: Optional[str], - genes_to_keep: Optional[Set[str]] = None): - - self.variant_map = -2**24 * np.ones(self.max_variant_id + 1, - dtype=np.int32) + def setup_annotations( + self, + rare_variant_ids: pd.Series, + thresholds: Optional[Dict[str, str]], + gene_file: Optional[str], + genes_to_keep: Optional[Set[str]] = None, + ): + self.variant_map = -(2**24) * np.ones(self.max_variant_id + 1, dtype=np.int32) - logger.debug(' Filtering by rare variant IDs and by gene') + logger.debug(" Filtering by rare variant IDs and by gene") annotation_df = self.base_dataset.annotation_df threshold_cols = list( - set() if thresholds is None else set(thresholds.keys()) - & set(annotation_df.columns)) + set() + if thresholds is None + else set(thresholds.keys()) & set(annotation_df.columns) + ) mask = annotation_df.index.isin(rare_variant_ids) mask &= annotation_df[self.grouping_column].apply(lambda x: len(x) > 0) - annotation_df = annotation_df.loc[mask, - set(self.annotations + - [self.grouping_column] + - threshold_cols)].copy() - #standardize here - if self.base_dataset.standardize_rare_anno or self.base_dataset.standardize_rare_anno_columns: - logger.debug(' Standardizing annotations') + annotation_df = annotation_df.loc[ + mask, set(self.annotations + [self.grouping_column] + threshold_cols) + ].copy() + # standardize here + if ( + self.base_dataset.standardize_rare_anno + or self.base_dataset.standardize_rare_anno_columns + ): + logger.debug(" Standardizing annotations") if self.base_dataset.standardize_rare_anno_columns: cols = self.base_dataset.standardize_rare_anno_columns else: - #all columns will be standardized + # all columns will be standardized cols = self.annotations self.stand_params = {} for col in cols: if self.base_dataset.standardize_rare_anno_params: - logger.info( - 'Using pre-defined std and mean for standardization') - std, mean = self.base_dataset.standardize_rare_anno_params[ - col] + logger.info("Using pre-defined std and mean for standardization") + std, mean = self.base_dataset.standardize_rare_anno_params[col] else: logger.info( - f'Calculating mean and standard deviation for col {col}' + f"Calculating mean and standard deviation for col {col}" ) std, mean = calculate_mean_std(annotation_df[col]) logger.info( - f'Standardising annotation {col} with mean {mean} and std {std}' + f"Standardising annotation {col} with mean {mean} and std {std}" ) annotation_df[col] = standardize_series_with_params( - annotation_df[col], std, mean) + annotation_df[col], std, mean + ) self.stand_params[col] = (std, mean) - #return standardization params + # return standardization params - logger.debug(' Exploding annotations by groups') - annotation_df[self.grouping_column] = annotation_df[ - self.grouping_column].apply(lambda x: list(set(list(x)))) - exploded_annotations = annotation_df[set([self.grouping_column] + - self.annotations + - threshold_cols)].explode( - self.grouping_column) + logger.debug(" Exploding annotations by groups") + annotation_df[self.grouping_column] = annotation_df[self.grouping_column].apply( + lambda x: list(set(list(x))) + ) + exploded_annotations = annotation_df[ + set([self.grouping_column] + self.annotations + threshold_cols) + ].explode(self.grouping_column) if gene_file is not None: - logger.debug(' Filtering by provided genes') - genes_df = pd.read_parquet(gene_file, columns=['id', 'gene']) - genes = set(genes_df['id']) - mask = exploded_annotations['gene_ids'].isin(genes) + logger.debug(" Filtering by provided genes") + genes_df = pd.read_parquet(gene_file, columns=["id", "gene"]) + genes = set(genes_df["id"]) + mask = exploded_annotations["gene_ids"].isin(genes) if genes_to_keep is not None: genes_to_keep_ids = set( - genes_df[genes_df['gene'].isin(genes_to_keep)]['id']) - mask &= exploded_annotations['gene_ids'].isin( - genes_to_keep_ids) + genes_df[genes_df["gene"].isin(genes_to_keep)]["id"] + ) + mask &= exploded_annotations["gene_ids"].isin(genes_to_keep_ids) exploded_annotations = exploded_annotations[mask] - annotation_df = annotation_df[annotation_df.index.isin( - exploded_annotations.index)] + annotation_df = annotation_df[ + annotation_df.index.isin(exploded_annotations.index) + ] - self.annotation_df = annotation_df[set(self.annotations + - threshold_cols)] + self.annotation_df = annotation_df[set(self.annotations + threshold_cols)] self.exploded_annotations = exploded_annotations[ - set([self.grouping_column] + self.annotations + - threshold_cols)].astype({self.grouping_column: np.int32}) + set([self.grouping_column] + self.annotations + threshold_cols) + ].astype({self.grouping_column: np.int32}) def apply_thresholds(self, thresholds: Optional[Dict[str, str]]): if thresholds is not None: - self.annotation_df['mask'] = True - self.exploded_annotations['mask'] = True + self.annotation_df["mask"] = True + self.exploded_annotations["mask"] = True for op in thresholds.values(): - self.annotation_df['mask'] &= self.annotation_df.eval(op) - self.exploded_annotations[ - 'mask'] &= self.exploded_annotations.eval(op) - self.annotation_df = self.annotation_df[self.annotation_df['mask']] + self.annotation_df["mask"] &= self.annotation_df.eval(op) + self.exploded_annotations["mask"] &= self.exploded_annotations.eval(op) + self.annotation_df = self.annotation_df[self.annotation_df["mask"]] self.exploded_annotations = self.exploded_annotations[ - self.exploded_annotations['mask']] + self.exploded_annotations["mask"] + ] self.annotation_df = self.annotation_df[self.annotations] self.exploded_annotations = self.exploded_annotations[ - [self.grouping_column] + self.annotations] + [self.grouping_column] + self.annotations + ] self.exploded_annotations_np = self.exploded_annotations[ - self.annotations].to_numpy() + self.annotations + ].to_numpy() self.kept_variants = np.sort(self.annotation_df.index.to_numpy()) assert np.all(self.kept_variants == np.unique(self.kept_variants)) - self.variant_map[self.kept_variants] = np.arange( - len(self.annotation_df)) + self.variant_map[self.kept_variants] = np.arange(len(self.annotation_df)) def remap_group_ids(self): - self.gene_map = -2**24 * np.ones( - self.exploded_annotations[self.grouping_column].max() + 1, - dtype=np.int32) - self.genes = np.sort( - self.exploded_annotations[self.grouping_column].unique()) + self.gene_map = -(2**24) * np.ones( + self.exploded_annotations[self.grouping_column].max() + 1, dtype=np.int32 + ) + self.genes = np.sort(self.exploded_annotations[self.grouping_column].unique()) self.n_genes = len(self.genes) - logger.info(f'Found {self.n_genes} genes with rare variants ' - 'that pass thresholds') + logger.info( + f"Found {self.n_genes} genes with rare variants " "that pass thresholds" + ) self.gene_map[self.genes] = np.arange(self.genes.shape[0]) self.exploded_annotations[self.grouping_column] = self.gene_map[ - self.exploded_annotations[self.grouping_column].to_numpy()] + self.exploded_annotations[self.grouping_column].to_numpy() + ] + def setup_metadata(self): - logger.debug(' Precomputing integer indices for exploded dataframe') + logger.debug(" Precomputing integer indices for exploded dataframe") self.exp_anno_id_indices = [ np.array([], dtype=np.int32) for _ in range(self.annotation_df.index.max() + 1) ] for i in range(len(self.exploded_annotations)): j = self.exploded_annotations.index[i] - self.exp_anno_id_indices[j] = np.append( - self.exp_anno_id_indices[j], i) + self.exp_anno_id_indices[j] = np.append(self.exp_anno_id_indices[j], i) def get_metadata(self) -> Dict[str, np.ndarray]: return { - 'genes': self.genes, - 'gene_map': self.gene_map, - 'variants': self.kept_variants, - 'variant_map': self.variant_map - } \ No newline at end of file + "genes": self.genes, + "gene_map": self.gene_map, + "variants": self.kept_variants, + "variant_map": self.variant_map, + } diff --git a/deeprvat/deeprvat/associate.py b/deeprvat/deeprvat/associate.py index 765438b1..8e5efa42 100644 --- a/deeprvat/deeprvat/associate.py +++ b/deeprvat/deeprvat/associate.py @@ -290,7 +290,9 @@ def load_one_model( @click.argument("model-config-file", type=click.Path(exists=True)) @click.argument("data-config-file", type=click.Path(exists=True)) @click.argument("checkpoint-files", type=click.Path(exists=True), nargs=-1) -def reverse_models(model_config_file: str, data_config_file: str, checkpoint_files: Tuple[str]): +def reverse_models( + model_config_file: str, data_config_file: str, checkpoint_files: Tuple[str] +): with open(model_config_file) as f: model_config = yaml.safe_load(f) @@ -331,10 +333,14 @@ def reverse_models(model_config_file: str, data_config_file: str, checkpoint_fil agg_model = load_one_model(data_config, checkpoint, device=device) score = agg_model( - torch.tensor(plof, dtype=torch.float, device=device).reshape((n_variants, 1, -1, 1)) + torch.tensor(plof, dtype=torch.float, device=device).reshape( + (n_variants, 1, -1, 1) + ) ).reshape(n_variants) score_zero = agg_model( - torch.tensor(plof_zero, dtype=torch.float, device=device).reshape((n_variants, 1, -1, 1)) + torch.tensor(plof_zero, dtype=torch.float, device=device).reshape( + (n_variants, 1, -1, 1) + ) ).reshape(n_variants) mean_difference = torch.mean(score - score_zero).item() diff --git a/deeprvat/deeprvat/train.py b/deeprvat/deeprvat/train.py index 8ee0f465..8889dfae 100644 --- a/deeprvat/deeprvat/train.py +++ b/deeprvat/deeprvat/train.py @@ -113,7 +113,6 @@ def make_dataset_( or training_dataset_file is None or not Path(training_dataset_file).is_file() ): - variant_file = config["training_data"].get( "variant_file", f'{config["training_data"]["gt_file"][:-3]}_variants.parquet', diff --git a/deeprvat/metrics.py b/deeprvat/metrics.py index ff7acca8..429ddfb3 100644 --- a/deeprvat/metrics.py +++ b/deeprvat/metrics.py @@ -30,7 +30,6 @@ def __init__(self): pass def __call__(self, burden, y): - if len(burden.shape) > 1: # was the burden computed for >1 genes corrs = [] for i in range(burden.shape[1]): # number of genes @@ -53,7 +52,6 @@ def __init__(self): pass def __call__(self, burden, y): - if len(burden.shape) > 1: # was the burden computed for >1 genes corrs = [] for i in range(burden.shape[1]): # number of genes @@ -75,7 +73,6 @@ def __call__(self, burden, y): return corr def calculate_pearsonr(self, x, y): - vx = x - torch.mean(x) vy = y - torch.mean(y) From 2434b387ec349013da20a79c0c0e394e6a06c852 Mon Sep 17 00:00:00 2001 From: Magnus Wahlberg Date: Wed, 9 Aug 2023 16:31:23 +0200 Subject: [PATCH 2/8] Add note on deeprvat environment (#17) * Update README.md * Update README.md Add link to mamba --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7a131954..b0b62f11 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,9 @@ Rare variant association testing using deep learning and data-driven burden scor git clone git@github.com:PMBio/deeprvat.git ``` 1. Change directory to the repository: `cd deeprvat` -1. Install the conda environment. We recommend using `mamba`, though you may also replace `mamba` with `conda`: +1. Install the conda environment. We recommend using [mamba](https://mamba.readthedocs.io/en/latest/index.html), though you may also replace `mamba` with `conda` + + *note: [the current deeprvat env does not support cuda when installed with conda](https://github.com/PMBio/deeprvat/issues/16), install using mamba for cuda support.* ``` mamba env create -n deeprvat -f deeprvat_env.yaml ``` From 363d0119afafbc9c8934d5203b91ff14e4644f4f Mon Sep 17 00:00:00 2001 From: meyerkm <129152803+meyerkm@users.noreply.github.com> Date: Fri, 25 Aug 2023 13:34:53 +0200 Subject: [PATCH 3/8] fix-path-naming (#18) --- deeprvat/deeprvat/associate.py | 5 +---- deeprvat/deeprvat/train.py | 6 +----- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/deeprvat/deeprvat/associate.py b/deeprvat/deeprvat/associate.py index 8e5efa42..dc3463f3 100644 --- a/deeprvat/deeprvat/associate.py +++ b/deeprvat/deeprvat/associate.py @@ -96,12 +96,9 @@ def make_dataset_( with open(ds_pickled, "rb") as f: ds = pickle.load(f) else: - variant_file = data_config.get( - "variant_file", f'{data_config["gt_file"][:-3]}_variants.parquet' - ) ds = DenseGTDataset( data_config["gt_file"], - variant_file=variant_file, + variant_file=data_config["variant_file"], split="", skip_y_na=False, **copy.deepcopy(data_config["dataset_config"]), diff --git a/deeprvat/deeprvat/train.py b/deeprvat/deeprvat/train.py index 8889dfae..fd047868 100644 --- a/deeprvat/deeprvat/train.py +++ b/deeprvat/deeprvat/train.py @@ -113,13 +113,9 @@ def make_dataset_( or training_dataset_file is None or not Path(training_dataset_file).is_file() ): - variant_file = config["training_data"].get( - "variant_file", - f'{config["training_data"]["gt_file"][:-3]}_variants.parquet', - ) ds = DenseGTDataset( gt_file=config["training_data"]["gt_file"], - variant_file=variant_file, + variant_file=config["training_data"]["variant_file"], split="", skip_y_na=True, **config["training_data"]["dataset_config"], From b9ce67ab552a584891cd32fa1d33e64db8bb9f79 Mon Sep 17 00:00:00 2001 From: Magnus Wahlberg Date: Mon, 4 Sep 2023 12:15:52 +0200 Subject: [PATCH 4/8] Remove sample sorting from preprocessing (#22) * Don't sort samples * Change type to list from set --- deeprvat/preprocessing/preprocess.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/deeprvat/preprocessing/preprocess.py b/deeprvat/preprocessing/preprocess.py index 729e0789..c3d4a0f8 100644 --- a/deeprvat/preprocessing/preprocess.py +++ b/deeprvat/preprocessing/preprocess.py @@ -227,8 +227,7 @@ def process_sparse_gt( else: logging.info(f"Found no samples to exclude in {exclude_samples}") - # Assumes only numeric sample names - samples = sorted([s for s in samples if int(s) > 0]) + samples = list(samples) logging.info("Processing sparse GT files by chromosome") total_calls_dropped = 0 From 3c893157c50c30788003303fce593e0320fc902a Mon Sep 17 00:00:00 2001 From: Eva Holtkamp Date: Mon, 4 Sep 2023 14:22:22 +0200 Subject: [PATCH 5/8] fixing file paths of seed gene discovery input --- deeprvat/deeprvat/evaluate.py | 2 +- pipelines/association_testing_pretrained.snakefile | 2 +- pipelines/training_association_testing.snakefile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/deeprvat/deeprvat/evaluate.py b/deeprvat/deeprvat/evaluate.py index 4f14a188..f3b3e4ff 100644 --- a/deeprvat/deeprvat/evaluate.py +++ b/deeprvat/deeprvat/evaluate.py @@ -77,7 +77,7 @@ def get_baseline_results( ( r["type"].split("/")[0], r["type"].split("/")[1], - ): f"{r['base']}/{pheno}/{r['type']}/eval/burden_associations_testing.parquet" + ): f"{r['base']}/{pheno}/{r['type']}/eval/burden_associations.parquet" for r in config["baseline_results"] } diff --git a/pipelines/association_testing_pretrained.snakefile b/pipelines/association_testing_pretrained.snakefile index d8aac7b3..702302f0 100644 --- a/pipelines/association_testing_pretrained.snakefile +++ b/pipelines/association_testing_pretrained.snakefile @@ -202,7 +202,7 @@ rule config: config = 'config.yaml', baseline = lambda wildcards: [ str(Path(r['base']) / wildcards.phenotype / r['type'] / - 'eval/burden_associations_testing.parquet') + 'eval/burden_associations.parquet') for r in config['baseline_results'] ] output: diff --git a/pipelines/training_association_testing.snakefile b/pipelines/training_association_testing.snakefile index 3270290a..069602b6 100644 --- a/pipelines/training_association_testing.snakefile +++ b/pipelines/training_association_testing.snakefile @@ -316,7 +316,7 @@ rule config: config = 'config.yaml', baseline = lambda wildcards: [ str(Path(r['base']) / wildcards.phenotype / r['type'] / - 'eval/burden_associations_testing.parquet') + 'eval/burden_associations.parquet') for r in config['baseline_results'] ] output: From 284eb25e7fb600315323e21405a444bb03d13a95 Mon Sep 17 00:00:00 2001 From: Eva Holtkamp <59055511+HolEv@users.noreply.github.com> Date: Mon, 4 Sep 2023 15:29:26 +0200 Subject: [PATCH 6/8] aligning file paths of seed gene discovery ouptut and deeprvat input (#23) --- ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin ..._testing.parquet => burden_associations.parquet} | Bin 84 files changed, 0 insertions(+), 0 deletions(-) rename example/baseline_results/Apolipoprotein_A/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Apolipoprotein_A/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Apolipoprotein_A/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Apolipoprotein_A/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Apolipoprotein_B/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Apolipoprotein_B/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Apolipoprotein_B/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Apolipoprotein_B/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Calcium/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Calcium/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Calcium/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Calcium/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Cholesterol/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Cholesterol/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Cholesterol/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Cholesterol/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/HDL_cholesterol/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/HDL_cholesterol/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/HDL_cholesterol/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/HDL_cholesterol/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/IGF_1/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/IGF_1/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/IGF_1/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/IGF_1/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/LDL_direct/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/LDL_direct/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/LDL_direct/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/LDL_direct/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Lymphocyte_percentage/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Lymphocyte_percentage/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Lymphocyte_percentage/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Lymphocyte_percentage/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Mean_corpuscular_volume/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Mean_corpuscular_volume/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Mean_corpuscular_volume/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Mean_corpuscular_volume/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Mean_platelet_thrombocyte_volume/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Mean_platelet_thrombocyte_volume/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Mean_platelet_thrombocyte_volume/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Mean_platelet_thrombocyte_volume/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Mean_reticulocyte_volume/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Mean_reticulocyte_volume/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Mean_reticulocyte_volume/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Mean_reticulocyte_volume/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Neutrophill_count/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Neutrophill_count/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Neutrophill_count/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Neutrophill_count/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Platelet_count/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Platelet_count/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Platelet_count/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Platelet_count/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Platelet_crit/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Platelet_crit/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Platelet_crit/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Platelet_crit/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Platelet_distribution_width/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Platelet_distribution_width/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Platelet_distribution_width/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Platelet_distribution_width/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Red_blood_cell_erythrocyte_count/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Red_blood_cell_erythrocyte_count/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Red_blood_cell_erythrocyte_count/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Red_blood_cell_erythrocyte_count/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/SHBG/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/SHBG/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/SHBG/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/SHBG/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Standing_height/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Standing_height/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Standing_height/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Standing_height/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Total_bilirubin/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Total_bilirubin/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Total_bilirubin/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Total_bilirubin/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Triglycerides/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Triglycerides/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Triglycerides/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Triglycerides/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Urate/missense/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Urate/missense/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Urate/plof/burden/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) rename example/baseline_results/Urate/plof/skat/eval/{burden_associations_testing.parquet => burden_associations.parquet} (100%) diff --git a/example/baseline_results/Apolipoprotein_A/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Apolipoprotein_A/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Apolipoprotein_A/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Apolipoprotein_A/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Apolipoprotein_A/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Apolipoprotein_A/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Apolipoprotein_A/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Apolipoprotein_A/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Apolipoprotein_A/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Apolipoprotein_A/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Apolipoprotein_A/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Apolipoprotein_A/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Apolipoprotein_A/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Apolipoprotein_A/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Apolipoprotein_A/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Apolipoprotein_A/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Apolipoprotein_B/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Apolipoprotein_B/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Apolipoprotein_B/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Apolipoprotein_B/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Apolipoprotein_B/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Apolipoprotein_B/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Apolipoprotein_B/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Apolipoprotein_B/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Apolipoprotein_B/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Apolipoprotein_B/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Apolipoprotein_B/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Apolipoprotein_B/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Apolipoprotein_B/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Apolipoprotein_B/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Apolipoprotein_B/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Apolipoprotein_B/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Calcium/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Calcium/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Calcium/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Calcium/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Calcium/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Calcium/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Calcium/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Calcium/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Calcium/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Calcium/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Calcium/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Calcium/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Calcium/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Calcium/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Calcium/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Calcium/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Cholesterol/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Cholesterol/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Cholesterol/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Cholesterol/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Cholesterol/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Cholesterol/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Cholesterol/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Cholesterol/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Cholesterol/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Cholesterol/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Cholesterol/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Cholesterol/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Cholesterol/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Cholesterol/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Cholesterol/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Cholesterol/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/HDL_cholesterol/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/HDL_cholesterol/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/HDL_cholesterol/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/HDL_cholesterol/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/HDL_cholesterol/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/HDL_cholesterol/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/HDL_cholesterol/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/HDL_cholesterol/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/HDL_cholesterol/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/HDL_cholesterol/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/HDL_cholesterol/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/HDL_cholesterol/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/HDL_cholesterol/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/HDL_cholesterol/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/HDL_cholesterol/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/HDL_cholesterol/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/IGF_1/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/IGF_1/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/IGF_1/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/IGF_1/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/IGF_1/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/IGF_1/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/IGF_1/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/IGF_1/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/IGF_1/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/IGF_1/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/IGF_1/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/IGF_1/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/IGF_1/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/IGF_1/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/IGF_1/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/IGF_1/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/LDL_direct/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/LDL_direct/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/LDL_direct/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/LDL_direct/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/LDL_direct/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/LDL_direct/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/LDL_direct/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/LDL_direct/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/LDL_direct/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/LDL_direct/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/LDL_direct/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/LDL_direct/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/LDL_direct/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/LDL_direct/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/LDL_direct/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/LDL_direct/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Lymphocyte_percentage/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Lymphocyte_percentage/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Lymphocyte_percentage/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Lymphocyte_percentage/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Lymphocyte_percentage/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Lymphocyte_percentage/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Lymphocyte_percentage/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Lymphocyte_percentage/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Lymphocyte_percentage/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Lymphocyte_percentage/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Lymphocyte_percentage/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Lymphocyte_percentage/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Lymphocyte_percentage/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Lymphocyte_percentage/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Lymphocyte_percentage/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Lymphocyte_percentage/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Mean_corpuscular_volume/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Mean_corpuscular_volume/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Mean_corpuscular_volume/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Mean_corpuscular_volume/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Mean_corpuscular_volume/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Mean_corpuscular_volume/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Mean_corpuscular_volume/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Mean_corpuscular_volume/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Mean_corpuscular_volume/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Mean_corpuscular_volume/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Mean_corpuscular_volume/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Mean_corpuscular_volume/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Mean_corpuscular_volume/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Mean_corpuscular_volume/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Mean_corpuscular_volume/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Mean_corpuscular_volume/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Mean_platelet_thrombocyte_volume/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Mean_platelet_thrombocyte_volume/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Mean_platelet_thrombocyte_volume/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Mean_platelet_thrombocyte_volume/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Mean_platelet_thrombocyte_volume/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Mean_platelet_thrombocyte_volume/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Mean_platelet_thrombocyte_volume/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Mean_platelet_thrombocyte_volume/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Mean_platelet_thrombocyte_volume/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Mean_platelet_thrombocyte_volume/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Mean_platelet_thrombocyte_volume/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Mean_platelet_thrombocyte_volume/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Mean_platelet_thrombocyte_volume/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Mean_platelet_thrombocyte_volume/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Mean_platelet_thrombocyte_volume/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Mean_platelet_thrombocyte_volume/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Mean_reticulocyte_volume/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Mean_reticulocyte_volume/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Mean_reticulocyte_volume/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Mean_reticulocyte_volume/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Mean_reticulocyte_volume/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Mean_reticulocyte_volume/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Mean_reticulocyte_volume/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Mean_reticulocyte_volume/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Mean_reticulocyte_volume/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Mean_reticulocyte_volume/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Mean_reticulocyte_volume/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Mean_reticulocyte_volume/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Mean_reticulocyte_volume/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Mean_reticulocyte_volume/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Mean_reticulocyte_volume/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Mean_reticulocyte_volume/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Neutrophill_count/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Neutrophill_count/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Neutrophill_count/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Neutrophill_count/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Neutrophill_count/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Neutrophill_count/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Neutrophill_count/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Neutrophill_count/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Neutrophill_count/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Neutrophill_count/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Neutrophill_count/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Neutrophill_count/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Neutrophill_count/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Neutrophill_count/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Neutrophill_count/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Neutrophill_count/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Platelet_count/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Platelet_count/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Platelet_count/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Platelet_count/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Platelet_count/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Platelet_count/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Platelet_count/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Platelet_count/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Platelet_count/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Platelet_count/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Platelet_count/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Platelet_count/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Platelet_count/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Platelet_count/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Platelet_count/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Platelet_count/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Platelet_crit/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Platelet_crit/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Platelet_crit/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Platelet_crit/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Platelet_crit/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Platelet_crit/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Platelet_crit/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Platelet_crit/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Platelet_crit/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Platelet_crit/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Platelet_crit/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Platelet_crit/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Platelet_crit/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Platelet_crit/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Platelet_crit/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Platelet_crit/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Platelet_distribution_width/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Platelet_distribution_width/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Platelet_distribution_width/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Platelet_distribution_width/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Platelet_distribution_width/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Platelet_distribution_width/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Platelet_distribution_width/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Platelet_distribution_width/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Platelet_distribution_width/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Platelet_distribution_width/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Platelet_distribution_width/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Platelet_distribution_width/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Platelet_distribution_width/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Platelet_distribution_width/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Platelet_distribution_width/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Platelet_distribution_width/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Red_blood_cell_erythrocyte_count/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Red_blood_cell_erythrocyte_count/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Red_blood_cell_erythrocyte_count/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Red_blood_cell_erythrocyte_count/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Red_blood_cell_erythrocyte_count/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Red_blood_cell_erythrocyte_count/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Red_blood_cell_erythrocyte_count/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Red_blood_cell_erythrocyte_count/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Red_blood_cell_erythrocyte_count/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Red_blood_cell_erythrocyte_count/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Red_blood_cell_erythrocyte_count/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Red_blood_cell_erythrocyte_count/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Red_blood_cell_erythrocyte_count/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Red_blood_cell_erythrocyte_count/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Red_blood_cell_erythrocyte_count/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Red_blood_cell_erythrocyte_count/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/SHBG/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/SHBG/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/SHBG/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/SHBG/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/SHBG/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/SHBG/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/SHBG/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/SHBG/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/SHBG/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/SHBG/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/SHBG/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/SHBG/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/SHBG/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/SHBG/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/SHBG/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/SHBG/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Standing_height/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Standing_height/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Standing_height/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Standing_height/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Standing_height/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Standing_height/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Standing_height/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Standing_height/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Standing_height/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Standing_height/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Standing_height/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Standing_height/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Standing_height/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Standing_height/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Standing_height/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Standing_height/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Total_bilirubin/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Total_bilirubin/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Total_bilirubin/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Total_bilirubin/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Total_bilirubin/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Total_bilirubin/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Total_bilirubin/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Total_bilirubin/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Total_bilirubin/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Total_bilirubin/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Total_bilirubin/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Total_bilirubin/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Total_bilirubin/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Total_bilirubin/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Total_bilirubin/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Total_bilirubin/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Triglycerides/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Triglycerides/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Triglycerides/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Triglycerides/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Triglycerides/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Triglycerides/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Triglycerides/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Triglycerides/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Triglycerides/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Triglycerides/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Triglycerides/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Triglycerides/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Triglycerides/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Triglycerides/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Triglycerides/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Triglycerides/plof/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Urate/missense/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Urate/missense/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Urate/missense/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Urate/missense/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Urate/missense/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Urate/missense/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Urate/missense/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Urate/missense/skat/eval/burden_associations.parquet diff --git a/example/baseline_results/Urate/plof/burden/eval/burden_associations_testing.parquet b/example/baseline_results/Urate/plof/burden/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Urate/plof/burden/eval/burden_associations_testing.parquet rename to example/baseline_results/Urate/plof/burden/eval/burden_associations.parquet diff --git a/example/baseline_results/Urate/plof/skat/eval/burden_associations_testing.parquet b/example/baseline_results/Urate/plof/skat/eval/burden_associations.parquet similarity index 100% rename from example/baseline_results/Urate/plof/skat/eval/burden_associations_testing.parquet rename to example/baseline_results/Urate/plof/skat/eval/burden_associations.parquet From 7215b4ec5b0193e88bf431b47c14824026563d25 Mon Sep 17 00:00:00 2001 From: meyerkm <129152803+meyerkm@users.noreply.github.com> Date: Tue, 26 Sep 2023 09:37:08 +0200 Subject: [PATCH 7/8] Update train.py DataLoader (#25) Bug fix groupby action for categorical data to only show observed values in resulting DataFrame. --- deeprvat/deeprvat/train.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deeprvat/deeprvat/train.py b/deeprvat/deeprvat/train.py index fd047868..c2e2abd4 100644 --- a/deeprvat/deeprvat/train.py +++ b/deeprvat/deeprvat/train.py @@ -285,7 +285,7 @@ def __getitem__(self, index): start_idx = index * self.batch_size end_idx = min(self.total_samples, start_idx + self.batch_size) batch_samples = self.sample_order.iloc[start_idx:end_idx] - samples_by_pheno = batch_samples.groupby("phenotype") + samples_by_pheno = batch_samples.groupby("phenotype", observed=True) result = dict() for pheno, df in samples_by_pheno: From 955f535ddc0a326573b4d5eb67260a911432f549 Mon Sep 17 00:00:00 2001 From: Eva Holtkamp <59055511+HolEv@users.noreply.github.com> Date: Fri, 13 Oct 2023 10:58:32 +0200 Subject: [PATCH 8/8] Feature binary traits (#27) * necessary changes to allow for testing of binary traits * update config * fixup! Format Python code with psf/black pull_request * fix gene file in config * fix config * adapting conifg to work with tests * address comments in pull request * address comments from pull request * fixup! Format Python code with psf/black pull_request * addressing comments from pull request * addressing comments from pull request * fixup! Format Python code with psf/black pull_request * address comments from pull request * fixup! Format Python code with psf/black pull_request * adding max_n_markers argument * require MAF column argument * fixup! Format Python code with psf/black pull_request * reformatting --------- Co-authored-by: PMBio --- deeprvat/data/dense_gt.py | 15 ++- deeprvat/deeprvat/associate.py | 14 ++- deeprvat/seed_gene_discovery/config.yaml | 18 ++- .../seed_gene_discovery.py | 95 ++++++++++++---- pipelines/seed_gene_discovery.snakefile | 104 +++++++++++++++--- 5 files changed, 200 insertions(+), 46 deletions(-) diff --git a/deeprvat/data/dense_gt.py b/deeprvat/data/dense_gt.py index 16670651..c02521d5 100644 --- a/deeprvat/data/dense_gt.py +++ b/deeprvat/data/dense_gt.py @@ -409,7 +409,18 @@ def transform_data(self): self.phenotype_df[col] = rng.permutation( self.phenotype_df[col].to_numpy() ) - + if len(self.y_phenotypes) > 0: + unique_y_val = self.phenotype_df[self.y_phenotypes[0]].unique() + n_unique_y_val = np.count_nonzero(~np.isnan(unique_y_val)) + logger.info(f"unique y values {unique_y_val}") + logger.info(n_unique_y_val) + else: + n_unique_y_val = 0 + if n_unique_y_val == 2: + logger.warning( + "Not applying y transformation because y only has two values and seems to be binary" + ) + self.y_transformation = None if self.y_transformation is not None: if self.y_transformation == "standardize": logger.debug(" Standardizing target phenotype") @@ -425,6 +436,8 @@ def transform_data(self): ) else: raise ValueError(f"Unknown y_transformation: {self.y_transformation}") + else: + logger.warning("Not transforming phenotype") def setup_annotations( self, diff --git a/deeprvat/deeprvat/associate.py b/deeprvat/deeprvat/associate.py index dc3463f3..a9d29228 100644 --- a/deeprvat/deeprvat/associate.py +++ b/deeprvat/deeprvat/associate.py @@ -496,8 +496,11 @@ def regress_on_gene_scoretest(gene: str, burdens: np.ndarray, model_score): f"gene {gene}, p-value: {pv}, using saddle instead." ) pv = model_score.pv_alt_model(burdens, method="saddle") - - beta = model_score.coef(burdens)["beta"][0, 0] + # beta only for linear models + try: + beta = model_score.coef(burdens)["beta"][0, 0] + except: + beta = None genes_params_pvalues = ([], [], []) genes_params_pvalues[0].append(gene) @@ -576,7 +579,12 @@ def regress_( logger.info(f"X shape: {X.shape}, Y shape: {y.shape}") # compute null_model for score test - model_score = scoretest.ScoretestNoK(y, X) + if len(np.unique(y)) == 2: + logger.info("Fitting binary model since only found two distinct y values") + model_score = scoretest.ScoretestLogit(y, X) + else: + logger.info("Fitting linear model") + model_score = scoretest.ScoretestNoK(y, X) genes_betas_pvals = [ regress_on_gene_scoretest(gene, burdens[mask, i], model_score) for i, gene in tqdm( diff --git a/deeprvat/seed_gene_discovery/config.yaml b/deeprvat/seed_gene_discovery/config.yaml index 444d0635..f4a5eba0 100644 --- a/deeprvat/seed_gene_discovery/config.yaml +++ b/deeprvat/seed_gene_discovery/config.yaml @@ -20,7 +20,20 @@ phenotypes: # - Platelet_crit # - Platelet_distribution_width # - Red_blood_cell_erythrocyte_count - +# - Body_mass_index_BMI +# - Glucose +# - Vitamin_D +# - Albumin +# - Total_protein +# - Cystatin_C +# - Gamma_glutamyltransferase +# - Alkaline_phosphatase +# - Creatinine +# - Whole_body_fat_free_mass +# - Forced_expiratory_volume_in_1_second_FEV1 +# - Glycated_haemoglobin_HbA1c +# - WHR_Body_mass_index_BMI_corrected + variant_types: - missense - plof @@ -42,7 +55,7 @@ test_config: neglect_homozygous: False collapse_method: sum #collapsing method for burde var_weight_function: beta_maf - + min_mac: 10 variant_file: variants.parquet data: @@ -99,3 +112,4 @@ data: num_workers: 10 #batch_size: 20 + diff --git a/deeprvat/seed_gene_discovery/seed_gene_discovery.py b/deeprvat/seed_gene_discovery/seed_gene_discovery.py index 28d3e160..bd9c6781 100644 --- a/deeprvat/seed_gene_discovery/seed_gene_discovery.py +++ b/deeprvat/seed_gene_discovery/seed_gene_discovery.py @@ -7,6 +7,8 @@ import time from pathlib import Path from typing import Any, Dict, List, Optional, Tuple +import copy + import click import numpy as np @@ -18,7 +20,7 @@ from tqdm import tqdm from deeprvat.data import DenseGTDataset -from seak.scoretest import ScoretestNoK +from seak import scoretest logging.basicConfig( format="[%(asctime)s] %(levelname)s:%(name)s: %(message)s", @@ -38,6 +40,14 @@ def replace_in_array(arr, old_val, new_val): return np.where(arr == old_val, new_val, arr) +def get_caf(G): + # get the cumulative allele frequency + ac = G.sum(axis=0) # allele count of each variant + af = ac / (G.shape[0] * 2) # allele frequency of each variant + caf = af.sum() + return caf + + # return mask def save_burdens(GW_list, GW_full_list, split, chunk, out_dir): burdens_path = Path(f"{out_dir}/burdens") @@ -178,7 +188,11 @@ def get_anno( def call_score(GV, null_model_score, pval_dict, test_type): # score test # p-value for the score-test + start_time = time.time() pv = null_model_score.pv_alt_model(GV) + end_time = time.time() + time_diff = end_time - start_time + pval_dict["time"] = time_diff logger.info(f"p-value: {pv}") if pv < 0.0: logger.warning( @@ -195,10 +209,15 @@ def call_score(GV, null_model_score, pval_dict, test_type): if pv < 1e-3 and test_type == "burden": logger.info("Computing regression coefficient") # if gene is quite significant get the regression coefficient + SE - beta = null_model_score.coef(GV) - logger.info(f"Regression coefficient: {beta}") - pval_dict["beta"] = beta["beta"][0, 0] - pval_dict["betaSd"] = np.sqrt(beta["var_beta"][0, 0]) + # only works for quantitative traits + try: + beta = null_model_score.coef(GV) + logger.info(f"Regression coefficient: {beta}") + pval_dict["beta"] = beta["beta"][0, 0] + pval_dict["betaSd"] = np.sqrt(beta["var_beta"][0, 0]) + except: + pval_dict["beta"] = None + pval_dict["betaSd"] = None return pval_dict @@ -207,13 +226,14 @@ def test_gene( G_full: spmatrix, gene: int, grouped_annotations: pd.DataFrame, - dataset: DenseGTDataset, + Y, weight_cols: List[str], - null_model_score: ScoretestNoK, + null_model_score: scoretest.ScoretestNoK, test_config: Dict, var_type, test_type, maf_col, + min_mac, ) -> Dict[str, Any]: # Find variants present in gene # Convert sparse genotype to CSC @@ -232,11 +252,16 @@ def test_gene( # GET expected allele count (EAC) as in Karczewski et al. 2022/Genebass vars_per_sample = np.sum(G, axis=1) samples_with_variant = vars_per_sample[vars_per_sample > 0].shape[0] - EAC = np.sum(vars_per_sample) + if len(np.unique(Y)) == 2: + n_cases = (Y > 0).sum() + else: + n_cases = Y.shape[0] + EAC = get_caf(G) * n_cases pval_dict = {} pval_dict["EAC"] = EAC + pval_dict["n_cases"] = n_cases pval_dict["gene"] = gene pval_dict["pval"] = np.nan pval_dict["EAC_filtered"] = np.nan @@ -247,11 +272,11 @@ def test_gene( pval_dict["time"] = np.nan var_weight_function = test_config.get("var_weight_function", "sift_polyphen") + max_n_markers = test_config.get("max_n_markers", 5000) + # skips genes with more than max_n_markers qualifying variants logger.info(f"Using function {var_weight_function} for variant weighting") - # keep backwards compatibility - ( weights, _, @@ -272,12 +297,12 @@ def test_gene( f"Number of variants after thresholding using threshold {variant_weight_th}: {len(pos)}" ) pval_dict["n_QV"] = len(pos) - - if len(pos) > 0: + pval_dict["markers_after_mac_collapsing"] = len(pos) + if (len(pos) > 0) & (len(pos) < max_n_markers): G_f = G[:, pos] - EAC_filtered = np.sum(np.sum(G_f, axis=1)) + EAC_filtered = EAC = get_caf(G_f) * n_cases pval_dict["EAC_filtered"] = EAC_filtered - + MAC = G_f.sum(axis=0) count = G_f[G_f == 2].shape[0] # confirm that variants we include are rare variants @@ -303,11 +328,28 @@ def test_gene( pval_dict["n_cluster"] = GW.shape[1] ### COLLAPSE kernel if doing burden test - + collapse_ultra_rare = True if test_type == "skat": logger.info("Running Skat test") - GW = GW - + if collapse_ultra_rare: + logger.info(f"Max Collapsing variants with MAC <= {min_mac}") + MAC_mask = MAC <= min_mac + if MAC_mask.sum() > 0: + logger.info(f"Number of collapsed positions: {MAC_mask.sum()}") + GW_collapse = copy.deepcopy(GW) + GW_collapse = GW_collapse[:, MAC_mask].max(axis=1).reshape(-1, 1) + GW = GW[:, ~MAC_mask] + GW = np.hstack((GW_collapse, GW)) + logger.info(f"GW shape {GW.shape}") + else: + logger.info( + f"No ultra rare variants to collapse ({MAC_mask.sum()})" + ) + GW = GW + else: + GW = GW + + pval_dict["markers_after_mac_collapsing"] = GW.shape[1] if test_type == "burden": collapse_method = test_config.get("collapse_method", "binary") logger.info(f"Running burden test with collapsing method {collapse_method}") @@ -335,14 +377,18 @@ def run_association_( ) -> pd.DataFrame: # initialize the null models # ScoretestNoK automatically adds a bias column if not present - null_model_score = ScoretestNoK(Y, X) + if len(np.unique(Y)) == 2: + print("Fitting binary model since only found two distinct y values") + null_model_score = scoretest.ScoretestLogit(Y, X) + else: + null_model_score = scoretest.ScoretestNoK(Y, X) stats = [] GW_list = {} GW_full_list = {} time_list_inner = {} weight_cols = config.get("weight_cols", []) logger.info(f"Testing with this config: {config['test_config']}") - + min_mac = config["test_config"].get("min_mac", 0) # Get column with minor allele frequency annotations = config["data"]["dataset_config"]["annotations"] maf_col = [ @@ -360,13 +406,14 @@ def run_association_( G_full, gene, grouped_annotations, - dataset, + Y, weight_cols, null_model_score, config["test_config"], var_type, test_type, maf_col, + min_mac, ) if persist_burdens: GW_list[gene] = GW @@ -421,7 +468,7 @@ def update_config( simulated_phenotype_file: str, variant_type: Optional[str], rare_maf: Optional[float], - maf_column: Optional[str], + maf_column: str, new_config_file: str, ): with open(old_config_file) as f: @@ -431,6 +478,7 @@ def update_config( config["data"]["dataset_config"][ "sim_phenotype_file" ] = simulated_phenotype_file + logger.info(f"Reading MAF column from column {maf_column}") if phenotype is not None: config["data"]["dataset_config"]["y_phenotypes"] = [phenotype] @@ -645,9 +693,10 @@ def run_association( exploded_annotations = ( dataset.annotation_df.query("id in @all_variants") .explode("gene_ids") + .reset_index() .drop_duplicates() - ) # row can be duplicated if a variant is assigned to a gene multiple times - + .set_index("id") + ) grouped_annotations = exploded_annotations.groupby("gene_ids") gene_ids = pd.read_parquet(dataset.gene_file, columns=["id"])["id"].to_list() gene_ids = list( diff --git a/pipelines/seed_gene_discovery.snakefile b/pipelines/seed_gene_discovery.snakefile index 1003867a..7a93ac26 100644 --- a/pipelines/seed_gene_discovery.snakefile +++ b/pipelines/seed_gene_discovery.snakefile @@ -11,7 +11,9 @@ vtypes = config.get("variant_types", ["plof"]) ttypes = config.get("test_types", ["burden"]) rare_maf = config.get("rare_maf", 0.001) -n_chunks = config.get("n_chunks", 30) if not debug_flag else 2 + +n_chunks_missense = 15 +n_chunks_plof = 4 debug = "--debug " if debug_flag else "" persist_burdens = "--persist-burdens" if config.get("persist_burdens", False) else "" @@ -65,14 +67,14 @@ rule all_regression: ), -rule combine_regression_chunks: +rule combine_regression_chunks_plof: input: train=expand( - "{{phenotype}}/{{vtype}}/{{ttype}}/results/burden_associations_chunk{chunk}.parquet", - chunk=range(n_chunks), + "{{phenotype}}/plof/{{ttype}}/results/burden_associations_chunk{chunk}.parquet", + chunk=range(n_chunks_plof), ), output: - train="{phenotype}/{vtype}/{ttype}/results/burden_associations.parquet", + train="{phenotype}/plof/{ttype}/results/burden_associations.parquet", threads: 1 resources: mem_mb=2048, @@ -85,31 +87,96 @@ rule combine_regression_chunks: ] ) +rule combine_regression_chunks_missense: + input: + train=expand( + "{{phenotype}}/missense/{{ttype}}/results/burden_associations_chunk{chunk}.parquet", + chunk=range(n_chunks_missense), + ), + output: + train="{phenotype}/missense/{ttype}/results/burden_associations.parquet", + threads: 1 + resources: + mem_mb=2048, + load=2000, + shell: + " && ".join( + [ + conda_check, + "seed_gene_pipeline combine-results " "{input.train} " "{output.train}", + ] + ) -rule all_regression_results: + +rule all_regression_results_plof: input: expand( - "{phenotype}/{vtype}/{ttype}/results/burden_associations_chunk{chunk}.parquet", + "{phenotype}/plof/{ttype}/results/burden_associations_chunk{chunk}.parquet", phenotype=phenotypes, vtype=vtypes, ttype=ttypes, - chunk=range(n_chunks), + chunk=range(n_chunks_plof), ), +rule all_regression_results_missense: + input: + expand( + "{phenotype}/missense/{ttype}/results/burden_associations_chunk{chunk}.parquet", + phenotype=phenotypes, + vtype=vtypes, + ttype=ttypes, + chunk=range(n_chunks_missense), + ), + +rule regress_plof: + input: + data="{phenotype}/plof/association_dataset_full.pkl", + dataset="{phenotype}/plof/association_dataset_pickled.pkl", + config="{phenotype}/plof/config.yaml", + output: + out_path=temp( + "{phenotype}/plof/{ttype}/results/burden_associations_chunk{chunk}.parquet" + ), + threads: 1 + priority: 30 + resources: + mem_mb = lambda wildcards, attempt: 20000 + 2000 * attempt, + load=8000, + # gpus = 1 + shell: + " && ".join( + [ + conda_check, + ( + "seed_gene_pipeline run-association " + + debug + + " --n-chunks " + + str(n_chunks_plof) + + " " + "--chunk {wildcards.chunk} " + "--dataset-file {input.dataset} " + "--data-file {input.data} " + persist_burdens + " " + " {input.config} " + "plof " + "{wildcards.ttype} " + "{output.out_path}" + ), + ] + ) -rule regress: +rule regress_missense: input: - data="{phenotype}/{vtype}/association_dataset_full.pkl", - dataset="{phenotype}/{vtype}/association_dataset_pickled.pkl", - config="{phenotype}/{vtype}/config.yaml", + data="{phenotype}/missense/association_dataset_full.pkl", + dataset="{phenotype}/missense/association_dataset_pickled.pkl", + config="{phenotype}/missense/config.yaml", output: out_path=temp( - "{phenotype}/{vtype}/{ttype}/results/burden_associations_chunk{chunk}.parquet" + "{phenotype}/missense/{ttype}/results/burden_associations_chunk{chunk}.parquet" ), - threads: 10 + threads: 1 priority: 30 resources: - mem_mb=24000, + mem_mb = lambda wildcards, attempt: 30000 + 6000 * attempt, load=8000, # gpus = 1 shell: @@ -120,13 +187,13 @@ rule regress: "seed_gene_pipeline run-association " + debug + " --n-chunks " - + str(n_chunks) + + str(n_chunks_missense) + " " "--chunk {wildcards.chunk} " "--dataset-file {input.dataset} " "--data-file {input.data} " + persist_burdens + " " " {input.config} " - "{wildcards.vtype} " + "missense " "{wildcards.ttype} " "{output.out_path}" ), @@ -194,6 +261,7 @@ rule config: "seed_gene_pipeline update-config " + "--phenotype {wildcards.phenotype} " + "--variant-type {wildcards.vtype} " + + "--maf-column MAF " + "--rare-maf " + "{params.rare_maf}" + " {input.config} " @@ -201,3 +269,5 @@ rule config: ), ] ) + +