Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 提取与每个基因符号匹配的读取计数_R_Loops_Rna Seq - Fatal编程技术网

R 提取与每个基因符号匹配的读取计数

R 提取与每个基因符号匹配的读取计数,r,loops,rna-seq,R,Loops,Rna Seq,我已经通过鲑鱼对基因表达进行了量化,这给了我Ensembl转录本,我将Ensembl转录本转换为基因符号,但对于某些基因,我有多个转录本;如何将读取计数折叠到基因,我尝试了tximportpackage,但我发现太难了,因为我的注释是不同的 Name NumReads ENST00000355520.5 407.186 ENST00000566753.1 268.879 ENST00000481617.2 242.25 ENST00000538183.2

我已经通过鲑鱼对基因表达进行了量化,这给了我Ensembl转录本,我将Ensembl转录本转换为基因符号,但对于某些基因,我有多个转录本;如何将读取计数折叠到基因,我尝试了
tximport
package,但我发现太难了,因为我的注释是不同的

Name                NumReads
ENST00000355520.5   407.186
ENST00000566753.1   268.879
ENST00000481617.2   242.25
ENST00000538183.2   226.576

ensembltranscript_id gene_name
ENST00000482226.2   FCGR2C
ENST00000508651.1   FCGR2C
ENST00000571914.1   TSPAN10
ENST00000571707.1   TSPAN10
ENST00000534817.1   OVCH2
ENST00000445557.1   OR52E1
ENST00000575319.1   CYP2D7
ENST00000576465.1   CYP2D7
编辑

这是读取计数的输出

这就是我将鲑鱼输出中的转录本ID转换为基因名的时候


您可以使用dplyr软件包

创建测试表:

names = c("ensembltranscript_id",  "gene_name", "NumReads")
transcripts = c("ENST00000482226.2", "ENST00000508651.1", "ENST00000571914.1", "ENST00000571707.1", "ENST00000534817.1")
gene_names = c("FCGR2C", "FCGR2C", "TSPAN10", "TSPAN10", "OVCH2")
reads = c(205.56, 456.21, 123.3, 52.6, 268.45)

data = data.frame(transcripts, gene_names, reads)
names(data) = names
进行以下计算:

result = data %>% 
  group_by(gene_name) %>% 
  summarise(sum(NumReads)) %>%
  mutate_if(is.numeric, format, 2)
打印结果:

# A tibble: 3 x 2
  gene_name `sum(NumReads)`
  <fct>     <chr>          
1 FCGR2C    661.77         
2 OVCH2     268.45         
3 TSPAN10   175.90
只需按此处的转录本id合并数据:

merged_data = merge(x = salmon_reads, y = genes, by.x = colnames(salmon_reads)[1], by.y = colnames(genes)[1], all = T)
执行减少读数的计算和顺序:

result = merged_data %>% 
  group_by(external_gene_name) %>% 
  summarise(sum(NumReads)) %>%
  mutate_if(is.numeric, format, 2)

result$`sum(NumReads)` = as.numeric(result$`sum(NumReads)`)
result = result[order(result$`sum(NumReads)`, decreasing = T),]

您没有提到如何处理NAs。在这个场景中,所有读取的基因名都是NA。这就是NA读取次数最多的原因。

您能添加您期望的输出和已经失败的代码吗?一种可能的策略是按基因符号对基因表达进行分组,然后对同一基因符号的不同Ensembl转录本ID的平均表达值。如果您要提供具有代表性的样本数据(您当前的样本数据不包含来自具有相同基因符号的不同Ensembl ID的任何表达式值),其他人将更容易提供帮助。请不要使用链接(顺便说一句:链接不起作用)。而是在请求/问题中创建基础数据和预期输出。只要几行就可以了。让愿意帮助你的人对你的问题有一个确切的了解。谢谢你的帮助
result = merged_data %>% 
  group_by(external_gene_name) %>% 
  summarise(sum(NumReads)) %>%
  mutate_if(is.numeric, format, 2)

result$`sum(NumReads)` = as.numeric(result$`sum(NumReads)`)
result = result[order(result$`sum(NumReads)`, decreasing = T),]