多物種無參Trinity組裝 | awk樣本列表

組裝策略

適用于設(shè)計(jì)多樣本多物種的組裝。例如100個(gè)樣本,10個(gè)物種混聊。這里如果想直接完成10個(gè)de nove組裝嘴办,需要將所有樣本數(shù)據(jù)放到一起后瞬场,通過樣本信息表聲明每個(gè)樣本的物種名,再分別組裝涧郊。因此涉及通過awk操作樣本信息表贯被。另外,多物種的分析中涉及到直系同源基因妆艘。此時(shí)通過unigene進(jìn)行連接是最佳的彤灶。但在transdecoder預(yù)測(cè)ORF時(shí),有時(shí)同一個(gè)轉(zhuǎn)錄本預(yù)測(cè)得到兩個(gè)不同的ORF批旺。所以最終是以預(yù)測(cè)得到的ORF為單元進(jìn)行定量和分析幌陕。響應(yīng)的CDS和PEP用以計(jì)算直系同源基因以及后續(xù)進(jìn)化分析等。因此汽煮,這個(gè)過程中搏熄,從Trinity.fasta得到unigene,再以u(píng)nigene為參考基因組暇赤,預(yù)測(cè)ORF得到gff3和gtf文件心例,進(jìn)行有參組裝。這種方式用來規(guī)避用Trinity.fasta為參考時(shí)翎卓,涉及到同一個(gè)基因得到不同注釋契邀,以及后續(xù)提取最長(zhǎng)轉(zhuǎn)錄本時(shí)遇到的麻煩等。

awk操作樣本信息表

樣本信息表:

$ cat sample_list.txt

2023NJFGX01-SZ  GX
2023NJZGX02-SZ  HF
2023NJCYX05-SZ  CY
2023NJZGX01-SZ  HF
2023NJCYX303-SZ SP
2023NJCYX04-SZ  CY
2023NJFGX04-SZ  GX
2023NJBSX02-SZ  HF
2023NJCYX205-SZ CY
2023NJZGX03-SZ  CY
2023NJCYX302-SZ SP

按照第二列進(jìn)行分配

aaa="SP"
cat sample_list.txt |
awk -v bbb=$aaa '{if($2 ==bbb) {print $1,$2}}'

2023NJCYX303-SZ SP
2023NJCYX302-SZ SP

事實(shí)上失暴,我們想要將第一列的樣本按文件夾分配

mkdir ${aaa}_dir;
 cat sample_list.txt | 
awk -v bbb=$aaa '{if($2 ==bbb) {print $1}}' | 
while read line; 
do 
mv ${line}* ./${aaa}_dir; 
done

將上述的aaa按照第二列的名稱進(jìn)行循環(huán)

cat sample_list.txt | awk '{print $2}' | sort | uniq |
while read line;
do
mkdir ${line}_dir;
 cat sample_list.txt | 
awk -v spname=$line '{if($2 ==spname) {print $1}}' | 
while read line2; 
do 
mv ${line2}* ./${line}_dir; 
done;
done

這樣所有的樣本被歸到響應(yīng)的文件夾里

Trinity組裝(單個(gè))

基本代碼如下:

left_all=`echo *_1.clean.fq.gz`
right_all=`echo *_2.clean.fq.gz`
Trinity \
        --seqType fq \
        --max_memory 30G \
        --left $left_all \
        --right $right_all \
        --CPU 12

會(huì)報(bào)錯(cuò)坯门,反正經(jīng)常這樣報(bào)錯(cuò):

Thread 2 terminated abnormally: Error, cmd: gunzip -c /mnt/d/Link_CQH/px22/CY_dir/2023NJCYX04-SZ_2.clean.fq.gz | fastool --illumina-trinity --to-fasta >> right.fa 2> /mnt/d/Link_CQH/px22/CY_dir/2023NJCYX04-SZ_2.clean.fq.gz.readcount  died with ret 256 at /home/cqh/miniconda3/bin/Trinity line 2183.

類似的報(bào)錯(cuò)一般是先手動(dòng)執(zhí)行報(bào)錯(cuò)的這一步,獲得left.fa和right.fa逗扒,后面再運(yùn)行就對(duì)了古戴。有時(shí)候會(huì)順手直接cat到一起。

for fn in *1.clean.fq.gz
do
        gunzip -c ./${fn} | fastool --illumina-trinity --to-fasta >> left.fa 2> ./${fn}.readcount
done

for fn in *2.clean.fq.gz
do
        gunzip -c ./${fn} | fastool --illumina-trinity --to-fasta >> right.fa 2> ./${fn}.readcount
done

cat left.fa right.fa > both.fa
left_all=`echo *_1.clean.fq.gz`
right_all=`echo *_2.clean.fq.gz`
Trinity \
        --seqType fq \
        --max_memory 30G \
        --left $left_all \
        --right $right_all \
        --CPU 12

獲得unigene集

 /home/cqh/miniconda3/opt/trinity-2.1.1/util/misc/get_longest_isoform_seq_per_trinity_gene.pl ./Trinity.fasta > unigene.fasta

修改名稱
由于前面根據(jù)物種信息表矩肩,將物種名信息放在文件夾里∠帜眨現(xiàn)提取文件夾的物種名信息,加入unigene的文件名文件內(nèi)的序列中。
注意叉袍,“物種名|Trinity名”這種格式雖然很不錯(cuò)始锚,但“|”在建立索引時(shí)會(huì)報(bào)錯(cuò),所以舍棄了喳逛。

dirname=`pwd | awk 'BEGIN{FS="/"}{print $NF}' | awk 'BEGIN{FS="_"}{print $1}'`
cat unigene.fasta | awk '{print $1}' | sed "s/>/>${dirname}_/g" > ${dirname}_unigene.fasta

預(yù)測(cè)unigene集的開放閱讀框瞧捌,并獲得gff3注釋文件,通過gffread獲得gtf文件润文。

TransDecoder.LongOrfs -t ${dirname}_unigene.fasta
cp ./${dirname}_unigene.fasta.transdecoder_dir/longest_orfs.gff3 ./${dirname}_unigene.gff3
gffread ${dirname}_unigene.gff3 -T -o ${dirname}_unigene.gtf

將unigene集以及gtf文件放到ref文件夾姐呐,以備有參組裝。

mkdir ref
seqkit seq ${dirname}_unigene.fasta -w 1000 > ./ref/genome.fasta
cp ./${dirname}_unigene.gtf ./ref/genome.gtf

集合腳本

run_DIY_trinity.sh
我們首先有一個(gè)自動(dòng)組裝trinity的腳本典蝌,這個(gè)腳本僅完成到ORF注釋曙砂,因?yàn)椴淮_定每個(gè)流程中需要哪些步驟(未必每次都需要定量或者功能注釋)

for fn in *1.clean.fq.gz
do
        gunzip -c ./${fn} | fastool --illumina-trinity --to-fasta >> left.fa 2> ./${fn}.readcount
done

for fn in *2.clean.fq.gz
do
        gunzip -c ./${fn} | fastool --illumina-trinity --to-fasta >> right.fa 2> ./${fn}.readcount
done

cat left.fa right.fa > both.fa

left_all=`echo *_1.clean.fq.gz`
right_all=`echo *_2.clean.fq.gz`

Trinity --seqType fq \
        --max_memory 30G \
        --left $left_all \
        --right $right_all \
        --CPU 12
# 并非重復(fù),第一遍經(jīng)常運(yùn)行失敗
Trinity --seqType fq \
        --max_memory 30G \
        --left $left_all \
        --right $right_all \
        --CPU 12
#unigene
/home/cqh/miniconda3/opt/trinity-2.1.1/util/misc/get_longest_isoform_seq_per_trinity_gene.pl ./trinity_out_dir/Trinity.fasta > ./trinity_out_dir/unigene.fasta
dirname=`pwd | awk 'BEGIN{FS="/"}{print $NF}' | awk 'BEGIN{FS="_"}{print $1}'`
cat ./trinity_out_dir/unigene.fasta | awk '{print $1}' | sed "s/>/>${dirname}_/g" > ${dirname}_unigene.fasta
#ORF注釋
TransDecoder.LongOrfs -t ${dirname}_unigene.fasta
cp ./${dirname}_unigene.fasta.transdecoder_dir/longest_orfs.gff3 ./${dirname}_unigene.gff3
cp ./${dirname}_unigene.fasta.transdecoder_dir/longest_orfs.pep ./${dirname}_unigene.pep.fa
cp ./${dirname}_unigene.fasta.transdecoder_dir/longest_orfs.cds ./${dirname}_unigene.cds.fa
gffread ${dirname}_unigene.gff3 -T -o ${dirname}_unigene.gtf

run_DIY_subread.sh
有參組裝腳本骏掀,實(shí)際上就是定量

#
mkdir ref
seqkit seq ${dirname}_unigene.fasta -w 1000 > ./ref/genome.fasta
cp ./${dirname}_unigene.gtf ./ref/genome.gtf

# index
path=`pwd`
subread-buildindex -o $path/ref/genome_index $path/ref/genome.fasta

# subjunc
index="$path/ref/genome_index"
for fn in *_1.clean.fq.gz
do
                sample=${fn%_*}
                subjunc -i $index \
                        -r ${sample}_1.clean.fq.gz \
                        -R ${sample}_2.clean.fq.gz \
                        -T 12 \
                        -o ${sample}.bam \
                        1>${sample}.subjunc.log 2>&1
done
#
mkdir clean_data
mv *.fq.gz clean_data
#
featureCounts -T 12 -p -t exon -g gene_id -a ./ref/genome.gtf -o raw_data.txt *.bam
#
rm *.bam
mkdir quick_results
mkdir ./quick_results/hisat2_log
cp *.log ./quick_results/hisat2_log
rm *.log
#
grep -v "#" raw_data.txt | awk '{for(i=1;i<=NF;i++) if ((i==1)||(6<=i)) printf("%s ",$i);print ""}'| cat | tr -s ' ' '\t' > read_counts.txt
grep -v "#" raw_data.txt | awk '{for(i=1;i<=NF;i++) if ((i==1)||(7<=i)) printf("%s ",$i);print ""}'| cat | tr -s ' ' '\t' > genes.matrix.txt
#
mv raw_data.txt.summary ./quick_results
mv raw_data.txt ./quick_results
mv read_counts.txt ./quick_results
mv  genes.matrix.txt ./quick_results
rm *.bam.indel.vcf
rm *.bam.junction.bed
#end

運(yùn)行腳本

run_DIY_NoRef.sh
第一步還是根據(jù)樣本信息分配文件夾鸠澈,隨后逐個(gè)文件夾執(zhí)行腳本即可

#
cat sample_list.txt | awk '{print $2}' | sort | uniq > name_list.txt
cat name_list.txt | while read line
do
        mkdir ${line}_dir
        cat sample_list.txt | awk -v spname=$line '{if($2 ==spname) {print $1}}' | while read line2
do
        mv ${line2}* ./${line}_dir
done
done
#
cat name_list.txt | while read line
do
        cp  run_DIY_trinity.sh ./${line}_dir
        cp  run_DIY_subread.sh ./${line}_dir
        cd ${line}_dir
        bash run_DIY_trinity.sh
        bash run_DIY_subread.sh
        cd ../
done
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市砖织,隨后出現(xiàn)的幾起案子款侵,更是在濱河造成了極大的恐慌,老刑警劉巖侧纯,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件新锈,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡眶熬,警方通過查閱死者的電腦和手機(jī)妹笆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娜氏,“玉大人拳缠,你說我怎么就攤上這事∶趁郑” “怎么了窟坐?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)绵疲。 經(jīng)常有香客問我哲鸳,道長(zhǎng),這世上最難降的妖魔是什么盔憨? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任膀藐,我火速辦了婚禮亚茬,結(jié)果婚禮上劣领,老公的妹妹穿的比我還像新娘。我一直安慰自己缺狠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布萍摊。 她就那樣靜靜地躺著挤茄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪记餐。 梳的紋絲不亂的頭發(fā)上驮樊,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音片酝,去河邊找鬼。 笑死挖腰,一個(gè)胖子當(dāng)著我的面吹牛雕沿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播猴仑,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼审轮,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了辽俗?” 一聲冷哼從身側(cè)響起疾渣,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎崖飘,沒想到半個(gè)月后榴捡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡朱浴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年吊圾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翰蠢。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡项乒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出梁沧,到底是詐尸還是另有隱情檀何,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布廷支,位于F島的核電站频鉴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏酥泞。R本人自食惡果不足惜砚殿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望芝囤。 院中可真熱鬧似炎,春花似錦辛萍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至仆嗦,卻和暖如春辉阶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瘩扼。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國打工谆甜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人集绰。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓规辱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親栽燕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子罕袋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容