====== Raquel Gardini Sanches Palasio ====== {{:bie5782:01_curso_atual:alunos:trabalho_final:raquelpalasio:raquel_palasio.png?200|}} 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 //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 [[.:exec]] ====== Proposta de Trabalho Final ====== ===== Proposta A ===== Uma função irá organizar sequência(s) nucleotídica(s) e as informações destas em um arquivo //.txt// selecionado a partir de uma pasta do computador do usuário. === Objetos e argumentos de entrada e saída === 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 //.fasta// com o mesmo nome ou parte do nome da sequência dada no vetor. E uma //.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 //.txt//, como abaixo: ">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.... ">788_Bg_Our [organ...." [[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. ==== Uso da função ==== 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 //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. ===== 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. === Objetos e argumentos de entrada e saída === Para isso o usuário deve fornecer dois arquivos de entrada, ambos //data.frame//, não precisa ser de mesmo tamanho. Um com os dados observados com as datas das coletas nas colunas e outro //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. ==== Uso da função ==== 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. ----//[[gruingas@gmail.com|Danilo G Muniz]]// ====== Trabalho Final - Proposta A ====== ==== Função genbank ==== 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)",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")) } } ==== Help da função genbank ==== 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) ==== Arquivos para rodar o exemplo ==== {{:bie5782:01_curso_atual:alunos:trabalho_final:raquelpalasio:exemplo.rar|Pasta com exemplos}} {{:bie5782:01_curso_atual:alunos:trabalho_final:raquelpalasio:funcao_genbank_final.r|Função genbank}}{{:bie5782:01_curso_atual:alunos:trabalho_final:raquelpalasio:help_funcao_genbank.r|Help da função }}