Ferramentas do usuário

Ferramentas do site


05_curso_antigo:alunos:trabalho_final:tatianak

Tatiana Hideko Kawamoto

tati_foto.jpg

Doutoranda em Fisiologia Geral, Instituto de Biociências, USP.

Tati curriculo lattes

Proposta

Principal

Conversão de dados de respirometria fechada e intermitente (Berlink-Chauí & Bicudo, 2006) em dados de consumo de oxigênio.

A respirometria intermitente é uma técnica de medida de consumo de oxigênio ideal para artrópodes, pequenos vertebrados (p.e.anfíbios) e outros organismos com baixo consumo de oxigênio. Ela mistura conceitos de respirometria aberta e fechada, através de fluxo de ar e fechamentos intercalados, em intervalos pré-determinados.

O transdutor que detecta o oxigênio apresenta as diferenças de Pressão Parcial de Oxigênio (PPO2) do fluxo de ar que passa por ele e é registrado por um computador através de programa específico de cada equipamento. O resultado apresentado ao usuário é um gráfico que mostra a queda e retorno da [O2] em relação a uma linha de base que representa a pressão encontrada normalmente no ar (~21%). O consumo de oxigênio é obtido pela integral da área sob a curva, corrigida pelo fluxo de ar e tempo de fechamento imediatamente antes da leitura.

A função, além de realizar a conversão de consumo, plota os dados em um gráfico xy do consumo de oxigênio em relação à massa do indivíduo.

Comentários

Paulo
  1. Idéia legal e desafiadora. So este básico já me parece dar um bom trabalho final.
  2. O aparelho te retorna um gráfico, mas o que o R precisa são dos dados. Se é isto, vc terá uma série de valores de consumo, cada um pareado com um valor de base é isto?
  3. Você sabe qual é método para o cálculo da integral? Se for analítico é simples implementar no R, basta fazer a função da equação. Se for algo numérico, não sei como fazer, mas como a pergunta no R é sempre “como se faz” e não “dá para fazer” é uma questão de procurar.

Recado

Tati

Fiz a primeira parte da função: executar as contas e controles de unidades (função “consumo.uni.r”) Estou implementando a mesma função para ser executada em uma tabela com duas colunas: massa e integral. E falta o gráfico também (função “consumo.mult.r”) Não vai dar tempo de fazer a fase III: implementar médias móveis, médias a cada intervalo de tempo, gráficos de consumo para vários dias, em sequencia. Mas continuarei mesmo depois de terminada a disciplina.8-)

Plano B

Se a proposta for simples para servir como avaliação da disciplina, gostaria de incluir cálculos de escopo (diferença entre o menor e o maior consumo de oxigênio), máximo e mínimo. Talvez incluir ajuste de da curva de registro através de médias móveis.

Comentários

Paulo

Engraçado, esta parte me parece mais fácil de implementar, e só isto já daria um belo trabalho final também. Mas minha dúvida é apenas pq não ficou muito claro como vc vai calcular a integral. Se isto for simples, qualquer uma das duas propostas está ótima. Claro, as duas juntas seria melhor ainda :-)

Tati

o programa do equipamento “cospe” o valor da integral já :-), ou seja, não é tão difícil de fazer. A vantagem de usar o R é dar um jeito das pessoas não errarem tanto nas contas e unidades. Pretendo colocar recadinhos do tipo “qual a unidade de tempo vc está usando? segundos ou minutos”, coisas assim. Esse tipo de problema acontece o tempo todo no labs. Sinto também que os cálculos e gráficos ficam mais fáceis de fazer no R. Correções alométricas etc. Na verdade, pretendo fazer tanto o plano A quanto o plano B em algum momento esse ano. Só não acho que tenho habilidade para terminar tudo para a prova :P Ainda não achei um pacote que contenha essas análises (mas pode ser simples imperícia de busca minha he he he). Achei uma chamada “Metabonomic”, mas olhando meio por alto, não parece ser o que preciso. Nem preciso dizer que estou adorando o potencial do R (potencial pq só vou adorar o R quando conseguir fazer as coisas kkkk). Já andei divulgando os tutoriais do curso por aí! Vamos dominar o mundo :-) Obrigada pelos comentários Paulo.

Função 1 - consumo.uni.r

Fiz essa função mais simplezinha como preparativo da função 2, mais complexa.

Página de ajuda

consumo.uni.r                package:nenhum                R Documentation





Cálculo do consumo de oxigênio obtido através de respirometria fechada




Description:

Calcula e corrige unidades de valores de consumo obtidos em equipamento respirométrico.

Usage:

consumo.uni(x,massa,fluxo,tempo,unidd.massa,unidd.tempo)



Arguments:

x:  Vetor numérico. Cálculo da área (integral) sob a curva de queda e retorno às concentrações de
oxigênio à linha de base (concentrações do ar atmosférico) obtida com o equipamento respirométrico.
Unidade mLO2*minuto.

massa:  Vetor numérico. Massa do organismo medido com o equipamento respirométrico. O padrão é grama.

fluxo:  Numérico. Fluxo de ar usado para realizar a medição. Necessário usar o padrão mL por minuto.

tempo:  Numérico. Tempo em que a câmara respirométrica permaneceu fechada e à qual corresponde a medida
de consumo de oxigênio. O padrão é hora.

unidd.massa:  Caracter. A unidade usada pode ser "miligramas","gramas" e "quilogramas", o resultado é
sempre em grama. Se preferir usar outra unidade que não seja grama, use a opção "outra".

unidd.tempo:  Caracter. A unidade usada pode ser "segundo", "minuto" e "hora", o resultado é sempre em
hora. Se preferir usar outra unidade que não seja hora, use a opção "outra".



Details:

Transforma os dados brutos obtidos através de respirometria fechada ou intermitente em dados de consumo
de oxigênio. Os valores geralmente são fornecidos como uma curva de queda e retorno das concentrações de
oxigênio tendo como linha de base as concentrações encontradas no ar atmosférico. A partir da integral
da área do gráfico resultante do registro obtêm-se o oxigênio consumido no período em que a câmara
permaneceu fechada. A função corrige esse valor pelo fluxo e tempo de fechamento fornecendo a medida de
consumo de oxigênio.



Value:

     Apresenta na tela uma tabela com a massa do indivíduo, o consumo de oxigênio corrigido e as unidades
finais da conversão.

Obs : função para cálculos de somente 1 medida por vez. Para cálculos de vetores vide consumo.mult().

  massa : a mesma massa fornecida como argumento da função.

  em : unidade da massa.

  consumo.O2 : valor do consumo transformado conforme unidades determinadas.

  por : unidade final do consumo calculado.



Warning:

Cuidado com as unidades usadas nos cálculos. Ao usar a opção "outra" nos argumentos de unidd.massa
e unidd.tempo, preste muita atenção na unidade resultante.



Author(s):

     Tatiana Hideko Kawamoto
     th.kawamoto@gmail.com

References:

     Chaui-Berlink,J.G. & Bicudo,J.E.P.W. (2006) Respirometria, a técnica, Livraria Santos Editora
ISBN 85-7288-576-5

See Also:

     consumo.mult()

Examples:

   consumo.uni(-0.01288103,0.2,200,1)

   consumo.uni(-0.01288103,0.2,200,1,unidd.tempo="outra",unidd.massa="quilogramas")

   consumo.uni(-0.01288103,0.1,150,3,unidd.tempo="outra",unidd.massa="quilogramas")

Código da Função 1

#1ªsituação: medidas isoladas de consumo.
consumo.uni<-function(x,massa,fluxo,tempo,unidd.massa="gramas",unidd.tempo="hora")
{
	{
	resultado<-matrix(rep(NA,4),nrow=1,ncol=4)
		rownames(resultado)<- rownames(x)
		colnames(resultado)<- c("massa","em","consumo.O2","por")
	{
	consumo.default=(((abs(x))*fluxo)/(tempo*100))/massa #o valor da integral geralmente é negativo por simples convenção para medidas de consumo.
	{
	if(unidd.massa=="gramas"& unidd.tempo=="hora")
		{
		consumo=consumo.default
		resultado[1,1]<-massa
		resultado[1,2]<-unidd.massa
		resultado[1,3]<-consumo
		resultado[1,3]<-paste("hora e gramas")
		}
	if(unidd.tempo=="hora")
		{
		consumo.tmp=consumo.default
		}
	if(unidd.tempo=="minuto")
		{
		consumo.tmp=consumo.default*60
		}
	if(unidd.tempo=="segundo")
		{
		consumo.tmp=consumo.default*360
		}
	if(unidd.tempo=="outra")
		{
		consumo.tmp=consumo.default
		cat("\t","AVISO: as unidades PADRÂO são tempo em horas e fluxo em mL por minuto. Nessa opção as unidades não são corrigidas. PRESTE ATENÇÃO NAS UNIDADES que usou nos argumentos!\n")
		}
	if(unidd.massa=="gramas")
		{
		consumo=consumo.tmp
		}
	if(unidd.massa=="miligramas")
		{
		consumo=consumo.tmp*1000
		}
	if(unidd.massa=="quilogramas")
		{
		consumo=consumo.tmp/1000
		}
	if(unidd.massa=="outra")
		{
		consumo=consumo.tmp
		cat("\t","AVISO: a unidade PADRÂO de massa é gramas. Nessa opção as unidades não são corrigidas. PRESTE ATENÇÃO NAS UNIDADES que usou nos argumentos!\n")
		}
	resultado[1,1]<-massa
	resultado[1,2]<-unidd.massa
	resultado[1,3]<-consumo
	resultado[1,4]<-paste(unidd.tempo,"e",unidd.massa)
	}}}
return(resultado)
}

Arquivo da função

Função 2 - consumo.mult.r

Fiz essa função mais útil para calcular lista de valores em uma tabela com 2 colunas.

Página de ajuda

consumo.mult.r                package:nenhum                R Documentation





Cálculo do consumo de oxigênio obtido através de respirometria fechada para vários
indivíduos, ou vários tempos do mesmo indivíduo (intermitente).




Description:

Calcula e corrige unidades de valores de consumo obtidos em equipamento respirométrico.
Faz um gráfico xy para os valores obtidos em função da massa, e outro gráfico xlog-ylog,
para uma primeira análise visual dos dados.



Usage:

consumo.mult(x,fluxo,tempo,unidd.massa,unidd.tempo)



Arguments:

x:  data.frame ou matriz numérica. Primeira coluna com a massa dos organismos.O padrão é
gramas. Segunda coluna com o cálculo da área (integral) sob a curva de queda e retorno às
concentrações de oxigênio à linha de base (concentrações do ar atmosférico) obtida com o
equipamento respirométrico. Unidade mLO2*minuto.

fluxo:  numérico. Fluxo de ar usado para realizar a medição. Necessário usar o padrão mL por minuto.

tempo:  numérico. Tempo em que a câmara respirométrica permaneceu fechada e à qual corresponde
a medida de consumo de oxigênio. O padrão é hora.

unidd.massa:  Caracter. A unidade usada pode ser "miligramas","gramas" e "quilogramas", o resultado
é sempre em grama. Se preferir usar outra unidade que não seja grama, use a opção "outra".

unidd.tempo:  Caracter. A unidade usada pode ser "segundo", "minuto" e "hora", o resultado é
sempre em hora. Se preferir usar outra unidade que não seja hora, use a opção "outra".



Details:

Transforma os dados brutos obtidos através de respirometria fechada ou intermitente em
dados de consumo de oxigênio. Os valores geralmente são fornecidos como uma curva de queda
e retorno das concentrações de oxigênio tendo como linha de base as concentrações encontradas
no ar atmosférico. A partir da integral da área do gráfico resultante do registro obtêm-se
o oxigênio consumido no período em que a câmara permaneceu fechada. A função corrige esse
valor pelo fluxo e tempo de fechamento fornecendo a medida de consumo de oxigênio. Quando
há mais de um organismo medido, a função plota o resultado em um gráfico de regressão do
consumo por massa no animal.



Value:

     Apresenta na tela uma tabela com a massa dos indivíduos, ou do mesmo indivíduo nos
diferentes tempos na primeira coluna e o consumo de oxigênio corrigido na segunda coluna.
Apresenta também as unidades finais da conversão.

Obs : Cálculos de vetores. Para conversões simples e rápidas use também o consumo.uni()

  título : unidade final do consumo calculado.

  massa : a mesma massa fornecida como argumento da função.

  consumo.O2 : valor do consumo transformado conforme unidades determinadas.



Warning:

Cuidado com as unidades usadas nos cálculos. Ao usar a opção "outra" nos argumentos de
unidd.massa e unidd.tempo, preste muita atenção na unidade resultante.

Os dados da tabela de entrada precisam estar organizados com os valores de massa na
1ªcoluna e o valor da integral obtido no equipamento na 2ªcoluna.


Author(s):

     Tatiana Hideko Kawamoto
     th.kawamoto@gmail.com

References:

     Chaui-Berlink,J.G. & Bicudo,J.E.P.W. (2006) Respirometria, a técnica, Livraria
Santos Editora ISBN 85-7288-576-5

See Also:

     consumo.uni() # para cálculos mais rápidos de valores únicos.

Examples:

   massa<-c(0.2000,0.1642,0.2154)
   integral<-(-0.01288103,-0.009742808,-0.005112421)
   respiro<-cbind(massa,integral)

   consumo.mult(respiro,200,1)

   consumo.mult(respiro,200,1,unidd.tempo="outra",unidd.massa="quilogramas")

   consumo.mult(respiro,150,3,unidd.tempo="outra",unidd.massa="miligramas")

Código da Função 2

 #2ªsituação: medidas isoladas de consumo de vários indivíduos ou várias medidas do mesmo indivíduo.
 consumo.mult<-function(x,fluxo,tempo,unidd.massa="gramas",unidd.tempo="hora")# x é uma tabela com 2 colunas (massa e consumo)
 {
 resultado<-matrix(rep(NA,dim(x)[1]*2),ncol=2)
 rownames(resultado)<-rownames(x)
 colnames(resultado)<-paste(c("consumo","massa"))
 cat("\t","mL O2 por",unidd.tempo,"e",unidd.massa,"\n")
    for(i in 1:dim(x)[1])
{
consumo.default=(((abs(x[i,2])*fluxo)/(tempo*100))/x[i,1])
if(unidd.massa=="gramas"&unidd.tempo=="hora")
	{
	consumo=consumo.default
	}
if(unidd.tempo=="minuto")
	{
	consumo.tmp=consumo.default*60
	}
if(unidd.tempo=="segundo")
	{
	consumo.tmp=consumo.default*360
	}
if(unidd.tempo=="outra")
	{
	consumo.tmp=consumo.default
	cat("\t","AVISO: as unidades PADRÂO são tempo em horas e fluxo em mL por minuto. Nessa opção as unidades não são corrigidas. PRESTE ATENÇÃO NAS UNIDADES que usou nos argumentos!\n")
	}
if(unidd.massa=="miligramas")
	{
	consumo=consumo.tmp*1000
	}
if(unidd.massa=="quilogramas")
	{
	consumo=consumo.tmp/1000
	}
if(unidd.massa=="outra")
	{
	consumo=consumo.tmp
	cat("\t","AVISO: a unidade PADRÂO de massa é gramas. Nessa opção as unidades não são corrigidas. PRESTE ATENÇÃO NAS UNIDADES que usou nos argumentos!\n")
	}
consumo=consumo.default
resultado[i,2]<-consumo
resultado[i,1]<-x[i,1]
}
 write.table(resultado,file="consumos.mult.csv",sep=",",col.names=NA)
 par(mfrow=c(1,2))
 plot(y=resultado[,1],x=resultado[,2],cex.lab=0.6,cex.main=0.8,tck=0.02,xlab=paste("massa (",unidd.massa,")"),ylab=paste("consumo","(mLO2 por",unidd.tempo,"e",unidd.massa,")"), main="consumo por massa")
 plot(y=resultado[,1],x=resultado[,2],cex.lab=0.6,cex.main=0.8,tck=0.02,xlab=paste("Log da massa","(",unidd.massa,")"),ylab=paste("Log do consumo","(mLO2 por",unidd.tempo,"e",unidd.massa,")"), main="Log consumo por  Log massa", log="xy")
 return(resultado)
 }

Arquivo da Função 2

05_curso_antigo/alunos/trabalho_final/tatianak.txt · Última modificação: 2020/08/12 06:04 (edição externa)