def test_header_newline(): gpi_obj = { 'id': "MGI:MGI:1918911", 'label': "0610005C13Rik", # db_object_symbol, 'full_name': "RIKEN cDNA 0610005C13 gene", # db_object_name, 'synonyms': [], 'type': ["gene"], # db_object_type, 'parents': "", # GAF does not have this field, but it's optional in GPI 'xrefs': "", # GAF does not have this field, but it's optional in GPI 'taxon': { 'id': "NCBITaxon:10090" } } entity = gafgpibridge.Entity(gpi_obj) out = io.StringIO() gpiwriter = entitywriter.GpiWriter(file=out) gpiwriter.write_entity(entity) outlines = out.getvalue().split("\n") expected_lines = [ "!gpi-version: 1.2", "MGI\tMGI:1918911\t0610005C13Rik\tRIKEN cDNA 0610005C13 gene\t\tgene\ttaxon:10090\t\t\t", "" ] assert expected_lines == outlines
def produce_gpi(dataset, target_dir, gaf_path, ontology_graph): gafparser = GafParser() gafparser.config = assocparser.AssocParserConfig(ontology=ontology_graph) with open(gaf_path) as sg: lines = sum(1 for line in sg) gpi_path = os.path.join( os.path.split(gaf_path)[0], "{}.gpi".format(dataset)) with open(gaf_path) as gf, open(gpi_path, "w") as gpi: click.echo("Using {} as the gaf to build gpi with".format(gaf_path)) bridge = gafgpibridge.GafGpiBridge() gpiwriter = entitywriter.GpiWriter(file=gpi) gpi_cache = set() with click.progressbar( iterable=gafparser.association_generator(file=gf), length=lines) as associations: for association in associations: entity = bridge.convert_association(association) if entity not in gpi_cache and entity is not None: # If the entity is not in the cache, add it and write it out gpi_cache.add(entity) gpiwriter.write_entity(entity) return gpi_path