Teste T entre amostras em uma mesma planilha

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Teste T entre amostras em uma mesma planilha

Mensagem por lmattiello em Qua Fev 17, 2016 7:25 pm

Boa Noite Professores,
Eu tenho alguns dados de expressão de alguns genes em alguns tecidos vegetais.
Eu gostaria de comparar apenas a expressão desses genes entre os tecidos verdes e secos (apenas entre as folhas ou apenas entre os colmos, etc..) mas todos os dados estão na mesma planilha.
Como faço para fazer o teste para cada par (ex. gene DHN entre folhas verdes e folhas secas) sem criar arquivos separados para cada gene?
Os dados são esses:
Gene Sample Fold_Change
DHN Folha_Seca 507.0006887
DHN Folha_Seca 4503.832255
DHN Folha_Seca 5336.865909
DHN Folha_Verde 18.71587775
DHN Folha_Verde 7.945559334
DHN Folha_Verde 4.199699304
DHN Folha_Verde 4.930670344
DHN Colmo_Seco 648.9021766
DHN Colmo_Seco 6068.934783
DHN Colmo_Seco 5525.812271
DHN Colmo_Verde 0.699097956
DHN Colmo_Verde 9.478155016
DHN Colmo_Verde 3.685757381
DHN Colmo_Verde 3.836962148
DHN Raiz_Seca 1118.592852
DHN Raiz_Seca 1772.057202
DHN Raiz_Seca 1031.313686
DHN Raiz_Verde 1.385496394
DHN Raiz_Verde 0.773072029
DHN Raiz_Verde 0.997873231
DHN Raiz_Verde 0.935619506
LNC Folha_Seca 4.99906365
LNC Folha_Seca 51.6445387
LNC Folha_Seca 62.01112411
LNC Folha_Verde 1.953320646
LNC Folha_Verde 0.679679786
LNC Folha_Verde 1.199521123
LNC Colmo_Seco 206.1998326
LNC Colmo_Seco 1155.184073
LNC Colmo_Seco 1617.582816
LNC Colmo_Verde 0.66575083
LNC Colmo_Verde 0.121342023
LNC Colmo_Verde 0.380466014
LNC Colmo_Verde 0.282325435
LNC Raiz_Seca 10.0795111
LNC Raiz_Seca 418.9842634
LNC Raiz_Seca 304.8101047
LNC Raiz_Verde 0.442770636
LNC Raiz_Verde 2.017394032
LNC Raiz_Verde 0.665683501
LNC Raiz_Verde 1.681754754
PRP Raiz_Seca 76.16736998
PRP Raiz_Seca 177.7168902
PRP Raiz_Seca 77.7536582
PRP Raiz_Verde 1.394282926
PRP Raiz_Verde 0.614943382
PRP Raiz_Verde 1.166309891
LTP Raiz_Seca 0.142445784
LTP Raiz_Seca 2.863415581
LTP Raiz_Seca 2.451692601
LTP Raiz_Verde 77.34560447
LTP Raiz_Verde 27.48225666
LTP Raiz_Verde 48.5596193
avatar
lmattiello

Mensagens : 6
Data de inscrição : 22/12/2015
Idade : 34
Localização : Campinas

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Teste T entre amostras em uma mesma planilha

Mensagem por Prof. Marcos em Qua Fev 17, 2016 9:06 pm

Oi, Lucia, tudo bem?

Então, como tudo no R, tem várias soluções. A que eu proponho aqui é prática, apesar de talvez não ser a mais "elegante". Daria, por exemplo, para automatizar mais o processo, mas por mais bonito que fosse, acho que poderia ficar complicado. Então vou numa saída simples, usando a função split, que divide os dados em subconjuntos.

A única cautela aqui é não usar o attach(). Isso porque vamos ter vários subconjuntos de dados, cada um com os mesmos nomes de variáveis. Usar attach numa situação desta é muito arriscado. No lugar dele, vamos usar o argumento data para informar a qual parte dos dados nos referimos. O argumento data é aceito em funções de testes estatísticos e de gráficos, então dá pra fazer tudo com ele, ok?

A solução que eu proponho é esta:

Código:
dados.divididos<-split(dados, dados$Gene)

t.test(Fold_Change~Sample, var.equal=T, data=dados.divididos$PRP)

Simples, né?

Você pode fazer o teste para cada gene agora, bastando especificar com o argumento data com qual gene quer trabalhar.

Agora, da forma como está, vai funcionar para os genes que tem apenas 2 níveis na variável sample. Para os genes que tem 4 níveis, vamos precisar fazer alguma outra coisa. Vou pensar aqui e já digo, ok?
avatar
Prof. Marcos

Mensagens : 259
Data de inscrição : 23/12/2015
Idade : 36
Localização : Maceió, AL

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Teste T entre amostras em uma mesma planilha

Mensagem por Prof. Marcos em Qua Fev 17, 2016 9:38 pm

Tá, achei aqui uma solução.
De novo, teriam várias, mas quis seguir uma que tivesse a mesma lógica da solução inicial. Pra isso, vamos precisar do pacote reshape, ok?

Na nova solução, vamos usar a função colsplit (do reshape) que permite "quebrar" uma coluna em pedaços. Vamos usar esta função para identificar quem é folha, quem é colmo, etc. Vamos fazer assim:

Código:
library(reshape)
library(reshape)
tipo<-colsplit(dados$Sample, split="_", names=c("tipo1", "tipo2"))
tipo

Agora nós podemos usar a coluna "tipo1" para separar os dados de novo, e aí testar as diferenças para cada tipo. Mas primeiro precisamos incorporar a nova coluna no objeto dados. Lá vai:

Código:
dados.novos<-cbind(dados, tipo$tipo1)
head(dados.novos)

#O nome da coluna nova ficou problemático, e iria atrapalhar o próximo passo.
#Então, ates de seguir, vou ajeitar o nome assim:
colnames(dados.novos)[4]<-"tipo"
head(dados.novos)


Agora vamos finalizar:

Código:
#Vou dividir os dados de novo, pois agora temos uma nova coluna, ok?
dados.divididos<-split(dados.novos, dados.novos$Gene)
head(dados.divididos)

DHN.dividido<-split(dados.divididos$DHN, dados.divididos$DHN[,4])
DHN.dividido

#Agora pode fazer cada teste para este gene, assim:
t.test(Fold_Change~Sample, data=DHN.dividido$Raiz)

Ufa!

No fim, acho que ficou longo, e estou em dúvida se de fato seria a melhor solução. Ela resolveu, mas acho que dá quase tanto trabalho quanto reformatar os dados... Sad

Vou pensar mais aqui, e qualquer coisa proponho outra saída. Mas veja o que você acha desta, ok?
avatar
Prof. Marcos

Mensagens : 259
Data de inscrição : 23/12/2015
Idade : 36
Localização : Maceió, AL

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Teste T entre amostras em uma mesma planilha

Mensagem por lmattiello em Qui Fev 18, 2016 10:02 am

Deu certo Professor! Obrigada! Ontem quebrei a cabeça e acabei dividindo os dados mesmo, mas assim ficou mais simples! obrigada
avatar
lmattiello

Mensagens : 6
Data de inscrição : 22/12/2015
Idade : 34
Localização : Campinas

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Teste T entre amostras em uma mesma planilha

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum