美文网首页R语言作业
【生信技能树::作业&习题】R语言初级练习题

【生信技能树::作业&习题】R语言初级练习题

作者: 墨墨如 | 来源:发表于2019-03-29 15:30 被阅读275次

初级10 个题目,尽量根据参考代码理解及完成:http://www.bio-info-trainee.com/3793.html

打开以后好像不止10个

  1. 打开Rstudio告诉我它的工作目录

    getwd()

  2. 新建6个向量,基于不同的原子类型。(重点是字符串,数值,逻辑值)

    a <- c(1,2,3,4,5,6)
    b <- c("a","b","c","d")
    c <- c(T,F,F,T)
    
  1. 新建5个其它数据结构,矩阵,数组,数据框,列表,因子(重点是数据框,矩阵)

    mymatrix <- matrix(1:20, nrow = 5, ncol = 4)
    myarray <- array(1:24, c(2,3,4))
    mydf <- data.frame(PatientID = C("pa01","pa02","pa03"),
                      age = c(22,33,44),
                      exp = c(12,23,34))
    mylist <- list(mymatrix, mydf, a, b, c)
    status <- c("well", "moderate", "poor")
    myfactor <- factor(status, levels = c("poor", "moderate", "well"))
    
  1. 在你新建的数据框进行切片操作,比如首先取第1,3行, 然后取第4,6列

    df[c(1,3), ]
    df[ , c(4,6)]
    
  1. 使用data函数来加载R内置数据集 rivers 描述它。并且可以查看更多的R语言内置的数据集:https://mp.weixin.qq.com/s/dZPbCXccTzuj0KkOL7R31g

    data("rivers")
    class(rivers)
    str(rivers)
    length(rivers)
    summary(rivers)
    head(rivers); tail(rivers)
    
  1. 下载 https://www.ncbi.nlm.nih.gov/sra?term=SRP133642 里面的 RunInfo Table 文件读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。

    这一步卡住了一会儿,主要是不知道这个RunInfo Table为何物,在哪里下载。要是知道文件名就好了。最开始以为是GSE页面下的serie.matix文件,这个文件的格式直接用R读取,怎么也读不好。网上搜到的代码其实都读不进去,还是用Excel好使。然而,并不是这个文件。。。

    下载文件的地方

RunInfo Table文件下载位置.png

可以从这里进来

SRA入口.png
options(stringsAsFactors = F)
rit = read.table("SraRunTable.txt", sep = "\t", header = T)
dim(rit)
str(rit)
  1. 下载 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE111229 里面的样本信息读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。

    我不知道我下载的样本信息对不对,是不是GSE111229_series_matrix.txt.gz文件,如果是的就按照接下来的看

    正常用read.table读都会有各式各样的报错,原因在于这个破表长成这样(Excel打开):

    series.matrix用Excel打开的样子.png

    几种报错的原因:

    • 0 obs. of n variables :这里每一行都有"!",所以comment.char="!"以后,所有行都跳过了。
    • line 30 did not have 2 elements :这个恶心的第30行是空的,行列的长度不齐

    所以正确的输入应该是这样:

    options(stringsAsFactors = F)
    dat <- read.table("GSE111229_series_matrix.txt", sep = "\t", header = FALSE, 
                      fill = TRUE, # 如果长度不齐,补齐
                      skip = 30) # 前面30行没用的注释信息略过不读
    str(dat)
    dim(dat) # 45 obs. of 769 variables
    

    读入以后我存成txt,用Excel打开看了看,不明白为什么View(b)打开会特别慢特别卡。

读入以后长这样.png

这个行列很变态,要做下一题的话还需要处理一下这个数据框,比如转置一下

dat = as.data.frame(t(b))
rownames(dat) <- NULL
colnames(dat) <- dat[1, ]
dat <- dat[2:nrow(dat), ]
  1. 把两个表关联起来,使用merge函数。

    这两个表里面相同的列是rit$Sample_Namedat$ID_REF,都是GSM number

    head(rit$Sample_Name); head(dat$ID_REF) # 先来show一下相同的列的内容
    c <- merge(rit, dat, by.x = "Sample_Name", by.y = "ID_REF", all.x = T)
    
  1. 对前面读取的 RunInfo Table 文件在R里面探索其MBases列,包括 箱线图(boxplot)和五分位数(fivenum),还有频数图(hist),以及密度图(density) 。

    head(rit$MBases)
    str(rit$MBases)
    quantile(rit$MBases)
    fivenum(rit$MBases)
    boxplot(rit$MBases)
    hist(rit$MBases)
    plot(density(rit$MBases))
    
  2. 把前面读取的样本信息表格的样本名字根据下划线分割看第3列元素的统计情况。第三列代表该样本所在的plate

  3. 根据plate把关联到的 RunInfo Table 信息的MBases列分组检验是否有统计学显著的差异。

  4. 分组绘制箱线图(boxplot),频数图(hist),以及密度图(density) 。

  5. 使用ggplot2把上面的图进行重新绘制。

  6. 使用ggpubr把上面的图进行重新绘制。

  7. 随机取384个MBases信息,跟前面的两个plate的信息组合成新的数据框,第一列是分组,第二列是MBases,总共是384*3行数据。

第10题找不到哪个元素是含有下划线的,所以导致后面的题目都没有办法做。我又开始怀疑我在第7题样本信息这里找到的表是不是对的了。。。。。

相关文章

网友评论

    本文标题:【生信技能树::作业&习题】R语言初级练习题

    本文链接:https://www.haomeiwen.com/subject/uqwlbqtx.html