windows平台通过虚拟机安装ubuntu

  1. 下载ubuntu桌面版本
    https://ubuntu.com/download
  2. VMware for windows 下载
    https://my.vmware.com/web/vmware/details?downloadGroup=WKST-1510-WIN&productId=799&rPId=33369
    官方需要注册,所以我在这个完整上找了个不是最新版本的进行下载:
    https://www.cr173.com/soft/68480.html
  3. 安装步骤主要参考以下这篇教程
    如何在Windows环境下安装Linux系统虚拟机
    捕获.PNG

    安装过程

登录界面

安装git

sudo apt-get install git  

安装miniconda

wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash /Miniconda3-latest-Linux-x86_64.sh
#添加conda channels
conda config --add channels bioconda
conda config --add channels conda-forge
#显示安装的channels
conda config --get channels

创建新的conda环境变量

#利用git clone命令将之前的snakemake pipline克隆到本地服务器
git clone https://github.com/fanqiang1024/RNA-seq_snakemake.git ./
Cloning into '.'...
remote: Enumerating objects: 46, done.
remote: Counting objects: 100% (46/46), done.
remote: Compressing objects: 100% (36/36), done.
Unpacking objects:  60% (28/46)

remote: Total 46 (delta 17), reused 29 (delta 8), pack-reused 0
Unpacking objects: 100% (46/46), done.

ls
config.yaml  dag.svg  merge.R  pairEndSnakemake  
README.md  snakefileR  snakemake.yaml  v3.11.0.tar.bz2

剩下的可以根据之前的教程进行snakemake分析环境的创建
conda环境变量设置与转移

利用snakemake构建分析流程
参考文章:
Writing a RNA-Seq workflow with snakemake

1.下载数据

cd samples/raw
for i in control_R1 control_R2 treated_R1 treated_R2;
do 
wget --no-clobber http://pedagogix-tagc.univ-mrs.fr/courses/data/ngs/abd/${i}.fq.gz 
2>/dev/null;
done

2.构建19号染色体的参考基因组索引

mkdir -p projects/indexes/bowtie2/mm10 # Create a directory to store the index
cd projects/indexes/bowtie2/mm10       # go to projects/indexes/bowtie2/mm10
# Download chr19 sequence (mm10 version)
wget --no-clobber http://hgdownload.soe.ucsc.edu/goldenPath/mm10/chromosomes/chr19.fa.gz 2> chr19.fa_wget.log
gunzip chr19.fa.gz # uncompress the file
# to get help about bowtie-build type:
# bowtie2-build -h
# To uncomment
bowtie2-build chr19.fa chr19 &> chr19.fa_bowtie2-build.log

3.下载gtf文件

cd projects
mkdir -p annotations/gtf
cd annotations/gtf
wget ftp://ftp.ensembl.org/pub/release-83/gtf/mus_musculus/Mus_musculus.GRCm38.83.chr.gtf.gz | gunzip -c | grep "^19" | sed 's/^19/chr19/' > GRCm38.83.chr19.gtf

4.在 UCSC web site 下载染色体信息
Clade: Mammal.
Genome: Mouse.
Assembly: mm10.
Group: All Tables.
Table: chromInfo.
Select all fields from selected table for output. Use the following string “chromInfo_mm10.txt” as output file name.
Click on get output
Create a directory projects/annotations/txt and place the downloaded file in that directory.

5. 创建Snakefile文件

BASE_DIR = "/Users/projects"
INDEX = BASE_DIR + "/indexes/bowtie2/mm10/chr19"
GTF   = BASE_DIR + "/annotations/gtf/GRCm38.83.chr19.gtf"
CHR   = BASE_DIR + "/annotations/txt/chromInfo_mm10.txt"
FASTA = BASE_DIR + "/indexes/bowtie2/mm10/chr19.fa"

#录入样本信息
SAMPLES, = glob_wildcards("samples/raw/{smp}_R1.fq.gz")
NB_SAMPLES = len(SAMPLES)

for smp in SAMPLES:
  message("Sample " + smp + " will be processed")

#第一个rule,对rawdata进行trimming
rule final: 
  input: expand("samples/trimmed/{smp}_R1_t.fq", smp=SAMPLES)

rule trimming:
  input:  fwd="samples/raw/{smp}_R1.fq.gz", rev="samples/raw/{smp}_R2.fq.gz"
  output: fwd="samples/trimmed/{smp}_R1_t.fq", 
          rev="samples/trimmed/{smp}_R2_t.fq", 
          single="samples/trimmed/{smp}_R1_singletons.fq"
  message: """--- Trimming."""
  shell: """
        sickle pe -f {input.fwd} -r {input.rev}  -l 25 -q 20 -t sanger  -o {output.fwd} -p {output.rev} -s {output.single} &> {input.fwd}.log                                                                               
  """

6. 增加质控rule

rule final: 
  input: expand("samples/fastqc/{smp}/{smp}_R1_t.fq_fastqc.zip", smp=SAMPLES)

rule trimming:
  input:  fwd="samples/raw/{smp}_R1.fq.gz", rev="samples/raw/{smp}_R2.fq.gz"
  output: fwd="samples/trimmed/{smp}_R1_t.fq", 
          rev="samples/trimmed/{smp}_R2_t.fq", 
          single="samples/trimmed/{smp}_R1_singletons.fq"
  message: """--- Trimming reads."""
  shell: """                                                                                                                                                                                                                                                                                                                                                            
        sickle pe -f {input.fwd} -r {input.rev}  -l 40 -q 20 -t sanger  -o {output.fwd} -p {output.rev} -s {output.single} &> {input.fwd}.log                                                                               
  """

rule fastqc:
        input:  fwd="samples/trimmed/{smp}_R1_t.fq", 
                rev="samples/trimmed/{smp}_R2_t.fq"
        output: fwd="samples/fastqc/{smp}/{smp}_R1_t.fq_fastqc.zip", rev="samples/fastqc/{smp}/{smp}_R2_t.fq_fastqc.zip"
        message: """--- Quality check of raw data with Fastqc."""
        shell: """                                                                                                                                                                                        
              fastqc --outdir  samples/fastqc/{wildcards.smp} --extract  -f fastq {input.fwd} {input.rev}                                                                                                                                                                                                                                                                                    
     """

7. 对数据进行mapping

rule tophat:
        input:fwd="samples/trimmed/{smp}_R1_t.fq", 
              rev="samples/trimmed/{smp}_R2_t.fq"
        params: gtf=GTF, index=INDEX
        output: "samples/bam/{smp}.bam"
        shell: """
                mkdir -p samples/tophat/{wildcards.sample}
                tophat2                                         \
                        -o samples/tophat/{wildcards.sample}    \
                        -g 1                                    \
                        --library-type fr-firststrand           \
                        -G {params.gtf}                          \
                        -x 1                                    \
                        -p 5                                    \
                        {params.index}                             \
                        {input.fwd} {input.rev} &> samples/tophat/{wildcards.sample}/run_tophat.log
                cd samples/tophat/{wildcards.sample}
                mv accepted_hits.bam ../../bam/{wildcards.smp}.bam
                """

8.寻找novel转录本

rule cufflinks:
        input: bam="samples/bam/{smp}.bam"
        output: gtf="samples/cufflinks/{smp}/transcripts.gtf"
        params:  gtf=GTF
        message: "--- Searching novel transcript with cufflinks."
        shell: """
          cufflinks -g {params.gtf} -p 5 --library-type fr-firststrand  -o samples/cufflinks/{wildcards.smp}  {input.bam} &> {output}.log
        """

9. 将novel转录本与已知的进行比对
10. 合并novel和已知的转录本和基因名
11. 利用featureCounts进行定量
也可以使用htseq-count进行定量

rule quantification_with_featureCounts:
        input: novel="samples/new_annotation/all_transcripts.gtf", bam=expand("samples/bam/{smp}.bam", smp=SAMPLES)
        output: "results/counts/gene_counts.txt",  "results/counts/gene_counts_mini.txt"
        shell: """
        featureCounts -p -s 2 -T 15 -t exon -g gene_id -a {input.novel} -o {output[0]} {input.bam} &> {output[0]}.log
        cut -f 1,7- {output[0]}| awk 'NR > 1' | awk '{{gsub("samples/bam/","",$0); print}}'  > {output[1]}
        """

12. R语言作图展示

rule diagnostic_plot:
        input: "results/counts/gene_counts_mini.txt"
        output: "results/diagnostic_plot/diagnostic.pdf"
        run: R("""
            dir.create("results/diagnostic_plot")
            data <- read.table("{input}", 
                                sep="\t", 
                                header=T, 
                                row.names=1)
            data <- data[rowSums(data) > 0, ]
            data <- log2(data + 1)
            pdf("{output}")
            dev.null <- apply(data, 2, hist, border="white", col="blue")
            boxplot(data, color="blue", pch=16)
            pairs(data, pch=".", col="blue")
            dev.off()
            cat("etc...")
      
        """)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容