예제 #1
0
def extract_data(data_path, feature):
    '''Loads a list of neurons, extracts feature
       and transforms the fitted distribution in the correct format.
       Returns the optimal distribution, corresponding parameters,
       minimun and maximum values.
    '''
    population = ezy.load_neurons(data_path)

    feature_data = [getattr(n, 'get_' + feature)() for n in population]

    try:
        opt_fit = stats.optimal_distribution(feature_data)
    except ValueError:
        from itertools import chain
        feature_data = list(chain(*feature_data))
        opt_fit = stats.optimal_distribution(feature_data)

    return opt_fit
예제 #2
0
def extract_data(data_path, feature):
    """Loads a list of neurons, extracts feature
       and transforms the fitted distribution in the correct format.
       Returns the optimal distribution, corresponding parameters,
       minimun and maximum values.
    """
    population = ezy.load_neurons(data_path)

    feature_data = [getattr(n, "get_" + feature)() for n in population]

    try:
        opt_fit = stats.optimal_distribution(feature_data)
    except ValueError:
        from itertools import chain

        feature_data = list(chain(*feature_data))
        opt_fit = stats.optimal_distribution(feature_data)

    return opt_fit
예제 #3
0
def extract_data(data_path, feature):
    '''Loads a list of neurons, extracts feature
       and transforms the fitted distribution in the correct format.
       Returns the optimal distribution, corresponding parameters,
       minimun and maximum values.
    '''
    population = nm.load_neurons(data_path)

    feature_data = [nm.get(feature, n) for n in population]
    feature_data = list(chain(*feature_data))

    return stats.optimal_distribution(feature_data)
예제 #4
0
def extract_data(data_path, feature):
    '''Loads a list of neurons, extracts feature
       and transforms the fitted distribution in the correct format.
       Returns the optimal distribution, corresponding parameters,
       minimun and maximum values.
    '''
    population = nm.load_neurons(data_path)

    feature_data = [nm.get(feature, n) for n in population]
    feature_data = list(chain(*feature_data))

    return stats.optimal_distribution(feature_data)
예제 #5
0
def extract_data(files, feature, params=None):
    '''Loads a list of neurons, extracts feature
       and transforms the fitted distribution in the correct format.
       Returns the optimal distribution and corresponding parameters.
       Normal distribution params (mean, std)
       Exponential distribution params (loc, scale)
       Uniform distribution params (min, range)
    '''
    neurons = ezy.load_neurons(files)

    if params is None:
        params = {}

    feature_data = [FEATURE_MAP[feature](n, params) for n in neurons]

    try:
        opt_fit = stats.optimal_distribution(feature_data)
    except ValueError:
        feature_data = list(chain(*feature_data))
        opt_fit = stats.optimal_distribution(feature_data)

    return opt_fit
예제 #6
0
def extract_data(files, feature, params=None):
    '''Loads a list of neurons, extracts feature
       and transforms the fitted distribution in the correct format.
       Returns the optimal distribution and corresponding parameters.
       Normal distribution params (mean, std)
       Exponential distribution params (loc, scale)
       Uniform distribution params (min, range)
    '''
    neurons = ezy.load_neurons(files)

    if params is None:
        params = {}

    feature_data = [FEATURE_MAP[feature](n, params) for n in neurons]

    try:
        opt_fit = stats.optimal_distribution(feature_data)
    except ValueError:
        feature_data = list(chain(*feature_data))
        opt_fit = stats.optimal_distribution(feature_data)

    return opt_fit
예제 #7
0
def extract_data(neurons, feature, params=None):
    '''Extracts feature from a list of neurons
       and transforms the fitted distribution in the correct format.
       Returns the optimal distribution and corresponding parameters.
       Normal distribution params (mean, std)
       Exponential distribution params (loc, scale)
       Uniform distribution params (min, range)
    '''
    if params is None:
        params = {}

    feature_data = [get(FEATURE_MAP[feature], n, **params) for n in neurons]
    feature_data = list(chain(*feature_data))
    return stats.optimal_distribution(feature_data)
예제 #8
0
def extract_data(neurons, feature, params=None):
    '''Extracts feature from a list of neurons
       and transforms the fitted distribution in the correct format.
       Returns the optimal distribution and corresponding parameters.
       Normal distribution params (mean, std)
       Exponential distribution params (loc, scale)
       Uniform distribution params (min, range)
    '''
    if params is None:
        params = {}

    feature_data = [get(FEATURE_MAP[feature], n, **params) for n in neurons]
    feature_data = list(chain(*feature_data))
    return stats.optimal_distribution(feature_data)
예제 #9
0
def extract_data(files, feature, params=None):
    '''Loads a list of neurons, extracts feature
       and transforms the fitted distribution in the correct format.
       Returns the optimal distribution and corresponding parameters.
       Normal distribution params (mean, std)
       Exponential distribution params (loc, scale)
       Uniform distribution params (min, range)
    '''
    population = ezy.load_neurons(files)

    if params is None:
        params = {}

    feature_data = [getattr(n, 'get_' + feature)(**params) for n in population]

    try:
        opt_fit = stats.optimal_distribution(feature_data)
    except ValueError:
        from itertools import chain
        feature_data = list(chain(*feature_data))
        opt_fit = stats.optimal_distribution(feature_data)

    return opt_fit
예제 #10
0
def test_multiple_distr(filepath):
    '''Runs the distribution fit for multiple distributions and returns
       the optimal distribution along with the corresponding parameters.
    '''
    #  load a neuron from an SWC file
    population = nm.load_neurons(filepath)

    # Create a list of basic distributions
    distr_to_check = ('norm', 'expon', 'uniform')

    # Get the soma radii of a population of neurons
    soma_size = nm.get('soma_radii', population)

    # Find the best fit distribution
    return st.optimal_distribution(soma_size, distr_to_check)
예제 #11
0
def test_multiple_distr(filepath):
    '''Runs the distribution fit for multiple distributions and returns
       the optimal distribution along with the corresponding parameters.
    '''
    #  load a neuron from an SWC file
    population = nm.load_neurons(filepath)

    # Create a list of basic distributions
    distr_to_check = ('norm', 'expon', 'uniform')

    # Get the soma radii of a population of neurons
    soma_size = nm.get('soma_radii', population)

    # Find the best fit distribution
    return st.optimal_distribution(soma_size, distr_to_check)
예제 #12
0
def test_optimal_distribution_normal():
    optimal = st.optimal_distribution(NORMAL)
    assert optimal.type == 'norm'
예제 #13
0
def test_optimal_distribution_uniform():
    optimal = st.optimal_distribution(UNIFORM)
    nt.ok_(optimal.type == 'uniform')
예제 #14
0
def test_optimal_distribution_exponential():
    optimal = st.optimal_distribution(EXPON)
    nt.ok_(optimal.type == 'expon')
예제 #15
0
def test_optimal_distribution_normal():
    optimal = st.optimal_distribution(NORMAL)
    nt.ok_(optimal.type == 'norm')
예제 #16
0
def test_optimal_distribution_normal():
    optimal = st.optimal_distribution(NORMAL)
    nt.ok_(optimal.type == 'norm')
예제 #17
0
def test_optimal_distribution_exponential():
    optimal = st.optimal_distribution(EXPON)
    nt.ok_(optimal.type == 'expon')
예제 #18
0
    parser.add_argument('datapath',
                        help='Path to morphology data file or directory')

    parser.add_argument('feature',
                        help='Feature available for the ezy.neuron')

    return parser.parse_args()


if __name__ == '__main__':

    args = parse_args()

    data_path = args.datapath

    feature = args.feature

    population = ezy.load_neurons(data_path)

    feature_data = [getattr(n, 'get_' + feature)() for n in population]

    try:
        result = st.optimal_distribution(feature_data)
    except ValueError:
        from itertools import chain
        feature_data = list(chain(*feature_data))
        result = st.optimal_distribution(feature_data)

    print "Optimal distribution fit for %s is: %s with parameters %s"\
        % (feature, result.type, result.params)
예제 #19
0
def test_optimal_distribution_exponential():
    optimal = st.optimal_distribution(EXPON)
    assert optimal.type == 'expon'
예제 #20
0
def test_optimal_distribution_uniform():
    optimal = st.optimal_distribution(UNIFORM)
    nt.ok_(optimal.type == 'uniform')
예제 #21
0
def test_optimal_distribution_uniform():
    optimal = st.optimal_distribution(UNIFORM)
    assert optimal.type == 'uniform'
예제 #22
0
    parser.add_argument('datapath',
                        help='Path to morphology data file or directory')

    parser.add_argument('feature', help='Feature available for the ezy.neuron')

    return parser.parse_args()


if __name__ == '__main__':

    args = parse_args()

    data_path = args.datapath

    feature = args.feature

    population = ezy.load_neurons(data_path)

    feature_data = [getattr(n, 'get_' + feature)() for n in population]

    try:
        result = st.optimal_distribution(feature_data)
    except ValueError:
        from itertools import chain
        feature_data = list(chain(*feature_data))
        result = st.optimal_distribution(feature_data)

    print "Optimal distribution fit for %s is: %s with parameters %s"\
        % (feature, result.type, result.params)