import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt 
sns.set()
%matplotlib inline

n=np.random.normal(10,6,100) 
n1=np.random.normal(5,7,100) 


sns.distplot(n)
sns.distplot(n1)


import matplotlib.pyplot as plt
plt.scatter(n,n1)

data = pd.DataFrame({'x':n, 'y':n1})
data.head()

sns.lmplot('x', 'y', data)

y=12+72*n+ np.random.normal(0,500,100)

data = pd.DataFrame({'x':n, 'y':y})
sns.lmplot('x', 'y', data)

"""
Explanation: ejemplo de como usar numeros aleatorios
End of explanation
"""


import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt 
import pandas as pd
sns.set()
%matplotlib inline

"""
Explanation: Trabajo de programación con Carcinoma de Pulmón
Se importan las librerias necesarias para trabajar
End of explanation
"""


df= pd.read_table('C:/Users/Alex/Documents/eafit/semestres/X semestre/programacion/gdac/LUAD.txt', sep='\t')
pd.set_option('display.mpl_style', 'default') 

df=df.convert_objects(convert_dates=True, convert_numeric=True) 
df=df.drop([0])

df.head()

p1=df['TCGA-05-4244-01A-01R-1107-07']
p1[:5]
p1 = pd.to_numeric(p1)
type(p1)
sns.distplot(p1)

gen1=df[df['Hybridization REF']=='?|10431']
gen1=gen1.drop('Hybridization REF', 1)
#gen1=gen1.values.astype(float).tolist()


gen2=df[df['Hybridization REF']=='tAKR|389932']
gen2=gen2.drop('Hybridization REF', 1)
#gen2=gen2.values.astype(float).tolist()


sns.distplot(gen1)
sns.distplot(gen2)

df2=df.ix[:,'TCGA-05-4244-01A-01R-1107-07':]
a=df2.max(axis=0)
#a.min

#df['TCGA-05-4244-01A-01R-1107-07'].value_counts()

"""
Explanation: Se llama el archivo con los datos a trabajar, los cuales son una lista de genes normalizados asociados al cancer y un numero n de pacientes a los cuales se les hizo un analisis de expresion de estos genes mediante mRNAseq, por lo que para cada gen y persona se encuentra el número de reads correspondientes.
End of explanation
"""


maximo=df.loc[df.ix[:,1] > 100000 ]
gen_list=maximo['Hybridization REF'].values.tolist()
gen_list
#maximo

sns.boxplot(x="Hybridization REF", y= 'TCGA-05-4389-01A-01R-1206-07', data=maximo, palette="PRGn") #mirar cuantos pacientes presentan un gen mas expresado que otro

"""
Explanation: Se seleccionan los genes que posean mas de cien mil reads
End of explanation
"""


for i in range(len(gen_list)):
    name=gen_list[i]
    gen1=df[df['Hybridization REF']== name].ix[:,'TCGA-05-4244-01A-01R-1107-07':]
    sns.distplot(gen1)

genes=df.loc[df.ix[:,1] > 100000 ]

genes

g = sns.factorplot(x='Hybridization REF', data=genes, kind="count",
                   palette="BuPu", size=6, aspect=1.5)
g.set_xticklabels(step=2)
genes

maximo = maximo.set_index('Hybridization REF')

maximo1 = maximo.transpose()
maximo1.head()

sns.violinplot(maximo1[['ACTB|60']])

import matplotlib.pyplot as plt
maximo1=maximo.transpose()
gen_list=maximo1.ix[1:].as_matrix()
plt.boxplot(gen_list,1)
gen_list

print(maximo.mean(1))
print (maximo.std(1))


gen2=df[df['Hybridization REF']=='SFTPB|6439']
gen2=gen2.drop('Hybridization REF',1)
gen2=gen2.values.tolist()
plt.boxplot(gen2)



"""
Explanation: Se realiza un grafico de distribuciones de los 5 genes que fueron los que mas reads presentaron
End of explanation
"""


