def test_json_load():
    t = ObographJsonTransformer()
    t.parse(os.path.join(resource_dir, 'goslim_generic.json'))
    assert t.graph.number_of_nodes() == 176
    assert t.graph.number_of_edges() == 206

    n1 = t.graph.nodes(data=True)['GO:0003677']
    assert n1['id'] == 'GO:0003677'
    assert n1['name'] == 'DNA binding'
    assert n1[
        'description'] == 'Any molecular function by which a gene product interacts selectively and non-covalently with DNA (deoxyribonucleic acid).'
    assert n1['category'] == ['biolink:MolecularActivity']
    assert 'structure-specific DNA binding' in n1['synonym']
    assert 'structure specific DNA binding' in n1['synonym']
    assert 'microtubule/chromatin interaction' in n1['synonym']
    assert 'plasmid binding' in n1['synonym']

    n2 = t.graph.nodes(data=True)['GO:0005575']
    assert n2['id'] == 'GO:0005575'
    assert n2['name'] == 'cellular_component'
    assert n2[
        'description'] == 'A location, relative to cellular compartments and structures, occupied by a macromolecular machine when it carries out a molecular function. There are two ways in which the gene ontology describes locations of gene products: (1) relative to cellular structures (e.g., cytoplasmic side of plasma membrane) or compartments (e.g., mitochondrion), and (2) the stable macromolecular complexes of which they are parts (e.g., the ribosome).'
    assert n2['category'] == ['biolink:CellularComponent']
    assert n2['xrefs'] == ['NIF_Subcellular:sao1337158144']
    assert 'goslim_chembl' in n2['subsets']
    assert 'goslim_generic' in n2['subsets']
Example #2
0
 def parse(self, name: str, data_file: str, source: str) -> None:
     """Processes the data_file.
     Args:
         name: Name of the ontology
         data_file: data file to parse
         source: Source name
     Returns:
          None.
     """
     print(f"Parsing {data_file}")
     transformer = ObographJsonTransformer()
     transformer.parse(data_file, provided_by=source)
     output_transformer = PandasTransformer(transformer.graph)
     output_transformer.save(filename=os.path.join(self.output_dir, f'{name}'), output_format='tsv', mode=None)
Example #3
0
    def parse(self, name: str, data_file: str) -> None:
        """Processes the data_file.

        Args:
            name: Name of the ontology
            data_file: data file to parse

        Returns:
             None.

        """
        logging.info(f"Parsing {data_file}")
        transformer = ObographJsonTransformer()
        transformer.parse(data_file)
        output_transformer = PandasTransformer(transformer.graph)
        output_transformer.save(filename=os.path.join(self.output_dir,
                                                      f'{name}'),
                                extension='tsv',
                                mode=None)
Example #4
0
    def parse(self, name: str, data_file: str, source: str) -> None:
        """Processes the data_file.
        
        :param name: Name of the ontology
        :param data_file: data file to parse
        :param source: Source name
        :return: None.
        """

        print(f"Parsing {data_file}")
        transformer = ObographJsonTransformer()
        compression: Optional[str]
        if data_file.endswith('.gz'):
            compression = 'gz'
        else:
            compression = None
        transformer.parse(data_file,
                          compression=compression,
                          provided_by=source)
        output_transformer = PandasTransformer(transformer.graph)
        output_transformer.save(filename=os.path.join(self.output_dir,
                                                      f'{name}'),
                                output_format='tsv',
                                mode=None)