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
Ejemplo n.º 2
0
    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)