Purtroppo, non ho trovato una soluzione da solo. Come creare un Manhattan plot all'interno di python usando, ad esempio, matplotlib/panda. Il problema è che in questi grafici l'asse x è discreto.Come creare una trama di Manhattan con matplotlib in python?
from pandas import DataFrame
from scipy.stats import uniform
from scipy.stats import randint
import numpy as np
# some sample data
df = DataFrame({'gene' : ['gene-%i' % i for i in np.arange(1000)],
'pvalue' : uniform.rvs(size=1000),
'chromosome' : ['ch-%i' % i for i in randint.rvs(0,12,size=1000)]})
# -log_10(pvalue)
df['minuslog10pvalue'] = -np.log10(df.pvalue)
df = df.sort_values('chromosome')
# How to plot gene vs. -log10(pvalue) and colour it by chromosome?
Si può solo modo sensato tracciare i dati numerici, non stringhe. Come sono realmente gli x-data? –
Le trame di Manhattan sono molto comuni nella genetica e sono davvero piuttosto sensibili - o diciamo: informative - per i genetisti. I dati x sono solo nomi (sì, stringhe) di nomi SNP. (Forse avrei dovuto chiamare gli SNP x-data piuttosto che i geni nell'esempio.) –
Non ho detto che i grafici di Manhattan non sono sensibili, ho detto che è in particolare impossibile calcolare in modo significativo stringhe e dati numerici. Devi in qualche modo convertire i tuoi nomi in numeri, o semplicemente usare il loro indice. Fornirò un piccolo esempio utilizzando i dati artificiali come risposta di seguito. –