{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2023-04-25T11:11:57.302441Z","iopub.execute_input":"2023-04-25T11:11:57.303724Z","iopub.status.idle":"2023-04-25T11:11:57.325144Z","shell.execute_reply.started":"2023-04-25T11:11:57.303676Z","shell.execute_reply":"2023-04-25T11:11:57.323679Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_ids = np.load('/kaggle/input/t5embeds/test_ids.npy')","metadata":{"execution":{"iopub.status.busy":"2023-04-25T11:11:57.858537Z","iopub.execute_input":"2023-04-25T11:11:57.859964Z","iopub.status.idle":"2023-04-25T11:11:57.946657Z","shell.execute_reply.started":"2023-04-25T11:11:57.859905Z","shell.execute_reply":"2023-04-25T11:11:57.945282Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import requests\nimport time\nimport tqdm\n\nstrs = []\n\nfor ids in tqdm.tqdm(test_ids[:1000]):\n    r = requests.get(f'https://www.ebi.ac.uk/QuickGO/services/annotation/downloadSearch?includeFields=name,goName,taxonName&selectedFields=geneProductId,symbol,qualifier,goId,goName,evidenceCode,goEvidence,reference,withFrom,taxonId,assignedBy,extensions,goaspect&downloadLimit=1000&geneProductId={ids}', \n                     headers = {'Accept': 'text/tsv'})\n    if r.status_code == 200:\n        if (len(strs) > 0):\n            strs.append('\\n'.join(r.content.decode('Utf-8').split('\\n')[1:]))\n        else:\n            strs.append(r.content.decode('Utf-8'))\n    if len(strs) % 10 == 0:\n        time.sleep(1)","metadata":{"execution":{"iopub.status.busy":"2023-04-25T11:27:47.243464Z","iopub.execute_input":"2023-04-25T11:27:47.244391Z","iopub.status.idle":"2023-04-25T11:28:03.379784Z","shell.execute_reply.started":"2023-04-25T11:27:47.244348Z","shell.execute_reply":"2023-04-25T11:28:03.378608Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"with open('out.tsv', 'wt') as f:\n    f.write(''.join(strs))","metadata":{"execution":{"iopub.status.busy":"2023-04-25T11:28:11.0032Z","iopub.execute_input":"2023-04-25T11:28:11.003628Z","iopub.status.idle":"2023-04-25T11:28:11.010374Z","shell.execute_reply.started":"2023-04-25T11:28:11.003572Z","shell.execute_reply":"2023-04-25T11:28:11.00896Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"q = pd.read_csv('out.tsv', sep='\\t')\nq","metadata":{"execution":{"iopub.status.busy":"2023-04-25T11:28:12.422564Z","iopub.execute_input":"2023-04-25T11:28:12.42296Z","iopub.status.idle":"2023-04-25T11:28:12.454578Z","shell.execute_reply.started":"2023-04-25T11:28:12.422924Z","shell.execute_reply":"2023-04-25T11:28:12.453111Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"quickgo_terms = set(q['GO TERM'].unique())\nour_terms = set(pd.read_csv('/kaggle/input/cafa-5-protein-function-prediction/IA.txt', \n                            header=None, sep='\\t')[0].unique())\nquickgo_terms - our_terms","metadata":{"execution":{"iopub.status.busy":"2023-04-25T11:28:15.514636Z","iopub.execute_input":"2023-04-25T11:28:15.515032Z","iopub.status.idle":"2023-04-25T11:28:15.563599Z","shell.execute_reply.started":"2023-04-25T11:28:15.514996Z","shell.execute_reply":"2023-04-25T11:28:15.562421Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}