将 Dataframe 中的fasta文件拆分为列4,并在R中重命名它们

zy1mlcev  于 2023-03-15  发布在  其他
关注(0)|答案(1)|浏览(121)

//#我有一个fASTA文件,我想把它放在一个有4列的表中

代码安装包(“seqinr”)

library("seqinr")
dnaseq<- read.fasta(file = "C:/Users/user/Downloads/my.fasta") 
rows = 4:nrow(dnaseq)
dff<-data.frame(ID = gsub(">","",as.character(dnaseq[rows %% 4==3,3])),names= dnaseq[rows %% 4==2,3],specie= dnaseq[rows %% 4==1,3], sequences = dnaseq[rows %% 4==0,3])

rslt视图(dff)表中无可用数据

我尝试过库(phylotools)fasta.df = read.fasta(“C:/用户/用户/下载/我的.fasta”,名称=['ID','名称','物种','序列'])#结果

fasta.df = read.fasta(“C:/用户/用户/下载/我的.fasta”,名称=['ID','名称','物种','序列'])错误:在“fasta.df = read.fasta(“C:/用户/用户/下载/我的.fasta”中出现意外的“[”,名称=[”

jv4diomz

jv4diomz1#

我希望您已经从gencode下载了fasta文件
Fasta文件看起来像这样

>ENST00000456328.2|ENSG00000223972.5|OTTHUMG00000000961|OTTHUMT00000362751.1|DDX11L1-202|DDX11L1|1657|processed_transcript|
GTTAACTTGCCGTCAGCCTTTTCTTTGACCTCTTCTTTCTGTTCATGTGTATTTGCTGTC
>ENST00000450305.2|ENSG00000223972.5|OTTHUMG00000000961|OTTHUMT00000002844.1|DDX11L1-201|DDX11L1|632|transcribed_unprocessed_pseudogene|
GTGTCTGACTTCCAGCAACTGCTGGCCTGTGCCAGGGTGCAAGCTGAGTTGGAGGAAAGA
.
.

加载所需的包

#install.packages("seqinr")
library(seqinr)
#install.packages("tidyverse")
library(tidyverse)

首先,我们将fasta文件读入R

gencode_fasta <- read.fasta(file = "Path/to/my/fasta/file.fa" )

将所述报头信息提取到 Dataframe 中

header_df=as.data.frame(names(gencode_fasta))

将列名更改为target_id

names(header_df)=c("target_id")

将所述标头信息拆分成多个列

header_df=separate(header_df, col=target_id, into=c("transcript","ens_gene","OG","OT","c5","ext_gene","num","type","unknown"), sep="\\|", remove = FALSE)
  • 如果头信息较少,请更改为=c(.....)
  • 如果您的分离器不是“|“,请相应更改

仅选择所需列

my_gene_df=header_df[,c("ext_gene","ens_gene","target_id")]

相关问题