Biomedical Engineering

Several research groups carry out research in the field of biomedical engineering. It involves the following activities summarized in more details below: Bioinformatics and computational biology, Biomedical data analysis, Biosensors, Medical Imaging, Modelling of biological and physiological systems.

Principal Investigators :

Pierre-Antoine Absil, Frédéric Crevecoeur, Pierre Dupont, Denis Flandre, Laurent Jacques, Philippe Lefèvre, Benoit Macq, Michel Verleysen

Research Labs :

Machine Learning Group, INMA (Mathematical Engineering research division), Image and Signal Processing Group (ISPGroup)

Research Areas :

ICTEAM is involved in Transcriptomics and High-Throughput Technologies. This research activity focuses on the identification of biomarkers from gene expression data, as measured by high-throughput technologies such as high-density DNA microarrays or next generation sequencing platforms. These biomarkers may be used for medical diagnosis, prognosis or prediction of the response to a treatment. Our research objectives also include the link between transcriptomic data and functional analysis from a system biology viewpoint. Several collaborations exist on those topics with the UCL Institute for Experimental and Clinical Research in the context of cancer research, allergy prediction among newborns and early diagnosis of arthritis.

Current projects also involve analysis and filtering of biomedical data and signals. It concerns a wide variety of applications based on the expert knowledge on data analysis and processing to the biomedical field:

  • analysis of biomedical signals (including ECG, EEG, etc.) for automatic pre-diagnosis
  • filtering of medical scan images for contour extraction

Several research projects aim at developing biosensors and biomedical applications of electronics:

  • application to monitoring of respiration (micro-systems)
  • low power systems for biomedical applications
  • security and cryptography for biomedical applications

ICTEAM pursues research on image processing tools and applications for the use in various medical contexts (radiotherapy, proton therapy, brachytherapy, surgery) and at different stages of treatment (planning, execution and follow-up). The research focuses on:

  • rigid and non-rigid image registrations methods for 2D-3D and 3D-3D images both for single and multiple modalities as well as for surfaces;
  • segmentation techniques either using prior knowledge (atlas-based) or allowing user interaction (graph cuts)
  • human-computer interactions to create intuitive user interfaces for the clinical world.

Another field of research is the solving of inverse problems from generalized sparsity prior (with applications in optics and X-ray CT), Compressed Sensing (theory and application), theoretical questions linked to the design of new sensors (for computer vision), applied mathematics for astronomical and biomedical signal processing questions, and representation of data on strange spaces (e.g., sphere, manifolds, or graphs). Besides, research is pursued on EEG reconstruction, transcranial magnetic stimulation, as well as on the use of functional imaging for measuring motion disorders.

The institute is also involved in shape analysis for protein docking. This includes 3D mesh processing and the analysis of protein surface properties.

ICTEAM also has research activities investigating the neural control movement. These activities are based on experimental, clinical and modelling approaches. Among the ongoing projects:

  • interaction between vision and the neural control of movement
  • experimental and modelling study of eye and head movements as well as eye-hand coordination
  • clinical studies: the influence of Duane Retraction Syndrome and Cerebral Palsy on vision and eye movements (St Luc Hospital and fondation JED).
  • dextrous manipulation in micro- and hyper-gravity (supported by Prodex and ESA)
  • the role of internal models: prediction and anticipation in smooth pursuit and saccade programming

Most recent publications

Below are listed the 10 most recent journal articles and conference papers produced in this research area. You also can access all publications by following this link : see all biomedical engineering publications

--> -->
 
 
<type 'exceptions.IOError'>
Python 2.7.9: /usr/bin/python
Mon May 20 13:13:37 2019

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /var/www/sites/tools/export/export.py in ()
    106     tmp = urllib.urlopen(q)
    107     
=>  108     resp = eval( urllib.urlopen(q).read() )
    109     if ( resp['response']['numFound'] > 0 ):
    110         #print '<h/>%s (%d)</h2>' % (pubType[t].encode("utf-8"), \
resp undefined, builtin eval = <built-in function eval>, urllib = <module 'urllib' from '/usr/lib/python2.7/urllib.pyc'>, urllib.urlopen = <function urlopen>, q = 'https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', ).read undefined
 /usr/lib/python2.7/urllib.py in urlopen(url='https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None, proxies=None, context=None)
     85         opener = _urlopener
     86     if data is None:
=>   87         return opener.open(url)
     88     else:
     89         return opener.open(url, data)
opener = <urllib.FancyURLopener instance>, opener.open = <bound method FancyURLopener.open of <urllib.FancyURLopener instance>>, url = 'https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in open(self=<urllib.FancyURLopener instance>, fullurl='https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None)
    211         try:
    212             if data is None:
=>  213                 return getattr(self, name)(url)
    214             else:
    215                 return getattr(self, name)(url, data)
builtin getattr = <built-in function getattr>, self = <urllib.FancyURLopener instance>, name = 'open_https', url = '//dial.uclouvain.be/solr6/repository/select?&sta...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in open_https(self=<urllib.FancyURLopener instance>, url='//dial.uclouvain.be/solr6/repository/select?&sta...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None)
    441             if realhost: h.putheader('Host', realhost)
    442             for args in self.addheaders: h.putheader(*args)
=>  443             h.endheaders(data)
    444             errcode, errmsg, headers = h.getreply()
    445             fp = h.getfile()
h = <httplib.HTTPS instance>, h.endheaders = <bound method HTTPSConnection.endheaders of <httplib.HTTPSConnection instance>>, data = None
 /usr/lib/python2.7/httplib.py in endheaders(self=<httplib.HTTPSConnection instance>, message_body=None)
   1033         else:
   1034             raise CannotSendHeader()
=> 1035         self._send_output(message_body)
   1036 
   1037     def request(self, method, url, body=None, headers={}):
self = <httplib.HTTPSConnection instance>, self._send_output = <bound method HTTPSConnection._send_output of <httplib.HTTPSConnection instance>>, message_body = None
 /usr/lib/python2.7/httplib.py in _send_output(self=<httplib.HTTPSConnection instance>, message_body=None)
    877             msg += message_body
    878             message_body = None
=>  879         self.send(msg)
    880         if message_body is not None:
    881             #message_body was not a string (i.e. it is a file) and
self = <httplib.HTTPSConnection instance>, self.send = <bound method HTTPSConnection.send of <httplib.HTTPSConnection instance>>, msg = 'GET /solr6/repository/select?&start=0&rows=99999....uclouvain.be\r\nUser-Agent: Python-urllib/1.17\r\n\r\n'
 /usr/lib/python2.7/httplib.py in send(self=<httplib.HTTPSConnection instance>, data='GET /solr6/repository/select?&start=0&rows=99999....uclouvain.be\r\nUser-Agent: Python-urllib/1.17\r\n\r\n')
    839         if self.sock is None:
    840             if self.auto_open:
=>  841                 self.connect()
    842             else:
    843                 raise NotConnected()
self = <httplib.HTTPSConnection instance>, self.connect = <bound method HTTPSConnection.connect of <httplib.HTTPSConnection instance>>
 /usr/lib/python2.7/httplib.py in connect(self=<httplib.HTTPSConnection instance>)
   1248 
   1249             self.sock = self._context.wrap_socket(self.sock,
=> 1250                                                   server_hostname=server_hostname)
   1251 
   1252     __all__.append("HTTPSConnection")
server_hostname = 'dial.uclouvain.be'
 /usr/lib/python2.7/ssl.py in wrap_socket(self=<ssl.SSLContext object>, sock=<socket._socketobject object>, server_side=False, do_handshake_on_connect=True, suppress_ragged_eofs=True, server_hostname='dial.uclouvain.be')
    348                          suppress_ragged_eofs=suppress_ragged_eofs,
    349                          server_hostname=server_hostname,
=>  350                          _context=self)
    351 
    352     def set_npn_protocols(self, npn_protocols):
_context undefined, self = <ssl.SSLContext object>
 /usr/lib/python2.7/ssl.py in __init__(self=<ssl.SSLSocket object>, sock=<socket._socketobject object>, keyfile=None, certfile=None, server_side=False, cert_reqs=0, ssl_version=2, ca_certs=None, do_handshake_on_connect=True, family=2, type=1, proto=0, fileno=None, suppress_ragged_eofs=True, npn_protocols=None, ciphers=None, server_hostname='dial.uclouvain.be', _context=<ssl.SSLContext object>)
    564                         # non-blocking
    565                         raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets")
=>  566                     self.do_handshake()
    567 
    568             except (OSError, ValueError):
self = <ssl.SSLSocket object>, self.do_handshake = <bound method SSLSocket.do_handshake of <ssl.SSLSocket object>>
 /usr/lib/python2.7/ssl.py in do_handshake(self=<ssl.SSLSocket object>, block=False)
    786             if timeout == 0.0 and block:
    787                 self.settimeout(None)
=>  788             self._sslobj.do_handshake()
    789         finally:
    790             self.settimeout(timeout)
self = <ssl.SSLSocket object>, self._sslobj = <_ssl._SSLSocket object>, self._sslobj.do_handshake = <built-in method do_handshake of _ssl._SSLSocket object>

<type 'exceptions.IOError'>: [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
      args = ('socket error', SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)'))
      errno = 'socket error'
      filename = None
      message = ''
      strerror = SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)')

--> -->
 
 
<type 'exceptions.IOError'>
Python 2.7.9: /usr/bin/python
Mon May 20 13:13:37 2019

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /var/www/sites/tools/export/export.py in ()
    106     tmp = urllib.urlopen(q)
    107     
=>  108     resp = eval( urllib.urlopen(q).read() )
    109     if ( resp['response']['numFound'] > 0 ):
    110         #print '<h/>%s (%d)</h2>' % (pubType[t].encode("utf-8"), \
resp undefined, builtin eval = <built-in function eval>, urllib = <module 'urllib' from '/usr/lib/python2.7/urllib.pyc'>, urllib.urlopen = <function urlopen>, q = 'https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', ).read undefined
 /usr/lib/python2.7/urllib.py in urlopen(url='https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None, proxies=None, context=None)
     85         opener = _urlopener
     86     if data is None:
=>   87         return opener.open(url)
     88     else:
     89         return opener.open(url, data)
opener = <urllib.FancyURLopener instance>, opener.open = <bound method FancyURLopener.open of <urllib.FancyURLopener instance>>, url = 'https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in open(self=<urllib.FancyURLopener instance>, fullurl='https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None)
    211         try:
    212             if data is None:
=>  213                 return getattr(self, name)(url)
    214             else:
    215                 return getattr(self, name)(url, data)
builtin getattr = <built-in function getattr>, self = <urllib.FancyURLopener instance>, name = 'open_https', url = '//dial.uclouvain.be/solr6/repository/select?&sta...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in open_https(self=<urllib.FancyURLopener instance>, url='//dial.uclouvain.be/solr6/repository/select?&sta...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None)
    441             if realhost: h.putheader('Host', realhost)
    442             for args in self.addheaders: h.putheader(*args)
=>  443             h.endheaders(data)
    444             errcode, errmsg, headers = h.getreply()
    445             fp = h.getfile()
h = <httplib.HTTPS instance>, h.endheaders = <bound method HTTPSConnection.endheaders of <httplib.HTTPSConnection instance>>, data = None
 /usr/lib/python2.7/httplib.py in endheaders(self=<httplib.HTTPSConnection instance>, message_body=None)
   1033         else:
   1034             raise CannotSendHeader()
=> 1035         self._send_output(message_body)
   1036 
   1037     def request(self, method, url, body=None, headers={}):
self = <httplib.HTTPSConnection instance>, self._send_output = <bound method HTTPSConnection._send_output of <httplib.HTTPSConnection instance>>, message_body = None
 /usr/lib/python2.7/httplib.py in _send_output(self=<httplib.HTTPSConnection instance>, message_body=None)
    877             msg += message_body
    878             message_body = None
=>  879         self.send(msg)
    880         if message_body is not None:
    881             #message_body was not a string (i.e. it is a file) and
self = <httplib.HTTPSConnection instance>, self.send = <bound method HTTPSConnection.send of <httplib.HTTPSConnection instance>>, msg = 'GET /solr6/repository/select?&start=0&rows=99999....uclouvain.be\r\nUser-Agent: Python-urllib/1.17\r\n\r\n'
 /usr/lib/python2.7/httplib.py in send(self=<httplib.HTTPSConnection instance>, data='GET /solr6/repository/select?&start=0&rows=99999....uclouvain.be\r\nUser-Agent: Python-urllib/1.17\r\n\r\n')
    839         if self.sock is None:
    840             if self.auto_open:
=>  841                 self.connect()
    842             else:
    843                 raise NotConnected()
self = <httplib.HTTPSConnection instance>, self.connect = <bound method HTTPSConnection.connect of <httplib.HTTPSConnection instance>>
 /usr/lib/python2.7/httplib.py in connect(self=<httplib.HTTPSConnection instance>)
   1248 
   1249             self.sock = self._context.wrap_socket(self.sock,
=> 1250                                                   server_hostname=server_hostname)
   1251 
   1252     __all__.append("HTTPSConnection")
server_hostname = 'dial.uclouvain.be'
 /usr/lib/python2.7/ssl.py in wrap_socket(self=<ssl.SSLContext object>, sock=<socket._socketobject object>, server_side=False, do_handshake_on_connect=True, suppress_ragged_eofs=True, server_hostname='dial.uclouvain.be')
    348                          suppress_ragged_eofs=suppress_ragged_eofs,
    349                          server_hostname=server_hostname,
=>  350                          _context=self)
    351 
    352     def set_npn_protocols(self, npn_protocols):
_context undefined, self = <ssl.SSLContext object>
 /usr/lib/python2.7/ssl.py in __init__(self=<ssl.SSLSocket object>, sock=<socket._socketobject object>, keyfile=None, certfile=None, server_side=False, cert_reqs=0, ssl_version=2, ca_certs=None, do_handshake_on_connect=True, family=2, type=1, proto=0, fileno=None, suppress_ragged_eofs=True, npn_protocols=None, ciphers=None, server_hostname='dial.uclouvain.be', _context=<ssl.SSLContext object>)
    564                         # non-blocking
    565                         raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets")
=>  566                     self.do_handshake()
    567 
    568             except (OSError, ValueError):
self = <ssl.SSLSocket object>, self.do_handshake = <bound method SSLSocket.do_handshake of <ssl.SSLSocket object>>
 /usr/lib/python2.7/ssl.py in do_handshake(self=<ssl.SSLSocket object>, block=False)
    786             if timeout == 0.0 and block:
    787                 self.settimeout(None)
=>  788             self._sslobj.do_handshake()
    789         finally:
    790             self.settimeout(timeout)
self = <ssl.SSLSocket object>, self._sslobj = <_ssl._SSLSocket object>, self._sslobj.do_handshake = <built-in method do_handshake of _ssl._SSLSocket object>

<type 'exceptions.IOError'>: [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
      args = ('socket error', SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)'))
      errno = 'socket error'
      filename = None
      message = ''
      strerror = SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)')