大多数的orthologs都是从已有的发表的Genome或转录组transcriptome的数据中获得,然而有些情况下,基因组或转录组未公开,但原始的reads数据已上传了。我们可以对原始的reads数据仅对我们感兴趣的orthologs序列部分进行组装assembly,仅获得目的物种orthologs序列。已有的软件aTRAM可以利用近缘物种的pep序列去定向assembly目的物种的对应orthologs。(教程所提到的情况很少了现在,基本上都是已有基因组 or 转录组的数据,所以此篇教程理解下大致步骤和一些shell脚本的写法。)
for i in 03/*_nucl.fasta do exon_id=`basename ${i%_nucl.fasta}` seq=`cat ${i} | grep -A 1 "metzeb" | tail -n 1 | sed 's/\-//g'` seq_length=`echo${seq} | wc -m` ###计算序列的非-的长度, # Include sequence records only if the sequence is not completely missing. if [[ ${seq_length} -gt 1 ]] then echo">${exon_id}" echo"${seq}" fi done > metzeb.fasta
mkdir 04 for i in 03/*_nucl.fasta do exon_id=`basename ${i%_nucl.fasta}` if [ -f ${exon_id}.fasta ] then # Copy only the neopul sequence to a temporary file. tail -n 2 ${exon_id}.fasta > tmp.fasta # Add the neopul sequence to the existing alignment of 11 cichlids. mafft --inputorder --keeplength --anysymbol --add tmp.fasta ${i} > 04/${exon_id}_nucl.fasta # Clean up the temporary file. rm tmp.fasta fi done
## 2. 去除neo类群的序列,为了后面的Bayesian analysis of species networks mkdir 05 for i in 04/*_nucl.fasta do exon_id=`basename ${i%_nucl.fasta}` python3 convert.py ${i} 05/${exon_id}_nucl.fasta -f fasta -p neo done
mkdir 10 for i in 09/*.fasta do gene_id=`basename ${i%.fasta}` seq_length=`head -n 2 ${i} | tail -n 1 | wc -m` if [[ ${seq_length} -ge 500 ]] then cp ${i} 10/${gene_id}.fasta fi done
结果是生成了5个Neolamprologus species的序列,而这5个物种在前面的bayesian物种树的discordance,支持率也普遍不高。接下来在bayesian species network里会对这里面存在的可能ILS或introgression的情况进行分析。