diff --git a/mhcflurry/package_metadata.py b/mhcflurry/package_metadata.py index 559a6d7a70ee86e0088a72442e45ca21ac00ae16..36e61c641d912318fc6e395d4913c21c77c544ff 100644 --- a/mhcflurry/package_metadata.py +++ b/mhcflurry/package_metadata.py @@ -1,2 +1,2 @@ -__version__ = "0.0.8" +__version__ = "0.1.0" diff --git a/mhcflurry/predict_command.py b/mhcflurry/predict_command.py index 4a010402ecb357d296a574c2c89a93ec116051ad..edcc6af020e175bd5077f1e1a84e9e9b6d61553c 100644 --- a/mhcflurry/predict_command.py +++ b/mhcflurry/predict_command.py @@ -122,8 +122,19 @@ def run(argv=sys.argv[1:]): parser.error( "Specify either an input CSV file or both the " "--alleles and --peptides arguments") - - pairs = list(itertools.product(args.alleles, args.peptides)) + # split user specified allele and peptide strings in case they + # contain multiple entries separated by commas + alleles = [] + for allele_string in args.alleles: + alleles.extend([s.strip() for s in allele_string.split(",")]) + peptides = [] + for peptide in args.peptides: + peptides.extend(peptide.strip() for p in peptide.split(",")) + for peptide in peptides: + if not peptide.isalpha(): + raise ValueError( + "Unexpected character(s) in peptide '%s'" % peptide) + pairs = list(itertools.product(alleles, peptides)) df = pandas.DataFrame({ "allele": [p[0] for p in pairs], "peptide": [p[1] for p in pairs], diff --git a/requirements.txt b/requirements.txt index 78a52a934f1732bc8eb3d459bafa9c01f1d54728..e1768825d305e148f3429f64c7b54c4f60dd06dd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ numpy>= 1.11 pandas>=0.13.1 appdirs theano>=0.8.2 -keras==1.1.0 +keras==1.2.0 fancyimpute>=0.0.12 scikit-learn h5py diff --git a/setup.py b/setup.py index 07adad407a940d14046cf4eb03e04bc1ac30f516..909ba1f78c4328e7374ce3243423e1ce72d35e1c 100644 --- a/setup.py +++ b/setup.py @@ -15,9 +15,14 @@ import os import logging import re +import sys from setuptools import setup +# normally we would import six.PY2 but can't yet assume that six +# is installed here +PY2 = (sys.version_info.major == 2) + readme_dir = os.path.dirname(__file__) readme_filename = os.path.join(readme_dir, 'README.md') @@ -43,6 +48,25 @@ with open('mhcflurry/package_metadata.py', 'r') as f: re.MULTILINE).group(1) if __name__ == '__main__': + required_packages = [ + 'numpy>=1.11', + 'pandas>=0.13.1', + 'appdirs', + 'theano>=0.8.2', + 'keras==1.2.0', + 'fancyimpute>=0.0.12', + 'scikit-learn', + 'h5py', + 'typechecks', + 'pepdata', + 'bottle', + 'six', + ] + if PY2: + # concurrent.futures is a standard library in Py3 but Py2 + # requires this backport + required_packages.append('futures') + setup( name='mhcflurry', version=version, @@ -71,21 +95,7 @@ if __name__ == '__main__': package_data={ 'mhcflurry': ['downloads.yml'], }, - install_requires=[ - 'numpy>=1.11', - 'pandas>=0.13.1', - 'appdirs', - 'theano>=0.8.2', - 'keras==1.1.0', - 'fancyimpute>=0.0.12', - 'scikit-learn', - 'h5py', - 'typechecks', - 'pepdata', - 'futures', - 'bottle', - 'six', - ], + install_requires=required_packages, long_description=readme, packages=['mhcflurry', 'mhcflurry.class1_allele_specific'], )