Esempio n. 1
0
def beta_wrapper(df, var_key):
    print "\n", var_key
    brayDist = ep.distance(df, method='bray')
    groups = list(df[var_key])
    rand_groups = list(np.random.choice(np.unique(groups), 
                                    size=np.array(groups).shape))

    ep.beta_dispersion(brayDist, groups, test='anova', 
                   center='median', scores=False)
    ep.beta_dispersion(brayDist, rand_groups, test='anova', 
                   center='median', scores=False)
    return brayDist
Esempio n. 2
0
# Leitura da matriz de dados de abundância
matriz = pd.read_csv("especies.csv", header=0, index_col=0, encoding="utf8")

# Transposição da matriz de dados
matriz = matriz.transpose()

# Transformação logarítmica
matriz_log = matriz.apply(lambda x: np.log10(x + 1))  # Logaritmos decimais

# Cálculo do coeficiente de Jaccard mediante a função distance()
# do pacote "ecopy". Outras opções de coeficientes binários são:
# "kulczynski" e "sorensen". É necessário transformar a matriz
# de abundância para presença/ausência
matriz_bin = ep.transform(matriz, method="pa")
simil = ep.distance(matriz_bin, method="jaccard")

# Cálculo da distância de Bray-Curtis mediante a função distance()
# do pacote "ecopy". Outras opções de coeficientes de distância são:
# "euclidean", "manhattan" e "canberra"
dist = ep.distance(matriz_log, method="bray")
ochiai = ep.distance(matriz_bin, method="ochiai")

# A matriz de correlação é calculada por meio
# da função corr() do pacote "pandas"
matriz_log = matriz_log.transpose()
corr = np.asarray(matriz_log.corr(method="pearson"))

labels = list(matriz.index)
row_col = len(labels)
for j in range(row_col):
Esempio n. 3
0
from adjustText import adjust_text

to_print = True

# Leitura da matriz de dados de abundância
matriz = pd.read_csv("especies.csv", header=0, index_col=0, encoding="utf8")

# Transposição da matriz de dados
matriz = matriz.transpose()

# Transformação logarítmica
matriz_log = matriz.apply(lambda x: np.log10(x + 1))  # Logaritmos decimais

# Cálculo da distância de Bray-Curtis entre as amostras
# utilizando a função distance() do pacote EcoPy
dist = ep.distance(matriz_log, "bray")

# Escalonamento multidimensional não-métrico
fit = ep.MDS(dist, siteNames=matriz.index)

# Saída dos resultados
print("Stress = " + str(round(fit.stress, 5)))

# Diagrama de dispersão
fig, ax = plt.subplots()
x = list(fit.scores[:, 0])
y = list(fit.scores[:, 1])
if to_print:
    plt.scatter(x, y, color="black")
else:
    plt.scatter(x, y, color="blue")
Esempio n. 4
0
import matplotlib.pyplot as plt

to_print = True

# Leitura da matriz de dados de abundância
matriz = pd.read_csv("especies.csv", header=0, index_col=0, encoding="utf8")

# Transposição da matriz de dados
matriz = matriz.transpose()

# Transformação logarítmica
matriz_log = matriz.apply(lambda x: np.log10(x + 1))  # Logaritmos decimais

# Cálculo da distância de Bray-Curtis entre as amostras
# por meio da função distance() do pacote "ecopy"
dist = ep.distance(matriz_log, method="bray")

# Análise de agrupamentos, cálculo da correlação cofenética e construção do dendrogama
# mediante a função linkage() do pacote SciPy

# Ligação simples
if to_print:
    set_link_color_palette(['k', 'k', 'k', 'k', 'k'])
    col = 'k'
else:
    set_link_color_palette(['b', 'b', 'b', 'b', 'b'])
    col = 'b'
hc = linkage(dist, method="single")
dc = cophenet(hc, squareform(dist))[0]
dendrogram(hc,
           labels=list(matriz.index),
Esempio n. 5
0
#Leitura das variáveis ambientais
variaveis = pd.read_csv("variaveis.csv",
                        header=0,
                        index_col=0,
                        encoding="utf8")

# Conversão das variáveis categóricas
# para fatores numéricos
variaveis["DLU"] = variaveis.DLU.astype('category')
variaveis["Exot"] = variaveis.Exot.astype('category')
factors = variaveis.select_dtypes(['category']).columns
variaveis[factors] = variaveis[factors].apply(lambda x: x.cat.codes)

# Estandardização das variáveis e cálculo das matrizes de distância
variaveis = variaveis.apply(lambda x: (x - x.mean()) / x.std(), axis=0)
dist1 = ep.distance(matriz, method="bray")
dist2 = ep.distance(variaveis, method="euclidean")

# Teste de Mantel
# por meio da função Mantel() do pacote "ecopy"
test = ep.Mantel(dist1, dist2, test="pearson", nperm=9999)

# Saída dos resultados
print(test.summary())

# Diagrama de dispersão
fig, ax = plt.subplots()
if to_print:
    plt.scatter(dist1, dist2, color="black")
else:
    plt.scatter(dist1, dist2)
    print "\n Input Equivalence detected"
    if os.path.exists(jsd_dist_path):
        print "Loading Jensen Shannon Distance matrix" 
        jsd_mat = pd.read_csv(jsd_dist_path, index_col=0)
    else:
        print "Calculating sqrt of Jensen Shannon Divergence of all rows"
        jsd_mat = JensenShannonDiv_Sqrt(shared_otus)
        jsd_mat.to_csv(jsd_dist_path)
        print "Saving distance matrix and shared otu matrix"
        
    if os.path.exists(bc_dist_path):
        print "Loading Bray-Curtis Distances"
        brayDF = pd.read_csv(bc_dist_path, index_col=0)
    else:
        print "Calculating sqrt of Jensen Shannon Divergence of all rows"
        brayDist = ep.distance(shared_otus, method='bray')
        brayDF = pd.DataFrame(data=brayDist,
                      index=shared_otus.index,
                      columns=shared_otus.index)
        brayDF.to_csv(bc_dist_path)
        print "Saving distance matrix and shared otu matrix"
    del loaded_otu
else:
    print "\n Previous calculations derived from distinct OTU table"
    print "Calculating sqrt of Jensen Shannon Divergence of all rows"
    jsd_mat = JensenShannonDiv_Sqrt(shared_otus)
    print "Caclulating Bray Curtis Distance of all rows"
    brayDist = ep.distance(shared_otus, method='bray')
    brayDF = pd.DataFrame(data=brayDist,
                  index=shared_otus.index,
                  columns=shared_otus.index)