小编use*_*287的帖子

如何将Ensembl ID转换为R中的基因符号?

我有一个包含Ensembl ID的data.frame在一列中; 我想为该列的值找到相应的基因符号,并将它们添加到我的数据框中的新列.我使用bioMaRt但它找不到任何Ensembl ID!

这是我的示例数据(df[1:2,]):

row.names organism    gene
41  Homo-Sapiens ENSP00000335357
115 Homo-Sapiens ENSP00000227378
Run Code Online (Sandbox Code Playgroud)

我希望得到这样的东西

row.names organism    gene         id
41  Homo-Sapiens ENSP00000335357   CDKN3
115 Homo-Sapiens ENSP00000227378   HSPA8
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

library('biomaRt')
mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))
genes <- df$genes
df$id <- NA
G_list <- getBM(filters= "ensembl_gene_id", attributes= c("ensembl_gene_id",
"entrezgene", "description"),values=genes,mart= mart)
Run Code Online (Sandbox Code Playgroud)

然后,当我检查G_list时,我得到了这个

[1] ensembl_gene_id entrezgene      description  <0 rows> (or 0-length row.names)
Run Code Online (Sandbox Code Playgroud)

所以我无法将G_list添加到我的df中!因为没有什么可补充的!

提前致谢,

r bioinformatics bioconductor dataframe

11
推荐指数
2
解决办法
2万
查看次数

如何计算tar.gz文件中的文件数(不解压缩)?

我有一个tar.gz文件,我是由pigz(并行gzip)制作的.我想计算压缩文件中的文件数而不解压缩.

我用这个命令:

tar -tzf file.tar.gz
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

tar: This does not look like a tar archive
tar: Skipping to next header
Run Code Online (Sandbox Code Playgroud)

是因为我使用了pigz而不是gzip?如果是的话,我现在怎么算这些呢?

提前致谢.

compression parallel-processing gzip tar

10
推荐指数
2
解决办法
2万
查看次数

用于带有两个变量的循环

我有一个关于在Bash中循环的问题我想运行特定范围的awk命令增加34但我不知道如何在for循环中指定两个变量.我知道如何为一个变量做这个,但它不适用于两个变量.这是我的一个变量的代码:

#!/bin/bash
for a in {1..3400..34}
do
printf "awk 'NR>=$a&&NR<=$b { if (/^[0-9]/) sum++} END {print "row\t", sum }' file "
done
Run Code Online (Sandbox Code Playgroud)

但我想指定两个变量($ a,$ b),这样的东西不起作用!:

for a in {1..3400..34} , for b in {35..3400..34}
do
printf "awk 'NR>=$a&&NR<=$b { if (/^[0-9]/) sum++} END {print "row\t", sum }' hydr_dE.txt && "
done
Run Code Online (Sandbox Code Playgroud)

谢谢,

variables bash awk loops for-loop

5
推荐指数
2
解决办法
225
查看次数

如何将 p 值添加到 R 中的一致性索引图中?

在我的生存分析任务中,我使用了 cox 比例模型来计算数据集不同组中的一致性指数 (c-index) 值。我想知道如何将 p 值添加到我的 c-index 图以比较不同的组看起来像这个图?

在此处输入图片说明

这是我的代码:

 surv <- with(group, Surv(group$survival, group$time))

# calculate survival
 sum.surv_1 <-  with(group, summary(coxph(surv ~ group$1)))
 sum.surv.1_2 <-  with(group, summary(coxph(surv ~ group$1 + group$2,ties = T)))


c_index.1 <- sum.surv_1$concordance
c_index.1_2 <- sum.surv.1_2$concordance

Comb_cIndex = data.frame(rbind(c_index.1["concordance.concordant"],
                           c_index.1_2["concordance.concordant"]))

barplot(as.matrix(Comb_cIndex), beside=TRUE, axis.lty=1, 
    ylab = "C Index", ylim = c(0, 0.8), 
    col = c("green", "blue")) 
Run Code Online (Sandbox Code Playgroud)

提前致谢,

r bar-chart cox-regression survival-analysis p-value

5
推荐指数
1
解决办法
1253
查看次数

如何在R {venn-gplots}中使维恩图丰富多彩?

我在gplots库中使用了venn函数.

这是一个简单的例子.

library(gplots)
venn( list(A=1:5,B=4:6,C=c(4,8:10),D=c(4:12)) )
Run Code Online (Sandbox Code Playgroud)

这是输出:

在此输入图像描述

我的问题是我怎样才能让这组照片变得丰富多彩?(基本上让它变得更加花哨!:D)

我已经尝试了另一个包但由于我的数据不是数字,他们不会接受字符来制作图表!

任何帮助/建议将不胜感激.提前致谢,

r venn-diagram gplots

3
推荐指数
1
解决办法
5817
查看次数

使用R(dplyr)将三元组转换为二进制

我有一个像这样的大型data.frame(df):

A B C D E 
1.2 2.2 3.3 4.4 5.2 
4.2 5.3 6.5 7.2 1.5 
2 7 3 4 6 
1 2 3 4 5 
Run Code Online (Sandbox Code Playgroud)

我想通过在R中使用dplyr创建一个B列的三分位组,并使用以下代码:

第一

library('dplyr')
ntile(df$B, 3)
Run Code Online (Sandbox Code Playgroud)

所以我从B栏得到三组:

#group 1
ntile(df$B,3)==1
#group2
ntile(df$B,3)==2
#group3
ntile(df$B,3)==3
Run Code Online (Sandbox Code Playgroud)

现在我想通过将组1,2连接成一个组来生成二进制变量,并将组3连接成第二组.我申请了这段代码:

第二

#combine group1,2
bin1 <- c((ntile(df$B,3)==1),(ntile(df$B,3)==2))
#creating the second group
bin2 <- (ntile(df$B,3)==3)
Run Code Online (Sandbox Code Playgroud)

我只是想确定我是否做得对(第一和第二部分)?我想知道是否还有其他(更快/更容易)的方法吗?通过使用(dplyr或R中的任何其他包)

binary r dataframe dplyr

2
推荐指数
1
解决办法
1915
查看次数

计算并总结特定的十进制数(bash,awk,perl)

我有一个制表符分隔文件,我想在每次找到第一列的数字而不是第一列的字符时,将某个十进制数总和到输出(1.5),并打印出从第一列到最后一行的所有行的结果.

我有一个看起来像这样的示例文件:

它有8行

  1st-column 2nd-Column

  a             ship
  1             name     
  b            school
  c             book
  2             blah
  e             blah
  3             ...
  9             ...
Run Code Online (Sandbox Code Playgroud)

现在我希望我的脚本逐行读取,如果它找到数字总和1.5,并给我输出第一列,如下所示:

  0
  1.5
  1.5
  1.5
  3
  3
  4.5
  6
Run Code Online (Sandbox Code Playgroud)

我的脚本是:

  #!/bin/bash
  for c in {1..8}
  do
  awk 'NR==$c { if (/^[0-9]/) sum+=1.5} END {print sum }' file
  done
Run Code Online (Sandbox Code Playgroud)

但我没有得到任何输出!

感谢您的帮助.

bash perl awk

1
推荐指数
1
解决办法
1162
查看次数

如何查找空文件并编辑它们的标题.通过查找和回声

我有一个文件夹包含~30000个文件,其中一些是空的.我想找到它们并将'NON'作为空文件的标题.

我的脚本是:

 find -type f -empty -exec echo 'NON' {} \;
Run Code Online (Sandbox Code Playgroud)

我的输出是:

 NON ./file1
 NON ./file2
 NON ./file3
 NON ./file4
Run Code Online (Sandbox Code Playgroud)

但是我想把'NON'写成file1,file2,file3和file4的标题.

提前致谢.

linux bash awk find echo

1
推荐指数
1
解决办法
70
查看次数