美文网首页
miRNA array笔记1

miRNA array笔记1

作者: Dommy_feb9 | 来源:发表于2019-03-19 14:55 被阅读0次

    1. 对gtf文件进行处理:

    cat GSE52313_transcripts.gtf | grep "gene_name" |sed 's/\(.*\)gene_id\(.*\); transcript_id\(.*\); gene_name\(.*\); oId\(.*\)/\2\4/g' |sed 's/"//g' | awk '{print $1"="$2}' | sort -n | uniq -c > GSE52313_transcripts_sort.gtf

    awk -F" *" '{print $3}' GSE52313_transcripts_sort.gtf | awk -F"=" '{print $1,$2}' > GSE52313_transcripts_renew.gtf

    2. 提取lncRNA:

    awk 'NR==FNR{a[$1]=$2}NR!=FNR{if ($1 in a){print a[$1],$2,$3,$4,$5,$6,$7,$8,$9}}' GSE52313_transcripts_renew.gtf GSE52313_lnRNA

    3. 对lncRNA表达量文件进行基因名替换

    awk 'NR==FNR{a[$1]=$2}NR!=FNR{if ($1 in a){print a[$1],$2,$3,$4,$5,$6,$7,$8,$9}}' GSE52313_transcripts_renew.gtf GSE52313_lnRNA_gene_counts > GSE52313_lnRNA_gene_counts_renew

    4.根据table S1的信息:sharm: 8R 3RL 12RL 7LR

                                          MI:5O 7R 11L 2L

    5. 对lncRNA进行差异表达分析:

    首先需要读入一个数据框,列代表每个sample,行代表每个gene

    database_all <- read.table(file = "GSE52313_lnRNA_gene_counts_renew", sep = "\t", header = T, row.names=1)

    这里主要对于两两比较的数据,因此我取了数据的前6列,分别是两组样品,每组3个生物学重复

    设定分组信息,也就是样本分组的名称

    type <- factor(c(rep("LC_1",4), rep("LC_2",4)))

    我这里是样品1是LC_1,样品2是LC_2

    由于DESeq包要求接下来的count data必须要整数型,因此我们需要对数据进行取整,然后将数据database和分组信息type读入到cds对象中

    database <- round(as.matrix(database_all))

    source("https://bioconductor.org/biocLite.R")

    biocLite('BiocInstaller')

    biocLite("DESeq2")

    coldata <- data.frame(row.names = colnames(database), type)

    dds <- DESeqDataSetFromMatrix(countData=database, colData=coldata, design=~type)

    DESeq2的使用方法:

    输入矩阵数据,行名为sample,列名为gene;DESeq2不支持无生物学重复的数据,因此我选择了2个样本,3个生物学重复的数据;并对count data取整(经大神指点,这里需要说明下,我的测试数据readcount是RSEM定量的结果,并不是常见的htseq-count的结果,所以count值会有小数点,而DESeq2包不支持count数有小数点,所以这里需要round取整)。

    设置分组信息以及构建dds对象

    dds <- DESeqDataSetFromMatrix(countData=database, colData=coldata, design=~condition)

    使用DESeq函数进行估计离散度,然后进行标准的差异表达分析,得到res对象结果

    前过滤:

    keep<-rowSums(counts(dds)) >= 10

    dds<-dds[keep,]

    :并不是必须,不影响计算结果,这样做的优点是dds对象占用的内存小点,后续的计算耗时小点。

    dds <- DESeq(dds)

    res <- results(dds)

    最后设定阈值,筛选差异基因,导出数据

    table(res$padj <0.05)

    res <- res[order(res$padj),]

    resdata <- merge(as.data.frame(res), as.data.frame(counts(dds, normalized=TRUE)),by="row.names",sort=FALSE)

    write.csv(resdata,file = "LC_1_vs_LC_2.csv")

    #从LC_1_vs_LC_2.csv中筛选lncRNA和mRNA,

    相关文章

      网友评论

          本文标题:miRNA array笔记1

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