def load_collection(cls, genotype_data_study): """ Loads a denovo gene set collection (from the filesystem) for a given study. """ config = genotype_data_study.config assert config is not None, genotype_data_study.id collection = DenovoGeneSetCollection( genotype_data_study.study_id, genotype_data_study.name, config, { collection_id: collection_config for collection_id, collection_config in genotype_data_study. person_set_collection_configs.items() if collection_id in config.denovo_gene_sets.selected_person_set_collections }) for (person_set_collection_id ) in config.denovo_gene_sets.selected_person_set_collections: cache_dir = cls.denovo_gene_set_cache_file( config, person_set_collection_id) if not os.path.exists(cache_dir): raise EnvironmentError("Denovo gene sets caches dir '{}' " "does not exists".format(cache_dir)) with open(cache_dir, "r") as f: contents = json.load(f) # change all list to sets after loading from json contents = cls._convert_cache_innermost_types(contents, list, set) collection.cache[person_set_collection_id] = contents return collection
def get_all_gene_sets(self, denovo_gene_set_spec, permitted_datasets=None): denovo_gene_set_spec = self._filter_spec(denovo_gene_set_spec, permitted_datasets) return DenovoGeneSetCollection.get_all_gene_sets( list(self._denovo_gene_set_collections.values()), denovo_gene_set_spec, )
def test_f1_autism_get_gene_sets(denovo_gene_sets): gene_sets = DenovoGeneSetCollection.get_all_gene_sets( denovo_gene_sets, denovo_gene_set_spec={"f1_group": {"phenotype": ["autism"]}}, ) assert gene_sets assert name_in_gene_sets(gene_sets, "Synonymous", 1)
def test_unaffected_trio_get_gene_sets(denovo_gene_set_f4): gene_sets = DenovoGeneSetCollection.get_all_gene_sets( [denovo_gene_set_f4], denovo_gene_set_spec={"f4_trio": {"phenotype": ["unaffected"]}}, ) assert gene_sets assert name_in_gene_sets(gene_sets, "Synonymous", 1)
def test_missense_recurrency_get_gene_sets(denovo_gene_sets): gene_sets = DenovoGeneSetCollection.get_all_gene_sets( denovo_gene_sets, denovo_gene_set_spec={"f2_group": {"phenotype": ["unaffected"]}}, ) assert gene_sets assert name_in_gene_sets(gene_sets, "Missense.Recurrent", 2) assert not name_in_gene_sets(gene_sets, "Missense.Triple")
def test_synonymous_recurrency_get_gene_sets(denovo_gene_sets): gene_sets = DenovoGeneSetCollection.get_all_gene_sets( denovo_gene_sets, denovo_gene_set_spec={"f2_group": {"phenotype": ["autism"]}}, ) assert gene_sets assert name_in_gene_sets(gene_sets, "Synonymous", 1) assert not name_in_gene_sets(gene_sets, "Synonymous.Triple")
def test_f1_single_get_gene_sets(denovo_gene_sets): gene_sets = DenovoGeneSetCollection.get_all_gene_sets( denovo_gene_sets, denovo_gene_set_spec={"f1_group": {"phenotype": ["unaffected"]}}, ) assert gene_sets assert name_in_gene_sets(gene_sets, "Missense.Single", 2) assert name_in_gene_sets(gene_sets, "Missense.Male", 2)
def test_autism_trio_get_gene_sets(denovo_gene_set_f4): gene_sets = DenovoGeneSetCollection.get_all_gene_sets( [denovo_gene_set_f4], denovo_gene_set_spec={"f4_trio": {"phenotype": ["autism"]}}, ) assert gene_sets assert name_in_gene_sets(gene_sets, "Synonymous", 1) assert name_in_gene_sets(gene_sets, "Missense", 1) assert name_in_gene_sets(gene_sets, "Missense.Recurrent", 1) assert name_in_gene_sets(gene_sets, "Missense.Female", 1)
def test_missense_triple_get_gene_sets_affected_and_unaffected( denovo_gene_sets, ): gene_sets = DenovoGeneSetCollection.get_all_gene_sets( denovo_gene_sets, denovo_gene_set_spec={ "f3_group": {"phenotype": ["autism", "unaffected"]} }, ) assert gene_sets assert name_in_gene_sets(gene_sets, "Missense.Recurrent", 2) assert name_in_gene_sets(gene_sets, "Missense.Triple", 2)