Access error - requests.exceptions.ConnectionError

I am getting an error below when I try to access the metabolite ID conversion table from a Python module (sspa):

Traceback (most recent call last):
File “/usr/local/lib/python3.9/site-packages/urllib3/connection.py”, line 174, in _new_conn
conn = connection.create_connection(
File “/usr/local/lib/python3.9/site-packages/urllib3/util/connection.py”, line 95, in create_connection
raise err
File “/usr/local/lib/python3.9/site-packages/urllib3/util/connection.py”, line 85, in create_connection
sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py”, line 703, in urlopen
httplib_response = self._make_request(
File “/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py”, line 398, in _make_request
conn.request(method, url, **httplib_request_kw)
File “/usr/local/lib/python3.9/site-packages/urllib3/connection.py”, line 239, in request
super(HTTPConnection, self).request(method, url, body=body, headers=headers)
File “/usr/local/lib/python3.9/http/client.py”, line 1285, in request
self._send_request(method, url, body, headers, encode_chunked)
File “/usr/local/lib/python3.9/http/client.py”, line 1331, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File “/usr/local/lib/python3.9/http/client.py”, line 1280, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File “/usr/local/lib/python3.9/http/client.py”, line 1040, in _send_output
self.send(msg)
File “/usr/local/lib/python3.9/http/client.py”, line 980, in send
self.connect()
File “/usr/local/lib/python3.9/site-packages/urllib3/connection.py”, line 205, in connect
conn = self._new_conn()
File “/usr/local/lib/python3.9/site-packages/urllib3/connection.py”, line 186, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x2aab07893c40>: Failed to establish a new connection: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/local/lib/python3.9/site-packages/requests/adapters.py”, line 489, in send
resp = conn.urlopen(
File “/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py”, line 787, in urlopen
retries = retries.increment(
File “/usr/local/lib/python3.9/site-packages/urllib3/util/retry.py”, line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host=‘api.xialab.ca’, port=80): Max retries exceeded with url: /mapcompounds (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x2aab07893c40>: Failed to establish a new connection: [Errno 110] Connection timed out’))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “”, line 1, in
File “/usr/local/lib/python3.9/site-packages/sspa/identifier_conversion.py”, line 25, in identifier_conversion
response = requests.request(“POST”, url, json=input_cpds, headers=headers)
File “/usr/local/lib/python3.9/site-packages/requests/api.py”, line 59, in request
return session.request(method=method, url=url, **kwargs)
File “/usr/local/lib/python3.9/site-packages/requests/sessions.py”, line 587, in request
resp = self.send(prep, **send_kwargs)
File “/usr/local/lib/python3.9/site-packages/requests/sessions.py”, line 701, in send
r = adapter.send(request, **kwargs)
File “/usr/local/lib/python3.9/site-packages/requests/adapters.py”, line 565, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host=‘api.xialab.ca’, port=80): Max retries exceeded with url: /mapcompounds (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x2aab07893c40>: Failed to establish a new connection: [Errno 110] Connection timed out’))

Since I am running this module from within our university HPC, it is likely that our IP is filtered. Is it possible to fix this? Our IP is 193.168.1.1.

Our ID conversion server is currently hosted on our university HPC (not under our admin). We are considering to migrate the API server to a cloud instance in near future. For now, you can install our MetaboAnalystR package to avoid the API call. It will download a local copy of the library upon first call.

Thank you for your reply. I installed MetaboAnalystR, however, I have not been able to locate the library copy. I am assuming that this function MetaboAnalystR/doCompoundMapping.Rd at master · xia-lab/MetaboAnalystR · GitHub does the job and within this function, there is:

cmpd.map ← .get.my.lib(“compound_db.qs”)

but I have not been able to locate this file nor execute this line alone. Could you please tell me how to access the local copy of the compound mapping library? Thank you.

  1. The library is not in the package. It will be downloaded when you call it first time.
  2. If you are looking for general compound mapping, the library should be “master_compound_db.qs” which is more comprehensive than the “compound_db.qs” (this is mainly for pathway enrichment analysis)
  3. If you want to download it directly, the actual path is encoded in the R function you identified. You need to view the source code