Пример #1
0
def plot_comps(N, S):

    fig = plt.figure()
    ax = fig.add_subplot(1,1,1)

    for j in range(100):
        
        # Random composition
        RAD = RandCompFast(N, S)
        ranks = range(1, len(RAD)+1)
        plt.plot(ranks, RAD, lw = 1, c='gray')
        
    # Predicted geometric series
    predRAD = predRADs.get_GeomSeries(N, S, False)
        
    ranks = range(1, S+1)
    plt.plot(ranks, predRAD, lw = 2, c='Lime')    
        
    plt.yscale('log')
    plt.ylabel('Abundance')
    plt.xlabel('Rank in abundance')
    plt.title('Smallest abundance of MaxEnt prediction for SAD constrained\nby N and S (Geometric Series):'+str(min(predRAD)))
    plt.show()
    
    return
Пример #2
0
def plot_RADs_canonical(N, S):

    fig = plt.figure()
    ax = fig.add_subplot(1,1,1)
    
    # Predicted geometric series
    predRAD = predRADs.get_GeomSeries(N, S, False) # False mean no zeros allowed
    ranks = range(1, S+1)
    plt.plot(ranks, predRAD, lw = 1, c='m')
    
    # Predicted log-series
    logSeries = mete.get_mete_rad(S, N)
    predRAD = logSeries[0]
    ranks = range(1, S+1)
    plt.plot(ranks, predRAD, lw = 1, c='c')
        
    # Predicted PLN
    #predRAD = pln.get_rad_from_obs(predRAD, 'pln') 
    #ranks = range(1, len(predRAD)+1)
    #plt.plot(ranks, predRAD, lw = 1, c='gray')   
    
    plt.yscale('log')
    plt.show()
    
    return
Пример #3
0
def getPredRADs(N, S, Nmax):
    
    PRED = []
    
    # Predicted geometric series
    predRAD = predRADs.get_GeomSeries(N, S, False) # False mean no zeros allowed
    PRED.append(predRAD)
    
    # Predicted log-series
    logSeries = mete.get_mete_rad(S, N)
    predRAD = logSeries[0]
    PRED.append(predRAD)
    
    # Predicted PLN
    predRAD = pln.get_rad_from_obs(RAD, 'pln') 
    PRED.append(predRAD)
    
    sample_size = 10
    # Predicted from compositions (basically geometric series)
    predRAD = getPred(N, S, maxn, 'compositions', sample_size)
    PRED.append(predRAD)
    
    # Predicted from Fraction 1: Power Fraction
    predRAD = getPred(N, S, maxn, 'power fraction', sample_size)
    PRED.append(predRAD)
    
    # Predicted from Fraction 2: Random non-preemption
    predRAD = getPred(N, S, maxn, 'random fraction non-preemption', sample_size)
    PRED.append(predRAD)
    
    # Predicted from Fraction 3: Random preemption 
    predRAD = getPred(N, S, maxn, 'random fraction', sample_size)
    PRED.append(predRAD)
    
    return PRED
Пример #4
0
def generate_obs_pred_data(datasets, methods):

    for method in methods:
        for dataset in datasets:

            gN = 0
            #OUT = open(mydir+'/data/'+method+'_'+dataset+'_obs_pred.txt','w+')
            IN = mydir+'/MicroMETE/data/'+dataset+'_SADs.txt'
            num_lines = sum(1 for line in open(IN))

            for line in open(IN):

                line = line.split()
                obs = map(int, line)
                obs = list([x for x in obs if x > 1])

                N = sum(obs)
                gN += N
                print N
                S = len(obs)

                if S < 10:
                    continue

                obs.sort()
                obs.reverse()
                print method, dataset, N, S, 'countdown:', num_lines,

                if method == 'geom': # Predicted geometric series
                    pred = predRADs.get_GeomSeries(N, S, False) # False mean no zeros allowed

                elif method == 'mete': # Predicted log-series
                    logSeries = mete.get_mete_rad(S, N)
                    pred = logSeries[0]

                r2 = macroecotools.obs_pred_rsquare(np.log10(obs), np.log10(pred))
                print " r2:", r2

                # write to file, by cite, observed and expected ranked abundances
                #for i, sp in enumerate(pred):
                #    print>> OUT, obs[i], pred[i]

                num_lines -= 1

            print 'N(HMP): ',gN
            #OUT.close()

        print dataset