Skip to content

Commit

Permalink
ENH: add annotations-to-metadata transformer (#318)
Browse files Browse the repository at this point in the history
  • Loading branch information
misialq authored Apr 4, 2024
1 parent 823b5a4 commit d24a69d
Show file tree
Hide file tree
Showing 8 changed files with 239 additions and 12 deletions.
27 changes: 20 additions & 7 deletions q2_types/feature_data_mag/_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,14 @@ def feature_dict(self, relative=False):
if not pattern.match(path.name):
continue

id = path.stem
_id = path.stem
absolute_path = path.absolute()
if relative:
ids[id] = str(
ids[_id] = str(
absolute_path.relative_to(self.path.absolute())
)
else:
ids[id] = str(absolute_path)
ids[_id] = str(absolute_path)

return dict(sorted(ids.items()))

Expand All @@ -65,14 +65,27 @@ def feature_dict(self, relative=False):


class OrthologAnnotationDirFmt(model.DirectoryFormat):
annotations = model.FileCollection(
r'.+\.annotations',
format=OrthologFileFmt
)
pathspec = r'.+\.annotations'
annotations = model.FileCollection(pathspec, format=OrthologFileFmt)

@annotations.set_path_maker
def annotations_path_maker(self, file_name):
return file_name.split(sep="_")[0]

def annotation_dict(self, relative=False) -> dict:
ids = {}
for path in self.path.iterdir():
if re.compile(self.pathspec).match(path.name):
_id = re.sub('.emapper$', '', path.stem)
absolute_path = path.absolute()
if relative:
ids[_id] = str(
absolute_path.relative_to(self.path.absolute())
)
else:
ids[_id] = str(absolute_path)

return dict(sorted(ids.items()))


plugin.register_formats(OrthologAnnotationDirFmt)
88 changes: 87 additions & 1 deletion q2_types/feature_data_mag/_transformer.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,22 @@
#
# The full license is in the file LICENSE, distributed with this software.
# ----------------------------------------------------------------------------
from io import StringIO

import uuid

import collections.abc
import glob
import os.path

import qiime2
from itertools import repeat

import pandas as pd
import skbio
from q2_types.feature_data._transformer import _fastaformats_to_series

from . import MAGSequencesDirFmt
from . import MAGSequencesDirFmt, OrthologAnnotationDirFmt
from ..plugin_setup import plugin

CONSTRUCTORS = {
Expand Down Expand Up @@ -89,3 +94,84 @@ def _5(data: MAGIterator) -> MAGSequencesDirFmt:
with open(fp, 'a') as fin:
skbio.io.write(seq, format='fasta', into=fin)
return result


def _is_valid_uuid4(uuid_string: str):
"""
Check if a given string is a valid UUID version 4.
This function checks if the provided string is a valid UUID version 4.
The only purpose of doing that here is to identify whether provided
string was a MAG ID (UUID4) or a sample ID. For that reason, we don't
print any statements or raise any exceptions.
Parameters:
uuid_string (str): The string to check for UUID version 4 validity.
Returns:
bool: True if the string is a valid UUID version 4, False otherwise.
"""
try:
uuid_obj = uuid.UUID(uuid_string, version=4)
except ValueError:
return False

return str(uuid_obj) == uuid_string


def _reshuffle_columns(df: pd.DataFrame):
if 'MAG' in df.columns:
col = 'MAG'
elif 'Sample' in df.columns:
col = 'Sample'
else:
return df

cols = df.columns.tolist()
cols.remove(col)
cols.insert(0, col)
df = df[cols]
return df


def _annotations_to_dataframe(
data: OrthologAnnotationDirFmt
) -> pd.DataFrame:
annotations = data.annotation_dict()
dfs = []
for _id, path in annotations.items():
# we need to ignore the ## comments at
# the beginning and end of the file
with open(path, 'r') as f:
lines = [line for line in f if not line.startswith('##')]

df = pd.read_csv(StringIO('\n'.join(lines)), sep='\t', index_col=0)
if _is_valid_uuid4(_id):
df['MAG'] = _id
else:
df['Sample'] = _id

dfs.append(df)

df = pd.concat(dfs)

# to satisfy QIIME2's particular requirements
df.reset_index(drop=False, inplace=True)
df.index = df.index.astype(str)
df.index.rename('id', inplace=True)

# reshuffle columns for nicer display
df = _reshuffle_columns(df)

return df


@plugin.register_transformer
def _7(data: OrthologAnnotationDirFmt) -> pd.DataFrame:
return _annotations_to_dataframe(data)


@plugin.register_transformer
def _8(data: OrthologAnnotationDirFmt) -> qiime2.Metadata:
annotations = _annotations_to_dataframe(data)
return qiime2.Metadata(annotations)
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
## Tue Apr 2 21:44:33 2024
## emapper-2.1.12-31d78ce
## /home/someone/miniconda3/envs/q2-shotgun/bin/emapper.py -m no_search --annotate_hits_table /scratch/someone/tmp/qiime2/someone/data/1678d775-94b8-4b87-8c40-937d80e23e65/data/3af39f47-e90a-46f2-9b5f-b236ae6551f0.emapper.seed_orthologs --data_dir /scratch/someone/tmp/qiime2/someone/data/499c1a8d-66be-4e80-816b-d142608fa9a6/data -o 3af39f47-e90a-46f2-9b5f-b236ae6551f0 --output_dir /scratch/someone/tmp/q2-OrthologAnnotationDirFmt-lzc_e07g --cpu 11
##
#query seed_ortholog evalue score eggNOG_OGs max_annot_lvl COG_category Description Preferred_name GOs EC KEGG_ko KEGG_Pathway KEGG_Module KEGG_Reaction KEGG_rclass BRITE KEGG_TC CAZy BiGG_Reaction PFAMs
k141_710_0 83332.Rv1754c 4.94e-270 827.0 COG4409@1|root,COG4409@2|Bacteria,2GKYI@201174|Actinobacteria,233HH@1762|Mycobacteriaceae 201174|Actinobacteria G Domain of unknown function (DUF4185) - - - - - - - - - - - - DUF4185
k141_710_1 216594.MMAR_4577 3.36e-233 727.0 COG0515@1|root,COG3391@1|root,COG0515@2|Bacteria,COG3391@2|Bacteria,2GNXG@201174|Actinobacteria,23296@1762|Mycobacteriaceae 201174|Actinobacteria KLT serine threonine protein kinase pknD GO:0003674,GO:0003824,GO:0004672,GO:0004674,GO:0005488,GO:0005575,GO:0005576,GO:0005618,GO:0005622,GO:0005623,GO:0005737,GO:0005829,GO:0005886,GO:0005887,GO:0006464,GO:0006468,GO:0006793,GO:0006796,GO:0006807,GO:0006950,GO:0007154,GO:0008150,GO:0008152,GO:0009267,GO:0009405,GO:0009605,GO:0009889,GO:0009890,GO:0009892,GO:0009987,GO:0009991,GO:0010565,GO:0016020,GO:0016021,GO:0016036,GO:0016301,GO:0016310,GO:0016740,GO:0016772,GO:0016773,GO:0019216,GO:0019217,GO:0019222,GO:0019538,GO:0030145,GO:0030312,GO:0031224,GO:0031226,GO:0031323,GO:0031324,GO:0031326,GO:0031327,GO:0031667,GO:0031668,GO:0031669,GO:0032091,GO:0033554,GO:0036211,GO:0042304,GO:0042594,GO:0043085,GO:0043086,GO:0043167,GO:0043169,GO:0043170,GO:0043393,GO:0043412,GO:0044092,GO:0044093,GO:0044237,GO:0044238,GO:0044260,GO:0044267,GO:0044419,GO:0044424,GO:0044425,GO:0044444,GO:0044459,GO:0044464,GO:0045717,GO:0045833,GO:0045922,GO:0046872,GO:0046890,GO:0046914,GO:0048519,GO:0048523,GO:0050789,GO:0050790,GO:0050794,GO:0050896,GO:0051055,GO:0051098,GO:0051100,GO:0051704,GO:0051716,GO:0062012,GO:0062014,GO:0065007,GO:0065009,GO:0071496,GO:0071704,GO:0071944,GO:0080090,GO:0140096,GO:1901564 2.7.11.1 ko:K08884,ko:K12132 - - - - ko00000,ko01000,ko01001 - - - NHL,Pkinase,PknH_C
k141_710_2 525368.HMPREF0591_4743 9.84e-212 650.0 COG3804@1|root,COG3804@2|Bacteria,2GKE3@201174|Actinobacteria,232FQ@1762|Mycobacteriaceae 201174|Actinobacteria S dihydrodipicolinate reductase - - 1.4.1.12,1.4.1.26 ko:K21672 ko00310,ko00330,ko00472,map00310,map00330,map00472 - R02825,R04200,R04201,R04687,R04688 RC00249,RC00790 ko00000,ko00001,ko01000 - - - DapB_N
k141_710_3 557599.MKAN_09155 1.65e-200 619.0 COG0226@1|root,COG0226@2|Bacteria,2GJXD@201174|Actinobacteria,233MY@1762|Mycobacteriaceae 201174|Actinobacteria P Part of the ABC transporter complex PstSACB involved in phosphate import pstS GO:0002682,GO:0002683,GO:0005575,GO:0005576,GO:0005618,GO:0005623,GO:0005886,GO:0006950,GO:0007154,GO:0008150,GO:0009267,GO:0009605,GO:0009607,GO:0009987,GO:0009991,GO:0016020,GO:0016036,GO:0030312,GO:0031347,GO:0031348,GO:0031667,GO:0031668,GO:0031669,GO:0033554,GO:0035821,GO:0040007,GO:0042594,GO:0043207,GO:0044003,GO:0044110,GO:0044116,GO:0044117,GO:0044403,GO:0044413,GO:0044414,GO:0044419,GO:0044464,GO:0045088,GO:0045824,GO:0048519,GO:0048583,GO:0048585,GO:0050776,GO:0050777,GO:0050789,GO:0050896,GO:0051701,GO:0051704,GO:0051707,GO:0051716,GO:0051817,GO:0051832,GO:0051833,GO:0052031,GO:0052037,GO:0052167,GO:0052170,GO:0052173,GO:0052200,GO:0052255,GO:0052261,GO:0052306,GO:0052309,GO:0052552,GO:0052553,GO:0052561,GO:0052562,GO:0052564,GO:0052572,GO:0065007,GO:0071496,GO:0071944,GO:0075136,GO:0080134 - ko:K02040 ko02010,ko02020,ko05152,map02010,map02020,map05152 M00222 - - ko00000,ko00001,ko00002,ko02000 3.A.1.7 - - PBP_like_2
## 1572 queries scanned
## Total time (seconds): 0.3267531394958496
## Rate: 4810.97 q/s
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## Tue Apr 2 21:44:39 2024
## emapper-2.1.12-31d78ce
## /home/someone/miniconda3/envs/q2-shotgun/bin/emapper.py -m no_search --annotate_hits_table /scratch/someone/tmp/qiime2/someone/data/aa200c09-5719-4dca-a545-15e8b39d8937/data/b46723b9-9768-4db3-aed7-1b4978987aef.emapper.seed_orthologs --data_dir /scratch/someone/tmp/qiime2/someone/data/499c1a8d-66be-4e80-816b-d142608fa9a6/data -o b46723b9-9768-4db3-aed7-1b4978987aef --output_dir /scratch/someone/tmp/q2-OrthologAnnotationDirFmt-uwc_7tfv --cpu 11
##
#query seed_ortholog evalue score eggNOG_OGs max_annot_lvl COG_category Description Preferred_name GOs EC KEGG_ko KEGG_Pathway KEGG_Module KEGG_Reaction KEGG_rclass BRITE KEGG_TC CAZy BiGG_Reaction PFAMs
k141_6_0 216594.MMAR_3837 1.03e-31 126.0 2A1QU@1|root,30PZC@2|Bacteria,2I8J2@201174|Actinobacteria,233GM@1762|Mycobacteriaceae 201174|Actinobacteria M Catalyzes the hydrolysis of cutin, a polyester that forms the structure of plant cuticle - - 3.1.1.74 ko:K08095 - - - - ko00000,ko01000 - - - Cutinase
k141_14_0 272631.ML1658 1.03e-169 514.0 COG0266@1|root,COG0266@2|Bacteria,2GJNT@201174|Actinobacteria,23633@1762|Mycobacteriaceae 201174|Actinobacteria L Involved in base excision repair of DNA damaged by oxidation or by mutagenic agents. Acts as DNA glycosylase that recognizes and removes damaged bases. Has a preference for oxidized purines, such as 7,8-dihydro-8-oxoguanine (8-oxoG). Has AP (apurinic apyrimidinic) lyase activity and introduces nicks in the DNA strand. Cleaves the DNA backbone by beta-delta elimination to generate a single-strand break at the site of the removed base with both 3'- and 5'-phosphates fpg GO:0000702,GO:0003674,GO:0003676,GO:0003677,GO:0003690,GO:0003824,GO:0005488,GO:0005575,GO:0005623,GO:0005886,GO:0006139,GO:0006259,GO:0006281,GO:0006284,GO:0006725,GO:0006807,GO:0006950,GO:0006974,GO:0006979,GO:0008150,GO:0008152,GO:0008534,GO:0009987,GO:0016020,GO:0016787,GO:0016798,GO:0016799,GO:0019104,GO:0033554,GO:0034039,GO:0034641,GO:0043170,GO:0044237,GO:0044238,GO:0044260,GO:0044464,GO:0046483,GO:0050896,GO:0051716,GO:0071704,GO:0071944,GO:0090304,GO:0097159,GO:0140097,GO:1901360,GO:1901363 3.2.2.23,4.2.99.18 ko:K10563 ko03410,map03410 - - - ko00000,ko00001,ko01000,ko03400 - - - Fapy_DNA_glyco,H2TH,zf-FPG_IleRS
k141_14_1 272631.ML1659 5.03e-147 452.0 COG0571@1|root,COG0571@2|Bacteria,2GKER@201174|Actinobacteria,232ZI@1762|Mycobacteriaceae 201174|Actinobacteria J Digests double-stranded RNA. Involved in the processing of primary rRNA transcript to yield the immediate precursors to the large and small rRNAs (23S and 16S). Processes some mRNAs, and tRNAs when they are encoded in the rRNA operon. Processes pre- crRNA and tracrRNA of type II CRISPR loci if present in the organism rnc GO:0003674,GO:0003676,GO:0003723,GO:0003725,GO:0003824,GO:0004518,GO:0004519,GO:0004521,GO:0004525,GO:0004540,GO:0005488,GO:0006139,GO:0006396,GO:0006725,GO:0006807,GO:0008150,GO:0008152,GO:0009987,GO:0010467,GO:0016070,GO:0016787,GO:0016788,GO:0016891,GO:0016893,GO:0032296,GO:0034641,GO:0040007,GO:0043170,GO:0044237,GO:0044238,GO:0046483,GO:0071704,GO:0090304,GO:0090305,GO:0090501,GO:0090502,GO:0097159,GO:0140098,GO:1901360,GO:1901363 3.1.26.3 ko:K03685 ko03008,ko05205,map03008,map05205 - - - ko00000,ko00001,ko01000,ko03009,ko03019,ko03036 - - - Ribonucleas_3_3,dsrm
k141_14_2 272631.ML1660 1.01e-106 340.0 COG1399@1|root,COG1399@2|Bacteria,2GJTS@201174|Actinobacteria,232I7@1762|Mycobacteriaceae 201174|Actinobacteria S Uncharacterized ACR, COG1399 - GO:0008150,GO:0040007 - ko:K07040 - - - - ko00000 - - - DUF177
k141_14_3 557599.MKAN_24055 4.04e-34 134.0 COG3599@1|root,COG3599@2|Bacteria,2I2NA@201174|Actinobacteria,234IY@1762|Mycobacteriaceae 201174|Actinobacteria D Cell division initiation protein - GO:0008150,GO:0040007 - - - - - - - - - - -
k141_246_0 272631.ML1651 0.0 1826.0 COG2609@1|root,COG2609@2|Bacteria,2GJRE@201174|Actinobacteria,2353T@1762|Mycobacteriaceae 201174|Actinobacteria C Component of the pyruvate dehydrogenase (PDH) complex, that catalyzes the overall conversion of pyruvate to acetyl-CoA and CO(2) aceE GO:0000287,GO:0003674,GO:0003824,GO:0004738,GO:0004739,GO:0005488,GO:0005575,GO:0005576,GO:0005618,GO:0005622,GO:0005623,GO:0005737,GO:0005886,GO:0008150,GO:0008152,GO:0016020,GO:0016491,GO:0016624,GO:0016903,GO:0030312,GO:0032991,GO:0043167,GO:0043169,GO:0044424,GO:0044444,GO:0044464,GO:0045254,GO:0046872,GO:0055114,GO:0071944,GO:1902494,GO:1990204 1.2.4.1 ko:K00163 ko00010,ko00020,ko00620,ko01100,ko01110,ko01120,ko01130,ko01200,map00010,map00020,map00620,map01100,map01110,map01120,map01130,map01200 M00307 R00014,R00209,R01699,R03270 RC00004,RC00027,RC00627,RC02742,RC02744,RC02882 br01601,ko00000,ko00001,ko00002,ko01000 - - - Transketolase_N
k141_246_1 272631.ML1630 0.0 1781.0 COG1391@1|root,COG1391@2|Bacteria,2GJ91@201174|Actinobacteria,233Q9@1762|Mycobacteriaceae 201174|Actinobacteria H Involved in the regulation of glutamine synthetase GlnA, a key enzyme in the process to assimilate ammonia. When cellular nitrogen levels are high, the C-terminal adenylyl transferase (AT) inactivates GlnA by covalent transfer of an adenylyl group from ATP to specific tyrosine residue of GlnA, thus reducing its activity. Conversely, when nitrogen levels are low, the N-terminal adenylyl removase (AR) activates GlnA by removing the adenylyl group by phosphorolysis, increasing its activity. The regulatory region of GlnE binds the signal transduction protein PII (GlnB) which indicates the nitrogen status of the cell glnE GO:0000820,GO:0003674,GO:0003824,GO:0005575,GO:0005618,GO:0005622,GO:0005623,GO:0005737,GO:0005829,GO:0005886,GO:0006521,GO:0008150,GO:0008882,GO:0010565,GO:0016020,GO:0016740,GO:0016772,GO:0016779,GO:0019222,GO:0030312,GO:0031323,GO:0033238,GO:0040007,GO:0042221,GO:0044424,GO:0044444,GO:0044464,GO:0050789,GO:0050794,GO:0050896,GO:0051171,GO:0060359,GO:0062012,GO:0065007,GO:0070566,GO:0071944,GO:0080090,GO:1901698 2.7.7.42,2.7.7.89 ko:K00982 - - - - ko00000,ko01000 - - - GlnD_UR_UTase,GlnE
## 1572 queries scanned
## Total time (seconds): 0.3267531394958496
## Rate: 4810.97 q/s
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
## Tue Apr 2 21:44:33 2024
## emapper-2.1.12-31d78ce
## /home/someone/miniconda3/envs/q2-shotgun/bin/emapper.py -m no_search --annotate_hits_table /scratch/someone/tmp/qiime2/someone/data/1678d775-94b8-4b87-8c40-937d80e23e65/data/3af39f47-e90a-46f2-9b5f-b236ae6551f0.emapper.seed_orthologs --data_dir /scratch/someone/tmp/qiime2/someone/data/499c1a8d-66be-4e80-816b-d142608fa9a6/data -o 3af39f47-e90a-46f2-9b5f-b236ae6551f0 --output_dir /scratch/someone/tmp/q2-OrthologAnnotationDirFmt-lzc_e07g --cpu 11
##
#query seed_ortholog evalue score eggNOG_OGs max_annot_lvl COG_category Description Preferred_name GOs EC KEGG_ko KEGG_Pathway KEGG_Module KEGG_Reaction KEGG_rclass BRITE KEGG_TC CAZy BiGG_Reaction PFAMs
k141_710_0 83332.Rv1754c 4.94e-270 827.0 COG4409@1|root,COG4409@2|Bacteria,2GKYI@201174|Actinobacteria,233HH@1762|Mycobacteriaceae 201174|Actinobacteria G Domain of unknown function (DUF4185) - - - - - - - - - - - - DUF4185
k141_710_1 216594.MMAR_4577 3.36e-233 727.0 COG0515@1|root,COG3391@1|root,COG0515@2|Bacteria,COG3391@2|Bacteria,2GNXG@201174|Actinobacteria,23296@1762|Mycobacteriaceae 201174|Actinobacteria KLT serine threonine protein kinase pknD GO:0003674,GO:0003824,GO:0004672,GO:0004674,GO:0005488,GO:0005575,GO:0005576,GO:0005618,GO:0005622,GO:0005623,GO:0005737,GO:0005829,GO:0005886,GO:0005887,GO:0006464,GO:0006468,GO:0006793,GO:0006796,GO:0006807,GO:0006950,GO:0007154,GO:0008150,GO:0008152,GO:0009267,GO:0009405,GO:0009605,GO:0009889,GO:0009890,GO:0009892,GO:0009987,GO:0009991,GO:0010565,GO:0016020,GO:0016021,GO:0016036,GO:0016301,GO:0016310,GO:0016740,GO:0016772,GO:0016773,GO:0019216,GO:0019217,GO:0019222,GO:0019538,GO:0030145,GO:0030312,GO:0031224,GO:0031226,GO:0031323,GO:0031324,GO:0031326,GO:0031327,GO:0031667,GO:0031668,GO:0031669,GO:0032091,GO:0033554,GO:0036211,GO:0042304,GO:0042594,GO:0043085,GO:0043086,GO:0043167,GO:0043169,GO:0043170,GO:0043393,GO:0043412,GO:0044092,GO:0044093,GO:0044237,GO:0044238,GO:0044260,GO:0044267,GO:0044419,GO:0044424,GO:0044425,GO:0044444,GO:0044459,GO:0044464,GO:0045717,GO:0045833,GO:0045922,GO:0046872,GO:0046890,GO:0046914,GO:0048519,GO:0048523,GO:0050789,GO:0050790,GO:0050794,GO:0050896,GO:0051055,GO:0051098,GO:0051100,GO:0051704,GO:0051716,GO:0062012,GO:0062014,GO:0065007,GO:0065009,GO:0071496,GO:0071704,GO:0071944,GO:0080090,GO:0140096,GO:1901564 2.7.11.1 ko:K08884,ko:K12132 - - - - ko00000,ko01000,ko01001 - - - NHL,Pkinase,PknH_C
k141_710_2 525368.HMPREF0591_4743 9.84e-212 650.0 COG3804@1|root,COG3804@2|Bacteria,2GKE3@201174|Actinobacteria,232FQ@1762|Mycobacteriaceae 201174|Actinobacteria S dihydrodipicolinate reductase - - 1.4.1.12,1.4.1.26 ko:K21672 ko00310,ko00330,ko00472,map00310,map00330,map00472 - R02825,R04200,R04201,R04687,R04688 RC00249,RC00790 ko00000,ko00001,ko01000 - - - DapB_N
k141_710_3 557599.MKAN_09155 1.65e-200 619.0 COG0226@1|root,COG0226@2|Bacteria,2GJXD@201174|Actinobacteria,233MY@1762|Mycobacteriaceae 201174|Actinobacteria P Part of the ABC transporter complex PstSACB involved in phosphate import pstS GO:0002682,GO:0002683,GO:0005575,GO:0005576,GO:0005618,GO:0005623,GO:0005886,GO:0006950,GO:0007154,GO:0008150,GO:0009267,GO:0009605,GO:0009607,GO:0009987,GO:0009991,GO:0016020,GO:0016036,GO:0030312,GO:0031347,GO:0031348,GO:0031667,GO:0031668,GO:0031669,GO:0033554,GO:0035821,GO:0040007,GO:0042594,GO:0043207,GO:0044003,GO:0044110,GO:0044116,GO:0044117,GO:0044403,GO:0044413,GO:0044414,GO:0044419,GO:0044464,GO:0045088,GO:0045824,GO:0048519,GO:0048583,GO:0048585,GO:0050776,GO:0050777,GO:0050789,GO:0050896,GO:0051701,GO:0051704,GO:0051707,GO:0051716,GO:0051817,GO:0051832,GO:0051833,GO:0052031,GO:0052037,GO:0052167,GO:0052170,GO:0052173,GO:0052200,GO:0052255,GO:0052261,GO:0052306,GO:0052309,GO:0052552,GO:0052553,GO:0052561,GO:0052562,GO:0052564,GO:0052572,GO:0065007,GO:0071496,GO:0071944,GO:0075136,GO:0080134 - ko:K02040 ko02010,ko02020,ko05152,map02010,map02020,map05152 M00222 - - ko00000,ko00001,ko00002,ko02000 3.A.1.7 - - PBP_like_2
## 1572 queries scanned
## Total time (seconds): 0.3267531394958496
## Rate: 4810.97 q/s
Loading

0 comments on commit d24a69d

Please sign in to comment.