參考博文:https://zhuanlan.zhihu.com/p/428316843 轉載請注明出處
1. 下載安裝包:
nextflow可以通過bioconda安裝,所以這次我們只需要下載nf-core/rnaseq的安裝包即可:
mamba create -n nextflow nextflow nf-core conda activate nextflow nf-core download nf-core/rnaseq tar -zxvf nf-core-rnaseq-3.4.tar.gz
此時我們可以通過nextflow運行這個安裝包:
nextflow run nf-core-rnaseq-3.6/workflow/ \ # 格式就是nextflow run <下載好的nf-core-rnaseq文件夾下workflow文件夾的目錄> --input samplesheet.csv \ # 就是上一步我們用python腳本生成的samplesheet.csv文件 --fasta Homo_sapiens.GRCh38.dna.primary_assembly.fa \ # 參考基因組所在的目錄 --transcript_fasta gencode.v38.transcripts.fa \ # 參考轉錄組所在的目錄 --gtf gencode.v38.annotation.gtf \ # 基因組注釋文件所在的目錄 --gencode \ # 強調GTF文件的格式是GENCODE的,因為從ENSEMBL和GENCODE下載 的GTF文件格式會略有不同 --aligner hisat2 \ # 默認的比對和定量軟件是STAR+Salmon,但是STAR真的是太耗內 存了,幾百G都有可能,跑着跑着就core dumped了,所以內存不夠的就用hisat2吧 --hisat2_index /genome/index/hisat2 \ # 可以不寫這個參數,pipeline會自己構建索引,就是比較慢 --splicesites gencode.v38.annotation.splice_sites.txt \ # 可以不寫,pipeline會利用上面的python腳本自己生成 --skip_qualimap \ # 因為qualimap是用於外顯子測序的質控的,如果不跳過就會報錯 --save_reference \ # 如果沒有提供現成的hisat2_index/salmon_index等,可以在此次運算后將index保存下來 -profile singularity # 用singularity容器運行,省心又省力
按照這個測試了一下發現不行,有一步會報錯。這時候有兩種可能,一種是我的數據不對,可能是存在不配對的reads導致出現這個問題我重新換了數據,發現還是不對。另一種可能是這個本地的鏡像在運行時會有問題,所以我重新使用了雲版本的nf-core,代碼如下:
nextflow run nf-core/rnaseq -profile singularity --input samplesheet.csv \ --fasta refrence.fasta \ --gtf 'refrence.gtf' \ --aligner hisat2 \ --skip_qualimap --outdir ./test5 --max_memory 60.GB --max_cpus 32 -r 3.6
一次跑通非常開心。
這里有這樣幾個點,參考基因組需要normalized,每行需要相同的鹼基,有的參考基因組需要使用picard工具重新normalize一下。
其次參考基因組的gff最號轉成gtf,我首先提取了primary transcripts然后將gff文件使用gffread轉化為gtf。
測序文件可以直接用fastq-dump來注釋:
fastq-dunmp --gzip --split-3 SRR.sra
此處注意fastq-dump一般推薦使用--split-3這個拆分方法,另外,加上--gzip就可以直接獲得壓縮格式的文件。