第一步 准备好数据
内有 name_R1.fq.gz 和 name_R2.fq.gz
大鼠的索引文件
上面的染色体模板命名不规范,使用下面脚本修改
1 2 3 4 5 6 7 # !/bin/bash for file in `ls /home/lxb/gene_template/rat/gene/Rattus_norvegicus.Rnor_6.0.dna.chromosome.*.fa` do newFile='/home/gene/xuchen/ratgene/'`echo $file sed 's/\(.*\)\/.*\.\([0-9XYMT]\+.fa\)$/\2/'` echo $newFile cp $file $newFile done
规范后的染色体命名
两份注释文件的差别 ,一般使用不带chr的文件
第二步 生成排好序的bam文件
nohup /home/gene/xuchen/gp1.bash > /home/gene/xuchen/1.log 2>&1 &
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 # !/bin/sh # 设置CleanData存放目录 export CLEAN=/home/gene/upload/xc-lz/gp# 设置idx存放目录 export HISAT_IDX=/home/lxb/gene_template/rat/idx/rat.hisat2.idx# 设置这一步的输出目录 export WORK=/home/gene/xuchen/output_gp export CDIR=$(basename `pwd`) echo $CDIR echo $CLEAN for file in $CLEAN/* do echo $file SAMPLE=${file##*/} echo $SAMPLE r1=${SAMPLE}"_R1.fq.gz" r2=${SAMPLE}"_R2.fq.gz" echo $r1 echo $r2 hisat2 -p 12 --dta-cufflinks -x $HISAT_IDX -1 $CLEAN/$SAMPLE/$r1 -2 $CLEAN/$SAMPLE/$r2 -S $WORK/$SAMPLE.sam samtools view -bS $WORK/${SAMPLE}".sam" > $WORK/${SAMPLE}".bam"# 内存使用量为 6000M * 6 = 36G samtools sort -m 6000M -@ 6 -o $WORK/${SAMPLE}".sorted.bam" $WORK/${SAMPLE}".bam"# 没用的东西删掉 rm $WORK/${SAMPLE}".sam" rm $WORK/${SAMPLE}".bam" done
查看 1.log 确保匹配率高于80%,下图为 95.01%
第三步 生成基因矩阵
nohup /home/gene/xuchen/gp2.bash > /home/gene/xuchen/2.log 2>&1 &
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # 上一步的输出目录 export CLEAN_OUT=/home/gene/xuchen/output_gp cd $CLEAN_OUT# 规范命名后的染色体模板数据 export GRCh38=/home/gene/xuchen/ratgene# GTF数据,一般使用不带chr的 export GTF=/home/lxb/gene_template/rat/gtf/Rattus_norvegicus.Rnor_6.0.90.gtf# 整理样本列表, 空格分隔 export SAMPLES="A34 C15 C41 C8 M7 X24 X28"# 用来生csv的表头,逗号分隔,与样本列表对应 export LABLES="A34,C15,C41,C8,M7,X24,X28"# 设置输出目录 export WORK=/home/gene/xuchen/diffout_gp export LIST="" for file in $SAMPLES do LIST=$LIST" "$CLEAN_OUT/$file".sorted.bam" done echo $LIST cuffdiff -L $LABLES -o $WORK -b $GRCh38 -p 12 -u $GTF $LIST
查看处理进度 tail -f /home/gene/xuchen/2.log
更简单的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # !/bin/bash # 上一步的输出目录 export CLEAN_OUT=/home/gene/xuchen/output_gp# 设置这一步的输出目录 export WORK=/home/gene/xuchen/diffout_gp# 规范命名后的染色体模板数据 export GRCh38=/home/gene/xuchen/ratgene# GTF数据,一般使用不带chr的 export GTF=/home/lxb/gene_template/rat/gtf/Rattus_norvegicus.Rnor_6.0.90.gtf LIST="" LABLES="" for file in `ls $CLEAN_OUT` do file=`echo $file sed 's/\(.*\).sorted.bam$/\1/'` echo $file LIST=$LIST" "$CLEAN_OUT/$file".sorted.bam" LABLES=$LABLES","$file done LABLES=`echo ${LABLES: 1}` echo $LIST echo $LABLES cd $CLEAN_OUT cuffdiff -L $LABLES -o $WORK -b $GRCh38 -p 12 -u $GTF $LIST
第四步 转换成symbol的csv 1 2 3 4 5 gp <- read.table( '~/gene/xuchen/diffout_gp/genes.fpkm_tracking' , header = T ) sampleN <- stringr:: str_detect( colnames( gp) , 'FPKM' ) sampleN <- colnames( gp) [ sampleN] gp_filter <- gp[ , c ( 'gene_id' , 'gene_short_name' , sampleN) ] write.csv( gp_filter, file= 'gp.csv' )
gp的内容
gp.csv的内容