# Path: augur/utils.py
# def myopen(fname, mode):
#     if fname.endswith('.gz'):
#         import gzip
#         return gzip.open(fname, mode, encoding='utf-8')
#     else:
#         return open(fname, mode, encoding='utf-8')


import os
import logging
import numpy as np
import time
import pandas as pd
import sys
                import matplotlib.pyplot as plt
                import seaborn as sns
                    import ipdb; ipdb.set_trace()
                    import pdb; pdb.set_trace()
from collections import defaultdict
from pprint import pprint
from .utils import myopen
                from random import sample
        from scipy.stats import linregress, pearsonr
            from cvxopt import matrix, solvers
        from scipy.optimize import nnls
            from cvxopt import matrix, solvers
            from cvxopt import matrix, solvers


TITER_ROUND=4

class InsufficientDataException(Exception):
    pass


# Path: augur/utils.py
# def myopen(fname, mode):
#     if fname.endswith('.gz'):
#         import gzip
#         return gzip.open(fname, mode, encoding='utf-8')
#     else:
#         return open(fname, mode, encoding='utf-8')


# Path: augur/titer_model.py
import os
import logging
import numpy as np
import time
import pandas as pd
import sys
                import matplotlib.pyplot as plt
                import seaborn as sns
                    import ipdb; ipdb.set_trace()
                    import pdb; pdb.set_trace()
from collections import defaultdict
from pprint import pprint
from .utils import myopen
                from random import sample
        from scipy.stats import linregress, pearsonr
            from cvxopt import matrix, solvers
        from scipy.optimize import nnls
            from cvxopt import matrix, solvers
            from cvxopt import matrix, solvers



TITER_ROUND=4

class InsufficientDataException(Exception):
    pass


class TiterCollection(object):