diff --git a/README.md b/README.md
index 2b734e3..ae5d980 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@ GeneWalk always requires as input a text file containing a list with genes of in
 relevant to the biological context. For example, differentially expressed genes
 from a sequencing experiment that compares an experimental versus control condition.
 GeneWalk supports gene list files containing HGNC human gene symbols,
-HGNC IDs, or MGI mouse gene IDs. Each line in the file contains a gene identifier of
+HGNC IDs, Ensembl IDs, or MGI mouse gene IDs. Each line in the file contains a gene identifier of
 one of these types.
 
 ### GeneWalk command line interface
@@ -63,10 +63,10 @@ required arguments:
   --genes GENES         Path to a text file with a list of differentially
                         expressed genes. Thetype of gene identifiers used in
                         the text file are provided in the id_type argument.
-  --id_type {hgnc_symbol,hgnc_id,mgi_id}
+  --id_type {hgnc_symbol,hgnc_id,ensembl_id,mgi_id}
                         The type of gene IDs provided in the text file in the
                         genes argument. Possible values are: hgnc_symbol,
-                        hgnc_id, and mgi_id.
+                        hgnc_id, ensembl_id, and mgi_id.
 
 optional arguments:
   --stage {all,node_vectors,null_distribution,statistics}
diff --git a/genewalk/cli.py b/genewalk/cli.py
index e1ebb80..42b41b5 100644
--- a/genewalk/cli.py
+++ b/genewalk/cli.py
@@ -65,8 +65,9 @@ def main():
     parser.add_argument('--id_type',
                         help='The type of gene IDs provided in the text file '
                              'in the genes argument. Possible values are: '
-                             'hgnc_symbol, hgnc_id, and mgi_id.',
-                        choices=['hgnc_symbol', 'hgnc_id', 'mgi_id'],
+                             'hgnc_symbol, hgnc_id, ensembl_id, and mgi_id.',
+                        choices=['hgnc_symbol', 'hgnc_id',
+                                 'ensembl_id', 'mgi_id'],
                         required=True)
     parser.add_argument('--stage', default='all',
                         help='The stage of processing to run. Default: '
diff --git a/genewalk/gene_lists.py b/genewalk/gene_lists.py
index c42235b..9737914 100644
--- a/genewalk/gene_lists.py
+++ b/genewalk/gene_lists.py
@@ -17,7 +17,7 @@ def read_gene_list(fname, id_type):
         file corresponds to a single gene.
     id_type : str
         The type of identifier contained in each line of the gene list file.
-        Possible values are: hgnc_symbol, hgnc_id, mgi_id.
+        Possible values are: hgnc_symbol, hgnc_id, ensembl_id, mgi_id.
 
     Returns
     -------
@@ -38,6 +38,8 @@ def read_gene_list(fname, id_type):
         return map_hgnc_symbols(unique_lines)
     elif id_type == 'hgnc_id':
         return map_hgnc_ids(unique_lines)
+    elif id_type == 'ensembl_id':
+        return map_ensembl_ids(unique_lines)
     elif id_type == 'mgi_id':
         return map_mgi_ids(unique_lines)
     else:
@@ -115,3 +117,31 @@ def map_mgi_ids(mgi_ids):
         ref['UP'] = uniprot_id
         refs.append(ref)
     return refs
+
+
+def map_ensembl_ids(ensembl_ids):
+    """Return references based on a list of Ensembl IDs."""
+    refs = []
+    for ensembl_id in ensembl_ids:
+        ref = {'HGNC_SYMBOL': None, 'HGNC': None, 'UP': None,
+               'ENSEMBL': ensembl_id}
+        hgnc_id = hgnc_client.get_hgnc_from_ensembl(ensembl_id)
+        if not hgnc_id:
+            logger.warning('Could not get HGNC ID for ENSEMBL ID %s' %
+                           ensembl_id)
+            continue
+        ref['HGNC'] = hgnc_id
+        hgnc_name = hgnc_client.get_hgnc_name(hgnc_id)
+        if not hgnc_name:
+            logger.warning('Could not get HGNC name for ID %s' %
+                           hgnc_id)
+            continue
+        ref['HGNC_SYMBOL'] = hgnc_name
+        uniprot_id = hgnc_client.get_uniprot_id(hgnc_id)
+        if not uniprot_id:
+            logger.warning('Could not get UniProt ID for HGNC ID %s' %
+                           hgnc_id)
+            continue
+        ref['UP'] = uniprot_id
+        refs.append(ref)
+    return refs
diff --git a/setup.py b/setup.py
index f913a4b..dfb4d59 100755
--- a/setup.py
+++ b/setup.py
@@ -9,7 +9,7 @@ with open(path.join(here, 'README.md'), encoding='utf-8') as f:
 
 def main():
     install_list = ['numpy', 'pandas', 'networkx>=2.1', 'gensim', 'goatools',
-                    'indra', 'scipy>=1.3.0']
+                    'indra>=1.14.1', 'scipy>=1.3.0']
 
     setup(name='genewalk',
           version='1.1.0',

ENSEMBL IDs
Hi, a quick question: Is it possible to support also ENSEMBL IDs as input?
diff --git a/genewalk/tests/test_gene_lists.py b/genewalk/tests/test_gene_lists.py
index 9715a4c..ac9fd42 100644
--- a/genewalk/tests/test_gene_lists.py
+++ b/genewalk/tests/test_gene_lists.py
@@ -22,3 +22,8 @@ def test_map_lists():
     assert refs[0]['HGNC'] == '6817', refs
     assert refs[0]['HGNC_SYMBOL'] == 'MAL', refs
     assert refs[0]['UP'] == 'P21145', refs
+
+    refs = map_ensembl_ids(['ENSG00000157764'])
+    assert refs[0]['HGNC'] == '1097', refs
+    assert refs[0]['UP'] == 'P15056', refs
+    assert refs[0]['HGNC_SYMBOL'] == 'BRAF', refs

pip install -e .
parse_log_pytest
requirements.txt
nose pytest
3.9
doc/requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.16
asttokens==3.0.0
babel==2.17.0
boto3==1.37.23
botocore==1.37.23
certifi==2025.1.31
charset-normalizer==3.4.1
click==8.1.8
decorator==5.2.1
docopt==0.6.2
docutils==0.21.2
enum34==1.1.10
et_xmlfile==2.0.0
exceptiongroup==1.2.2
executing==2.2.0
ftpretty==0.4.0
future==1.0.0
-e git+https://github.com/churchmanlab/genewalk.git@ebefe0f83f54acb0c8472bfe919129fa07b8b92d#egg=genewalk
gensim==4.3.3
goatools==1.4.12
idna==3.10
ijson==3.3.0
imagesize==1.4.1
importlib_metadata==8.6.1
indra==1.23.0
iniconfig==2.1.0
ipython==8.18.1
jedi==0.19.2
Jinja2==3.1.6
jmespath==1.0.1
lxml==5.3.1
markdown-it-py==3.0.0
MarkupSafe==3.0.2
matplotlib-inline==0.1.7
mdurl==0.1.2
mock==5.2.0
mpmath==1.3.0
ndex2==2.0.1
networkx==3.2.1
nose==1.3.7
numpy==1.26.4
objectpath==0.6.1
obonet==1.1.1
openpyxl==3.1.5
packaging==24.2
pandas==2.2.3
parso==0.8.4
patsy==1.0.1
pexpect==4.9.0
pluggy==1.5.0
prompt_toolkit==3.0.50
protmapper==0.0.29
ptyprocess==0.7.0
pure_eval==0.2.3
pybiopax==0.1.5
pydot==3.0.4
Pygments==2.19.1
pyparsing==3.2.3
pysb==1.16.0
pysolr==3.10.0
pystow==0.7.0
pytest==8.3.5
python-dateutil==2.9.0.post0
pytz==2025.2
requests==2.32.3
requests-toolbelt==1.0.0
rich==14.0.0
s3transfer==0.11.4
scipy==1.13.1
six==1.17.0
smart-open==7.1.0
snowballstemmer==2.2.0
Sphinx==7.4.7
sphinx-rtd-theme==3.0.2
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jquery==4.1
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
stack-data==0.6.3
statsmodels==0.14.4
sympy==1.11.1
tomli==2.2.1
tqdm==4.67.1
traitlets==5.14.3
typing_extensions==4.13.0
tzdata==2025.2
urllib3==1.26.20
wcwidth==0.2.13
wrapt==1.17.2
XlsxWriter==3.2.2
zipp==3.21.0

name: genewalk
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - alabaster==0.7.16
      - asttokens==3.0.0
      - babel==2.17.0
      - boto3==1.37.23
      - botocore==1.37.23
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - click==8.1.8
      - decorator==5.2.1
      - docopt==0.6.2
      - docutils==0.21.2
      - enum34==1.1.10
      - et-xmlfile==2.0.0
      - exceptiongroup==1.2.2
      - executing==2.2.0
      - ftpretty==0.4.0
      - future==1.0.0
      - gensim==4.3.3
      - goatools==1.4.12
      - idna==3.10
      - ijson==3.3.0
      - imagesize==1.4.1
      - importlib-metadata==8.6.1
      - indra==1.23.0
      - iniconfig==2.1.0
      - ipython==8.18.1
      - jedi==0.19.2
      - jinja2==3.1.6
      - jmespath==1.0.1
      - lxml==5.3.1
      - markdown-it-py==3.0.0
      - markupsafe==3.0.2
      - matplotlib-inline==0.1.7
      - mdurl==0.1.2
      - mock==5.2.0
      - mpmath==1.3.0
      - ndex2==2.0.1
      - networkx==3.2.1
      - nose==1.3.7
      - numpy==1.26.4
      - objectpath==0.6.1
      - obonet==1.1.1
      - openpyxl==3.1.5
      - packaging==24.2
      - pandas==2.2.3
      - parso==0.8.4
      - patsy==1.0.1
      - pexpect==4.9.0
      - pluggy==1.5.0
      - prompt-toolkit==3.0.50
      - protmapper==0.0.29
      - ptyprocess==0.7.0
      - pure-eval==0.2.3
      - pybiopax==0.1.5
      - pydot==3.0.4
      - pygments==2.19.1
      - pyparsing==3.2.3
      - pysb==1.16.0
      - pysolr==3.10.0
      - pystow==0.7.0
      - pytest==8.3.5
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - requests==2.32.3
      - requests-toolbelt==1.0.0
      - rich==14.0.0
      - s3transfer==0.11.4
      - scipy==1.13.1
      - six==1.17.0
      - smart-open==7.1.0
      - snowballstemmer==2.2.0
      - sphinx==7.4.7
      - sphinx-rtd-theme==3.0.2
      - sphinxcontrib-applehelp==2.0.0
      - sphinxcontrib-devhelp==2.0.0
      - sphinxcontrib-htmlhelp==2.1.0
      - sphinxcontrib-jquery==4.1
      - sphinxcontrib-jsmath==1.0.1
      - sphinxcontrib-qthelp==2.0.0
      - sphinxcontrib-serializinghtml==2.0.0
      - stack-data==0.6.3
      - statsmodels==0.14.4
      - sympy==1.11.1
      - tomli==2.2.1
      - tqdm==4.67.1
      - traitlets==5.14.3
      - typing-extensions==4.13.0
      - tzdata==2025.2
      - urllib3==1.26.20
      - wcwidth==0.2.13
      - wrapt==1.17.2
      - xlsxwriter==3.2.2
      - zipp==3.21.0
prefix: /opt/conda/envs/genewalk

genewalk/tests/test_gene_lists.py::test_map_lists
setup.py genewalk/gene_lists.py genewalk/cli.py README.md
setup.py genewalk/gene_lists.py genewalk/cli.py README.md