From 4ea4173abd4625304048cb1fa9ae075d9566610e Mon Sep 17 00:00:00 2001 From: Tim O'Donnell <timodonnell@gmail.com> Date: Sun, 10 Dec 2017 20:54:23 -0500 Subject: [PATCH] Refactor to simplify directory structure --- .gitignore | 2 ++ mhcflurry/__init__.py | 6 ++--- .../class1_affinity_prediction/__init__.py | 9 ------- .../class1_affinity_predictor.py | 24 +++++++++---------- .../class1_neural_network.py | 8 +++---- mhcflurry/predict_command.py | 2 +- .../train_allele_specific_models_command.py | 12 +++++----- test/test_class1_neural_network.py | 2 +- test/test_hyperparameters.py | 2 +- ...st_train_allele_specific_models_command.py | 11 ++++----- 10 files changed, 34 insertions(+), 44 deletions(-) delete mode 100644 mhcflurry/class1_affinity_prediction/__init__.py rename mhcflurry/{class1_affinity_prediction => }/class1_affinity_predictor.py (99%) rename mhcflurry/{class1_affinity_prediction => }/class1_neural_network.py (98%) rename mhcflurry/{class1_affinity_prediction => }/train_allele_specific_models_command.py (98%) diff --git a/.gitignore b/.gitignore index e44e3907..f09f2154 100644 --- a/.gitignore +++ b/.gitignore @@ -58,6 +58,8 @@ coverage.xml # Sphinx documentation docs/_build/ +docs/_static +docs/_templates # PyBuilder target/ diff --git a/mhcflurry/__init__.py b/mhcflurry/__init__.py index b909f853..e743fb33 100644 --- a/mhcflurry/__init__.py +++ b/mhcflurry/__init__.py @@ -12,10 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from .class1_affinity_prediction.class1_neural_network import ( - Class1NeuralNetwork) -from .class1_affinity_prediction.class1_affinity_predictor import ( +from mhcflurry.class1_affinity_predictor import ( Class1AffinityPredictor) +from mhcflurry.class1_neural_network import ( + Class1NeuralNetwork) __version__ = "1.0.0" diff --git a/mhcflurry/class1_affinity_prediction/__init__.py b/mhcflurry/class1_affinity_prediction/__init__.py deleted file mode 100644 index 96707e88..00000000 --- a/mhcflurry/class1_affinity_prediction/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from __future__ import absolute_import - -from .class1_neural_network import Class1NeuralNetwork -from .class1_affinity_predictor import Class1AffinityPredictor - -__all__ = [ - 'Class1NeuralNetwork', - 'Class1AffinityPredictor', -] diff --git a/mhcflurry/class1_affinity_prediction/class1_affinity_predictor.py b/mhcflurry/class1_affinity_predictor.py similarity index 99% rename from mhcflurry/class1_affinity_prediction/class1_affinity_predictor.py rename to mhcflurry/class1_affinity_predictor.py index af94cfa0..f1251282 100644 --- a/mhcflurry/class1_affinity_prediction/class1_affinity_predictor.py +++ b/mhcflurry/class1_affinity_predictor.py @@ -1,26 +1,24 @@ import collections -import time import hashlib import json -from os.path import join, exists -from six import string_types import logging -import warnings import sys +import time +import warnings +from os.path import join, exists +import mhcnames import numpy import pandas from numpy.testing import assert_equal +from six import string_types -import mhcnames - -from ..encodable_sequences import EncodableSequences -from ..downloads import get_path -from ..common import random_peptides -from ..percent_rank_transform import PercentRankTransform -from ..regression_target import to_ic50 - -from .class1_neural_network import Class1NeuralNetwork +from mhcflurry.class1_neural_network import Class1NeuralNetwork +from mhcflurry.common import random_peptides +from mhcflurry.downloads import get_path +from mhcflurry.encodable_sequences import EncodableSequences +from mhcflurry.percent_rank_transform import PercentRankTransform +from mhcflurry.regression_target import to_ic50 class Class1AffinityPredictor(object): diff --git a/mhcflurry/class1_affinity_prediction/class1_neural_network.py b/mhcflurry/class1_neural_network.py similarity index 98% rename from mhcflurry/class1_affinity_prediction/class1_neural_network.py rename to mhcflurry/class1_neural_network.py index a30d30b3..07ee5a30 100644 --- a/mhcflurry/class1_affinity_prediction/class1_neural_network.py +++ b/mhcflurry/class1_neural_network.py @@ -7,10 +7,10 @@ import pandas from mhcflurry.hyperparameters import HyperparameterDefaults -from ..encodable_sequences import EncodableSequences -from ..amino_acid import available_vector_encodings, vector_encoding_length -from ..regression_target import to_ic50, from_ic50 -from ..common import random_peptides, amino_acid_distribution +from mhcflurry.encodable_sequences import EncodableSequences +from mhcflurry.amino_acid import available_vector_encodings, vector_encoding_length +from mhcflurry.regression_target import to_ic50, from_ic50 +from mhcflurry.common import random_peptides, amino_acid_distribution class Class1NeuralNetwork(object): diff --git a/mhcflurry/predict_command.py b/mhcflurry/predict_command.py index f3a4a201..0b35d348 100644 --- a/mhcflurry/predict_command.py +++ b/mhcflurry/predict_command.py @@ -47,7 +47,7 @@ import logging import pandas from .downloads import get_path -from .class1_affinity_prediction import Class1AffinityPredictor +from .class1_affinity_predictor import Class1AffinityPredictor parser = argparse.ArgumentParser( diff --git a/mhcflurry/class1_affinity_prediction/train_allele_specific_models_command.py b/mhcflurry/train_allele_specific_models_command.py similarity index 98% rename from mhcflurry/class1_affinity_prediction/train_allele_specific_models_command.py rename to mhcflurry/train_allele_specific_models_command.py index 46680fbf..8345ec9f 100644 --- a/mhcflurry/class1_affinity_prediction/train_allele_specific_models_command.py +++ b/mhcflurry/train_allele_specific_models_command.py @@ -2,21 +2,20 @@ Train Class1 single allele models. """ +import argparse import os +import signal import sys -import argparse -import yaml import time -import signal import traceback from multiprocessing import Pool import pandas +import yaml from mhcnames import normalize_allele_name -from .class1_affinity_predictor import Class1AffinityPredictor -from ..common import configure_logging - +from mhcflurry.class1_affinity_predictor import Class1AffinityPredictor +from mhcflurry.common import configure_logging parser = argparse.ArgumentParser(usage=__doc__) @@ -89,6 +88,7 @@ parser.add_argument( "Set to 1 for serial run. Set to 0 to use number of cores. " "Default: %(default)s.") + def run(argv=sys.argv[1:]): # On sigusr1 print stack trace print("To show stack trace, run:\nkill -s USR1 %d" % os.getpid()) diff --git a/test/test_class1_neural_network.py b/test/test_class1_neural_network.py index 8747f7e0..835c632d 100644 --- a/test/test_class1_neural_network.py +++ b/test/test_class1_neural_network.py @@ -2,7 +2,7 @@ import numpy import pandas numpy.random.seed(0) -from mhcflurry import Class1NeuralNetwork +from mhcflurry.class1_neural_network import Class1NeuralNetwork from nose.tools import eq_ from numpy import testing diff --git a/test/test_hyperparameters.py b/test/test_hyperparameters.py index c1af6cac..0b887236 100644 --- a/test/test_hyperparameters.py +++ b/test/test_hyperparameters.py @@ -1,6 +1,6 @@ from numpy.testing import assert_equal -from mhcflurry.class1_affinity_prediction import Class1NeuralNetwork +from mhcflurry.class1_neural_network import Class1NeuralNetwork def test_all_combinations_of_hyperparameters(): diff --git a/test/test_train_allele_specific_models_command.py b/test/test_train_allele_specific_models_command.py index a556cc9a..affcde75 100644 --- a/test/test_train_allele_specific_models_command.py +++ b/test/test_train_allele_specific_models_command.py @@ -1,15 +1,14 @@ -import tempfile -import shutil -import os import json +import os +import shutil +import tempfile from numpy.testing import assert_array_less, assert_equal -from mhcflurry.class1_affinity_prediction import ( - train_allele_specific_models_command, Class1AffinityPredictor) +from mhcflurry import train_allele_specific_models_command +from mhcflurry import Class1AffinityPredictor from mhcflurry.downloads import get_path - HYPERPARAMETERS = [ { "n_models": 2, -- GitLab