\documentclass[a4paper, oneside, 10pt]{article}
\usepackage[english]{babel}
\usepackage[unicode]{hyperref}
\usepackage[utf8x]{inputenc}
\usepackage{listings}
\usepackage{graphicx}
\graphicspath{{media/}}
\date{\today}
\title{}
\author{}
\begin{document}



\section{\texorpdfstring{Raquel Gardini Sanches Palasio}{Raquel Gardini Sanches Palasio}}
\label{sec:raquel_gardini_sanches_palasio}


\includegraphics[keepaspectratio=true,width=0.8\textwidth]{bie5782/01_curso_atual/alunos/trabalho_final/raquelpalasio/raquel_palasio}


Bióloga, Doutoranda em Epidemiologia, Faculdade de Saúde Publica, USP

Título da tese: Padrão de distribuição da diversidade genética molecular e espacial de \emph{Biomphalaria}
e sua relação com a ocorrência da esquistossomose, região do médio Paranapanema, Estado de São Paulo. 

Orientada pelo Prof Dr. Francisco Chiaravalloti Neto e pela pesquisadora da Sucen Dr. Roseli Tuan.

Meus 

\section{\texorpdfstring{Proposta de Trabalho Final}{Proposta de Trabalho Final}}
\label{sec:proposta_de_trabalho_final}


\subsection{\texorpdfstring{Proposta A}{Proposta A}}
\label{sec:proposta_a}


Uma função irá organizar sequência(s) nucleotídica(s) e as informações destas em um arquivo \emph{.txt} selecionado a partir de uma pasta do computador do usuário.

\paragraph{\texorpdfstring{Objetos e argumentos de entrada e saída}{Objetos e argumentos de entrada e saida}}
\label{sec:objetos_e_argumentos_de_entrada_e_saida}


As opções de entrada conteriam um vetor, com os códigos das sequências que queira selecionar e a pasta onde as mesmas estarão. Estas devem estar em formato \emph{.fasta} com o mesmo nome ou parte do nome da sequência 
dada no vetor. E uma \emph{.data.frame} com as informações da espécie, localidade, data da coleta e coordenadas nas colunas, uma delas com os mesmos códigos das sequências, não precisando ser do mesmo tamanho que o vetor.

A função retornaria um arquivo \emph{.txt}, como abaixo: 

,,\textgreater 766\_Bg\_Our [organism=Biomphalaria glabrata] cytochrome oxidase subunit I (COI) gene, partial sequence; mitochondrial [Specimen Voucher=LBMSU766] [country=Brazil: Sao Paulo:  Ourinhos: Corrego Christoni] [collection date= jun, 2015] [Lat-Lon=-22.967361,-49.874194]"
TTATCATTATTGATTCGTTTGGAGCTTGGTACTACTC....

,,\textgreater 788\_Bg\_Our [organ...."

\url{https://www.ncbi.nlm.nih.gov/WebSub/html/help/fasta.html}

Para isso pretendo usar o pacote pegas que tem a função read.dna para ler os arquivo fastas. A função list.file e grep, para encontrar a pasta e selecionar o arquivo com parte do nome. 
Pensei em dar uma opção de qual gene irá aparecer no arquivo final se a pessoa não escrever nada (seria gene=,,COI" : cytochrome oxidase subunit I (COI) gene, partial sequence; mitochondrial) ou na entrada terá que ser escrito.

\subsubsection{\texorpdfstring{Uso da função}{Uso da funao}}
\label{sec:uso_da_funao}


O arquivo que a função retornará poderá ser utilizado para ajudar a depositar as sequências em um banco de dados como o NCBI-GenBank. Pois neste formato o banco de dados lê automaticamente, e você não precisará adicionar as informações uma a uma, poupando tempo. 
E mesmo para arrumar os arquivos \emph{fasta} irá ajudar, bastando colocar todas as sequências em uma pasta e um arquivo com todas essas informações. E com essa função é possível selecionar apenas algumas sequências de interesse de forma mais simples.

\subsection{\texorpdfstring{Proposta B}{Proposta B}}
\label{sec:proposta_b}


Uma função irá procurar a temperatura ou precipitação etc... de um data frame para outro. E fazer uma regressão linear. A função retornará um plot e os coeficientes da regressão.

\paragraph{\texorpdfstring{Objetos e argumentos de entrada e saída}{Objetos e argumentos de entrada e saida}}
\label{sec:objetos_e_argumentos_de_entrada_e_saida2}


Para isso o usuário deve fornecer dois arquivos de entrada, ambos \emph{data.frame}, não precisa ser de mesmo tamanho.
Um com os dados observados com as datas das coletas nas colunas e outro \emph{data.frame} com dados climáticos com datas e variáveis preditoras nas colunas. Ex. temperatura ou precipitação. O usuário deverá informar qual coluna e a variável que será estudada.

Para isso pretendo em usar a função merge, para selecionar os dados de uma planilha para outra. 

Pensei em adicionar na função a espécie e com isso fazer um plot para cada espécie com a linha da regressão, coeficiente de cada e o p-valor, e retornando uma tabela com esses valores.

\subsubsection{\texorpdfstring{Uso da função}{Uso da funao}}
\label{sec:uso_da_funao2}


A possibilidade de fazer uma regressão com temperatura ou outra variável de um banco de dados externo confiável.
Em casos que não foi feito a medição na hora da coleta. Também podem ser utilizadas outras variáveis preditoras como média de precipitação etc.
Exemplo: Tenho os dados da quantidade de certa espécie coletada em determinada data. 
Com isso consigo achar a temperatura daquele dia ou do mês. Com dados previamente baixado de um site meteorológico. 
Para isso, não preciso encontrar uma a uma, mas a função me retornará todas de uma vez, e também fará uma regressão para ver se há relação entre as variáveis.

Oi Raquel, 

achei sua proposta A muito boa, e parece que vc já sabe como prosseguir, então manda bala.
Não se esqueça de colocar no help um exemplo que rode, caso o exemplo precise de arquivos, coloque algum arquivo de exemplo acompanhando sua função pra gente conseguir conferir se ela roda.

----\emph{\href{mailto:gruingas@gmail.com}{Danilo G Muniz}}

\section{\texorpdfstring{Trabalho Final - Proposta A}{Trabalho Final  Proposta A}}
\label{sec:trabalho_final__proposta_a}


\subsubsection{\texorpdfstring{Função genbank}{Funao genbank}}
\label{sec:funao_genbank}
\lstset{frame=single}
\begin{lstlisting}
 genbank <- function(x, pasta, gene, primer, n, organism=NULL, voucher=NULL, country=NULL, state=NULL, municipio=NULL, local=NULL, collection_date=NULL, Lat=NULL, Lon=NULL)
{
  require(pegas) ### tem a função read.dna, precisa estar instalado antes
  library(pegas) ### carregar o pacote
  
  list<- list.files( pasta, pattern= primer) ## lista na minha pasta os arquivos com uma certa palavra, que aqui e o primer.
  
  
  #### conferir se ha arquivo fasta com o nome de x
  
  for (i in 1:length(x))
  {
    seq <- grep (c(x[i]), list)
    
    if(length(seq)==0)
    {stop("Na pasta informada esta faltando arquivo com os valores de x= ", x[i] )
    }
    else{
      
      for (i in 1:length(x))
      {
        seq <- list[grep(c(x[i]), list)] 
        conferir <- seq[grep("fasta", seq)]
        if(length(conferir)==0)
        {stop("Na pasta informada esta faltando arquivo no formato fasta, com os valores de x= ", x[i] )
        }
      }
    }
  }

  #### etapa para conferir se na minha pasta tem os aquivos que preciso para a função
  arquivo <- list[grep("fasta", list)] ### lista os arquivos com fasta, no aquivo nomeado list 
  
  if(length(arquivo)<length(x))  ### se o tamanho do arquivo for menor que a quantidade x a função para
  {
    falta <- length(x)-length(arquivo)
    stop("Na pasta informada esta faltando ", falta," arquivo fasta, tem ", length(x), " de valor de entrada e ", length(list), " arquivos fasta") ### para a função caso esteja faltando fasta na pasta
  }
  ### começando a função
  
  results <- rep(NA,length(x)) ## arquivos vazios para rodar o for 
  name <- rep(NA,length(x))
  dado <- rep(NA,length(x))
  
  for (i in 1:length(x))
  {
    seq <- list[grep(c(x[i]), list)] #### procurar no vetor list ( com a função grep), os valores de x
    fasta <- seq[grep("fasta", seq)] #### procurar no vetor seq, os valores com fasta no nome
    pop <-read.dna(fasta, format="fasta")  ### ler a sequencia em formato fasta com o nome selecionado
    y <- paste(pop, collapse = "") #### juntar todas as bases hidrogenadas em um único carácter
    results[i] <- y   #### colocar as sequencias no vetor results
    
    name[i] <- paste(">",x[i], collapse = "", sep="") ### adicionar o nome da sequencia, preciso do ">", para a saida ser um formato fasta, e mais o valor do x de cada sequencia
    dado<-   strwrap(paste(name, results)) ### juntar o nome e a sequencia, separando-os por um quebra linha por isso que usei a função strwrap, necessário para manter o formato fasta 
    
    }
  
  ### gene COI
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon) & is.null(collection_date) & is.null(state) & is.null(country)& is.null(organism)) ### para dados faltantes
    
  {if(gene=="COI") ### selecionar o gene COI
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," cytochrome oxidase subunit I (COI) gene, partial sequence;mitochondrial", collapse = "", sep="") ### substituir o nome que tenha o mesmo valor de x, com mais informações, no caso apenas que e COI
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com o nome COI_result, do gene COI") ### informar que foi salvo o arquivo com n sequencias
    return( write(dado, file="COI_result.txt")) } ### salvar um arquivo txt na pasta do Working Directory do R
  }
  
  #### Fiz o "if" para as possibilidade da dados faltantes e um com todas as informações que pode ter a função: especie, localidade, lat-long etc...., e depois fiz o mesmo para o gene 16s, e um com um outro gene que o usuário queira colocar, com suas possibilidades de informações de entrada.
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon) & is.null(collection_date) & is.null(state) & is.null(country)) ### para dados faltantes
    
  {if(gene=="COI")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," cytochrome oxidase subunit I (COI) gene, partial sequence;mitochondrial", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com o nome COI_result, com a especie, do gene COI")
    return( write(dado, file="COI_result.txt")) } 
  }
  
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon) & is.null(collection_date) & is.null(state)) ### para dados faltantes
    
  {if(gene=="COI")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," cytochrome oxidase subunit I (COI) gene, partial sequence;mitochondrial", " [country=", country[n==x[i]],"]" , collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com o nome COI_result, com a especie e pais, do gene COI")
    return( write(dado, file="COI_result.txt")) } 
  }
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon) & is.null(collection_date)) ### para dados faltantes
    
  {if(gene=="COI")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," cytochrome oxidase subunit I (COI) gene, partial sequence;mitochondrial", " [country=", country[n==x[i]],":",state[n==x[i]],"]" , collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com o nome COI_result, com a espécie, pais e estado, do gene COI")
    return( write(dado, file="COI_result.txt")) } 
  }
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon)) ### para dados faltantes
    
  {if(gene=="COI")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," cytochrome oxidase subunit I (COI) gene, partial sequence;mitochondrial", " [country=", country[n==x[i]],":",state[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com o nome COI_result, com nome da especie, pais e data de coleta, do gene COI")
    return( write(dado, file="COI_result.txt")) } 
  }
  if(is.null(voucher)& is.null(local) & is.null(Lat) & is.null(Lon)) ### para dado faltante
    
  {if(gene=="COI")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," cytochrome oxidase subunit I (COI) gene, partial sequence;mitochondrial", " [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, com o nome COI_result, com nome da especie, pais, município e data de coleta, do gene COI")
    return( write(dado, file="COI_result.txt")) } 
  }
  
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)) ### para dados faltantes
    
  {if(gene=="COI")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," cytochrome oxidase subunit I (COI) gene, partial sequence;mitochondrial", " [country=", country[n==x[i]],":",state[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", " [Lat-Lon=", Lat[n==x[i]], ",", Lon[n==x[i]],  "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, sem Voucher, município e local, do gene COI")
    return( write(dado, file="COI_result.txt")) } 
  }
  
  if(is.null(voucher) & is.null(local)) ### para dados faltantes
    
  {if(gene=="COI")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," cytochrome oxidase subunit I (COI) gene, partial sequence;mitochondrial", " [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", " [Lat-Lon=", Lat[n==x[i]], ",", Lon[n==x[i]],  "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, sem Voucher e local, do gene COI")
    return( write(dado, file="COI_result.txt")) } 
  }
  
  if(is.null(voucher) & is.null(Lat) & is.null(Lon)) ### para dado faltante
    
  {if(gene=="COI")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," cytochrome oxidase subunit I (COI) gene, partial sequence;mitochondrial", " [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]],":", local[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, sem Voucher e latitude e longitude, do gene COI")
    return( write(dado, file="COI_result.txt")) } 
  }
  if(is.null(voucher)) ### para dados faltantes
  {if(gene=="COI")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," cytochrome oxidase subunit I (COI) gene, partial sequence;mitochondrial", " [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]], ":", local[n==x[i]], "]" , " [collection date=",collection_date[n==x[i]], "]", " [Lat-Lon=", Lat[n==x[i]], ",", Lon[n==x[i]],  "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, sem Voucher, do gene COI")
    return( write(dado, file="COI_result.txt")) } 
  }
  
  
  #### PARA TODOS OS CAMPOS
  else
  {
    if(gene=="COI")
      
      
    {for (i in 1:length(x))
    {
      dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," cytochrome oxidase subunit I (COI) gene, partial sequence;mitochondrial"," [Specimen Voucher=", voucher[n==x[i]], "]"," [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]], ":", local[n==x[i]], "]" , " [collection date=",collection_date[n==x[i]], "]", " [Lat-Lon=", Lat[n==x[i]], ",", Lon[n==x[i]],  "]", collapse = "", sep="") 
      
    }
      cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, do gene COI")
      return( write(dado, file="COI_result.txt")) } 
  }
  
  #### 16S ####
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon) & is.null(collection_date) & is.null(state) & is.null(country)& is.null(organism)) ### para dados faltantes
    
  {if(gene=="16S")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," 16S ribosomal RNA gene, partial sequence; mitochondrial", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com o nome 16S_result, do gene 16S")
    return( write(dado, file="16S_result.txt")) } 
  }
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon) & is.null(collection_date) & is.null(state) & is.null(country)) ### para dados faltantes
    
  {if(gene=="16S")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," 16S ribosomal RNA gene, partial sequence; mitochondrial", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com o nome 16S_result, com a especie, do gene 16S")
    return( write(dado, file="16S_result.txt")) } 
  }
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon) & is.null(collection_date) & is.null(state)) ### para dados faltantes
    
  {if(gene=="16S")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," 16S ribosomal RNA gene, partial sequence; mitochondrial", " [country=", country[n==x[i]],"]" , collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua area de trabalho com o nome 16S_result, com a especie e pais, do gene 16S")
    return( write(dado, file="16S_result.txt")) } 
  }
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon) & is.null(collection_date)) ### para dados faltantes
    
  {if(gene=="16S")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," 16S ribosomal RNA gene, partial sequence; mitochondrial", " [country=", country[n==x[i]],":",state[n==x[i]],"]" , collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com o nome 16S_result, com a especie, pais e estado, do gene 16S")
    return( write(dado, file="16S_result.txt")) } 
  }
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon)) ### para dado faltante
    
  {if(gene=="16S")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," 16S ribosomal RNA gene, partial sequence; mitochondrial", " [country=", country[n==x[i]],":",state[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com o nome 16S_result, com nome da especie, pais e data de coleta, do gene 16S")
    return( write(dado, file="16S_result.txt")) } 
  }
  if(is.null(voucher)& is.null(local) & is.null(Lat) & is.null(Lon)) ### para dado faltante
    
  {if(gene=="16S")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," 16S ribosomal RNA gene, partial sequence; mitochondrial", " [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, com o nome 16S_result, com nome da especie, pais, municipio e data de coleta, do gene 16S")
    return( write(dado, file="16S_result.txt")) } 
  }
  
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)) ### para dados faltantes
    
  {if(gene=="16S")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," 16S ribosomal RNA gene, partial sequence; mitochondrial", " [country=", country[n==x[i]],":",state[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", " [Lat-Lon=", Lat[n==x[i]], ",", Lon[n==x[i]],  "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, sem Voucher, município e local, do gene 16S")
    return( write(dado, file="16S_result.txt")) } 
  }
  
  if(is.null(voucher) & is.null(local)) ### para dado faltante
    
  {if(gene=="16S")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," 16S ribosomal RNA gene, partial sequence; mitochondrial", " [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", " [Lat-Lon=", Lat[n==x[i]], ",", Lon[n==x[i]],  "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, sem Voucher e local, do gene 16S")
    return( write(dado, file="16S_result.txt")) } 
  }
  
  if(is.null(voucher) & is.null(Lat) & is.null(Lon)) ### para dados faltantes
    
  {if(gene=="16S")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," 16S ribosomal RNA gene, partial sequence; mitochondrial", " [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]],":", local[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, sem Voucher e latitude e longitude, do gene 16S")
    return( write(dado, file="16S_result.txt")) } 
  }
  if(is.null(voucher))
  {
    if(gene=="16S")
      
    {for (i in 1:length(x))
    {
      dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," 16S ribosomal RNA gene, partial sequence; mitochondrial"," [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]], ":", local[n==x[i]], "]" , " [collection date=",collection_date[n==x[i]], "]", " [Lat-Lon=", Lat[n==x[i]], ",", Lon[n==x[i]],  "]", collapse = "", sep="") 
      
    }
      cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, sem Voucher do gene 16S")
      return( write(dado, file="16S_result.txt")) } 
    
  }
  
  
  ### tudo 
  if(gene=="16S")
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]"," 16S ribosomal RNA gene, partial sequence; mitochondrial"," [Specimen Voucher=", voucher[n==x[i]], "]"," [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]], ":", local[n==x[i]], "]" , " [collection date=",collection_date[n==x[i]], "]", " [Lat-Lon=", Lat[n==x[i]], ",", Lon[n==x[i]],  "]", collapse = "", sep="") 
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, do gene 16S")
    return( write(dado, file="16S_result.txt")) } 
  
  #### outro gene
  
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon) & is.null(collection_date) & is.null(state) & is.null(country) & is.null(organism)) ### para dado faltante
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i],gene, collapse = "", sep="")
  }
    
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, do gene", gene)
    
    return( write(dado, file="result.txt"))  }
  
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon) & is.null(collection_date) & is.null(state) & is.null(country)) ### para dado faltante
    
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]",gene , collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com o nome result, com a especie, do", gene)
    return( write(dado, file="result.txt")) } 
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon) & is.null(collection_date) & is.null(state)) ### para dados faltantes
    
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]",gene , " [country=", country[n==x[i]],"]" , collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com a especie e pais, do gene", gene )
    return( write(dado, file="result.txt")) } 
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon) & is.null(collection_date)) ### para dados faltantes
    
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]",gene , " [country=", country[n==x[i]],":",state[n==x[i]],"]" , collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com a especie, pais e estado, do gene", gene )
    return( write(dado, file="result.txt")) } 
  
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)& is.null(Lat) & is.null(Lon)) ### para dado faltante
    
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]",gene , " [country=", country[n==x[i]],":",state[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com nome da especie, pais e data de coleta, do gene", gene )
    return( write(dado, file="result.txt")) } 
  
  
  if(is.null(voucher)& is.null(local) & is.null(Lat) & is.null(Lon)) ### para dado faltante
    
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]",gene , " [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho com nome da especie, pais, município e data de coleta, do gene", gene )
    return( write(dado, file="result.txt")) } 
  
  
  
  if(is.null(voucher) & is.null(municipio) & is.null(local)) ### para dado faltante
    
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]",gene , " [country=", country[n==x[i]],":",state[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", " [Lat-Lon=", Lat[n==x[i]], ",", Lon[n==x[i]],  "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, sem Voucher, município e local, do gene", gene )
    return( write(dado, file="result.txt")) } 
  
  
  if(is.null(voucher) & is.null(local)) ### para dado faltante
    
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]",gene , " [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", " [Lat-Lon=", Lat[n==x[i]], ",", Lon[n==x[i]],  "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua area de trabalho, sem Voucher e local, do gene", gene)
    return( write(dado, file="result.txt")) } 
  
  
  if(is.null(voucher) & is.null(Lat) & is.null(Lon)) ### para dado faltante
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]",gene , " [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]],":", local[n==x[i]],"]" , " [collection date=",collection_date[n==x[i]], "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, sem Voucher e latitude e longitude, do gene", gene)
    return( write(dado, file="result.txt")) } 
  
  
  if(is.null(voucher))
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]",gene ," [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]], ":", local[n==x[i]], "]" , " [collection date=",collection_date[n==x[i]], "]", " [Lat-Lon=", Lat[n==x[i]], ",", Lon[n==x[i]],  "]", collapse = "", sep="") 
    
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, sem Voucher do gene", gene)
    return( write(dado, file="result.txt")) } 
  
  
  ### todas as informações disponíveis em outro gene, informado pelo usuário
  else
    
  {for (i in 1:length(x))
  {
    dado[grep(c(x[i]), dado)] <-  paste(">",x[i]," [organism=", organism[n==x[i]], "]",gene ," [Specimen Voucher=", voucher[n==x[i]], "]"," [country=", country[n==x[i]],":",state[n==x[i]], ":", municipio[n==x[i]], ":", local[n==x[i]], "]" , " [collection date=",collection_date[n==x[i]], "]", " [Lat-Lon=", Lat[n==x[i]], ",", Lon[n==x[i]],  "]", collapse = "", sep="") 
  }
    cat("Foi salvo um arquivo txt com ", length(x), " sequencias, na sua área de trabalho, do gene", gene)
    return( write(dado, file="result.txt")) } 
  
}

 \end{lstlisting}



\subsubsection{\texorpdfstring{Help da função genbank}{Help da funao genbank}}
\label{sec:help_da_funao_genbank}
\lstset{frame=single}
\begin{lstlisting}

genbank                package:unknown                R Documentation

                    
  Função ira a organizar a(s) sequencia(s) nucleotídica(s) de uma pasta do usuário e adicionara as informações como especie, localidade, data da coleta e coordenadas em um arquivo txt. 
  
  Description:
    O arquivo que a função retorna estará com o formato para depositar as sequências em um banco de dados como o NCBI, GenBank. A função seleciona a pasta do usuário e encontra os arquivos com o nome do vetor que o usuário forneceu de entrada, com os códigos das sequencia(s) que queira selecionar. Esta(s) devem estar em formato fasta com o mesmo nome ou parte do nome da sequencia dada no vetor. E uma data.frame com as informações da especie, localidade, data da coleta e coordenadas nas colunas, com uma coluna com os mesmo códigos da sequencia, estes não precisam ser do mesmo tamanho que o vetor. 
    
    
  Usage:
  
  genbank <- function(x, pasta, gene, primer, n, organism=NULL, voucher=NULL, country=NULL, state=NULL, municipio=NULL, local=NULL, collection_date=NULL, Lat=NULL, Lon=NULL)
 
  
  Arguments:
  
    x                vetor com o códigos das sequencias (Ver detalhe)
    pasta            pasta onde estão as sequências fasta
    gene             gene da sequencias, como padrão pode ser COI, 16S, mas pode ser qualquer outro
    primer           fowrd ou o reverso (Ver detalhe)
    n                coluna do data.frame, que corresponde o mesmo numero de x.
    organism         coluna do data.frame como a especie 
    voucher          coluna do data.frame como a identificação do voucher
    country          coluna do data.frame como o pais de coleta do organismo
    state            coluna do data.frame como o estado de coleta do organismo 
    municipio        coluna do data.frame como o município de coleta do organismo
    local            coluna do data.frame como o local de coleta do organismo (Ver detalhes)
    collection_date  coluna do data.frame como a data de coleta do organismo (Ver detalhes)
    Lat              coluna do data.frame como a latitude 
    Lon              coluna do data.frame como a longitude
    
    
  Details:
  
  o valor de x tem que corresponder o valor de n da coluna do data.frame
  primer tem que estar no nome da sequência fasta da pasta fornecida pelo usuário. Ex: 346_COI_HCO, primer=HCO do gene COI.
  o valor de n e uma coluna do data.frame que já deve esta aberto na área de trabalho do r.
  Local pode ser algo mais especifico, um córrego, rio, rua etc.... 
  Necessário estar instalado o pacote pegas.
  
  Value:
  
  O vetor x não precisa ter o mesmo tamanho que o n do data.frame.
  
  Se o gene=COI
  
  comp1 :   genbank(x,"C:/Curso R/seq", gene="COI", primer= "HCO", n=z$DNA), retorna uma arquivo txt com "cytochrome oxidase subunit I (COI) gene, partial sequence;mitochondrial"
  
  Se o gene=16S
  
  comp2 :  genbank(x,"C:/Curso R/seq", gene="16S", primer= "AR", n=z$DNA), retorna uma arquivo txt com "16S ribosomal RNA gene, partial sequence; mitochondrial"
  
  Se o gene= a outro fornecido pelo usuário.
  
  comp3 :  genbank(x2,"C:/Curso R/seq", gene=" ribosomal RNA gene, partial sequence; internal transcribed spacer 2 (ITS2)",primer= "ITTS2F")
  retorna uma arquivo txt com " ribosomal RNA gene, partial sequence; internal transcribed spacer 2 (ITS2)"


  Warning:
  
  Se não tiver na pasta um arquivo fasta com valor de x, a função para e retorna um mensagem do de erro com o valor 
  que esta faltando.
  se estiver faltando um arquivo fasta na pasta, a função para e da um aviso (Na pasta informada esta faltando n 
  arquivo fasta, tem n de valor de entrada e n arquivos fasta).
  

  Author(s):
  
  Raquel Gardini Sanches Palasio
  raquelpalasio@usp.br
  
  References:
  
  Paradis E. 2010. pegas: an R package for population genetics with an integrated-modular approach.
  Bioinformatics 26: 419-420. doi:10.1093/bioinformatics/btp696.
  https://www.ncbi.nlm.nih.gov/WebSub/html/help/fasta.html
  
  See Also:
  
  pegas, read.dna, list.files
  
  Examples:
    
  # carregar antes  
  
  x <- c(346, 491, 492, 493)
  x2 <- c(650, 651, 653, 655, 658, 659)
  z <- read.csv("exemplo.csv", header = T, sep= ";", dec = ".")### Esta no arquivo zip
  setwd("C:/Users/Raquel/Desktop/exemplo") # arquivo zip tem que ser descompactado dentro da pasta com nome exemplo 
  
  ### Com o Gene COI com todas as variáveis
  genbank(x,"C:/Users/Raquel/Desktop/exemplo", gene="COI", primer= "HCO", n=z$DNA, organism=z$Especie, voucher=z$N_LBMSU, country=z$Pais, state=z$Estado, municipio=z$Municipio, local=z$Local.de.coleta, collection_date=z$Data.de.coleta, Lat=z$Latitude, Lon=z$Longitude)
  
  ### Com o Gene 16S com todas as variáveis
  genbank(x2,"C:/Users/Raquel/Desktop/exemplo", gene="16S", primer= "AR", n=z$DNA, organism=z$Especie, voucher=z$N_LBMSU, country=z$Pais, state=z$Estado, municipio=z$Municipio, local=z$Local.de.coleta, collection_date=z$Data.de.coleta, Lat=z$Latitude, Lon=z$Longitude)
  
  ### Com outro gene com todas as variáveis, um valor de x
  genbank("650","C:/Users/Raquel/Desktop/exemplo", gene="ribosomal RNA gene, partial sequence; internal transcribed spacer 2 (ITS2)", primer= "AR", n=z$DNA, organism=z$Especie, voucher=z$N_LBMSU, country=z$Pais, state=z$Estado, municipio=z$Municipio, local=z$Local.de.coleta, collection_date=z$Data.de.coleta, Lat=z$Latitude, Lon=z$Longitude)
  
  ### apenas com a variável organism do Gene COI
  
  genbank(x,"C:/Users/Raquel/Desktop/exemplo", gene="COI", primer= "HCO", n=z$DNA, organism=z$Especie)
  
 
\end{lstlisting}



\subsubsection{\texorpdfstring{Arquivos para rodar o exemplo}{Arquivos para rodar o exemplo}}
\label{sec:arquivos_para_rodar_o_exemplo}


\href{media/bie5782/01_curso_atual/alunos/trabalho_final/raquelpalasio/exemplo.rar}{Pasta com exemplos}
\href{media/bie5782/01_curso_atual/alunos/trabalho_final/raquelpalasio/funcao_genbank_final.r}{Função genbank}\href{media/bie5782/01_curso_atual/alunos/trabalho_final/raquelpalasio/help_funcao_genbank.r}{Help da função
}

\end{document}
