<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>生信 on Yonder Mountain</title><link>https://zyyang0124.github.io/categories/%E7%94%9F%E4%BF%A1/</link><description>Recent content in 生信 on Yonder Mountain</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 12 Jan 2026 15:52:00 +0000</lastBuildDate><atom:link href="https://zyyang0124.github.io/categories/%E7%94%9F%E4%BF%A1/index.xml" rel="self" type="application/rss+xml"/><item><title>染色体共线性分析</title><link>https://zyyang0124.github.io/p/synteny-analysis/</link><pubDate>Mon, 12 Jan 2026 15:52:00 +0000</pubDate><guid>https://zyyang0124.github.io/p/synteny-analysis/</guid><description>&lt;img src="https://zyyang0124.github.io/p/synteny-analysis/cover.jpg" alt="Featured image of post 染色体共线性分析" /&gt;&lt;h2 id="染色体共线性分析"&gt;染色体共线性分析
&lt;/h2&gt;&lt;p&gt;以 &lt;em&gt;Siler cupreus&lt;/em&gt; 和 &lt;em&gt;Portia taiwannica&lt;/em&gt; (两种跳蛛) 为例&lt;/p&gt;
&lt;h2 id="1-物种间共线性分析"&gt;1. 物种间共线性分析
&lt;/h2&gt;&lt;p&gt;数据要求：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;去冗余之后的蛋白质序列 *.faa&lt;/li&gt;
&lt;li&gt;基因组注释文件 *.gff&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;软件要求：MCScanX、mmseqs&lt;/p&gt;
&lt;h3 id="11-blast"&gt;1.1 blast
&lt;/h3&gt;&lt;p&gt;数据初步处理：只保留 gene ID，去掉 -RA 后的所有内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sed 's/-RA.*//' siler.faa &amp;gt; siler_filitered.fa
sed 's/-RA.*//' portia.faa &amp;gt; portia_filitered.fa
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id="111-基于蛋白序列构建blast数据库"&gt;1.1.1 基于蛋白序列构建blast数据库
&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;mmseqs createdb siler_filitered.fa portia_filitered.fa all_mmseqs.db
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id="112-使用目标物种的-cdspepfaafa-序列与此前构建的数据库进行比对结果文件为blast"&gt;1.1.2 使用目标物种的 cds/pep/faa/fa 序列与此前构建的数据库进行比对，结果文件为*.blast
&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;mmseqs easy-search all.fa all_mmseqs.db all.blast tmp -s 7.5 --alignment-mode 3 --num-iterations 4 -e 1e-5 --max-accept 5 --threads 70
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第三列序列相似性需要百分制，如果全都小于1的话，需扩大100倍&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;awk -F'\t' 'BEGIN{OFS=&amp;quot;\t&amp;quot;} {$3=sprintf(&amp;quot;%.2f&amp;quot;, $3*100); print}' all.blast &amp;gt; all_m8.blast
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最终数据库格式如下：（gene ID 需要简化, 可参考后文替换命令）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;PT00001424 PT00001424 100 278 0 0 1 278 1 278 2.946E-177 548
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="12-bed-文件准备"&gt;1.2 *.bed 文件准备
&lt;/h3&gt;&lt;p&gt;要求：每个基因保留一个蛋白序列（通常为主转录本）&lt;/p&gt;
&lt;h4 id="121-将gff文件转换成mcscanx所需格式该命令需根据具体物种调整"&gt;1.2.1 将.gff文件转换成MCScanX所需格式（该命令需根据具体物种调整）
&lt;/h4&gt;&lt;p&gt;MCScanX 不需要原始*gff文件的所有内容，只需要提取其中的第 1, 9, 4, 5 列，其中第 9 列只提取 gene ID 即可&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;awk -F &amp;quot;\t&amp;quot; '{a=substr($9,4,25)}$0~/gene/{print $1 &amp;quot;\t&amp;quot; a &amp;quot;\t&amp;quot; $4 &amp;quot;\t&amp;quot; $5}' siler_maker.gff &amp;gt; siler.gff
awk -F &amp;quot;\t&amp;quot; '{a=substr($9,4,25)}$0~/gene/{print $1 &amp;quot;\t&amp;quot; a &amp;quot;\t&amp;quot; $4 &amp;quot;\t&amp;quot; $5}' portia_maker.gff &amp;gt; portia.gff
cat siler.gff portia.gff &amp;gt; all.gff
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;串联得到的 all.gff 还需进一步调整格式，在这里我查看了文件前 5 行，如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Scup_Un155 Siler_cupreus_00018918;Na 5062 30418
Scup_Un155 Siler_cupreus_00018918-RA 5062 30418
Scup_Un110 Siler_cupreus_00018926;Na 37738 48457
Scup_Un110 Siler_cupreus_00018926-RA 37738 48457
Scup_Chr6 Siler_cupreus_00012661;Na 359050 412595
Scup_Chr6 Siler_cupreus_00012661-RA 359050 412595
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接下来根据 all.gff 内容，需要作如下调整：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;删除所有带有 “;” 的行&lt;/li&gt;
&lt;li&gt;删除所有未成功挂载的染色体（带有 &amp;ldquo;Un&amp;rdquo; 的行）&lt;/li&gt;
&lt;li&gt;简化第一列的命名&lt;/li&gt;
&lt;li&gt;简化第二列的命名&lt;/li&gt;
&lt;li&gt;去重复&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;#删除所有带有 “;” 的行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;grep -v &amp;quot;;&amp;quot; all.bed &amp;gt; all1.bed
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;#删除所有未成功挂载的染色体（带有 &amp;ldquo;Un&amp;rdquo; 的行）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;grep -v &amp;quot;Un&amp;quot; all1.bed &amp;gt; all2.bed
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;#简化第一列的命名&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sed &amp;quot;s/Scup_Chr/sc/g&amp;quot; all2.bed &amp;gt; all3.bed
sed 's/Ptai_Chr/Pt/g' all3.bed &amp;gt; all4.bed
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;#简化第二列的命名&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#第二列中 -** 的去除
awk 'BEGIN{OFS=&amp;quot;\t&amp;quot;} {
for (i=1; i&amp;lt;=NF; i++) {
sub(/-.*/, &amp;quot;&amp;quot;, $i);
}
print
}' all4.bed &amp;gt; all5.bed
#第二列中 gene ID 前缀简化
sed 's/Siler_cupreus_/SC/g' all5.bed &amp;gt; all6.bed
sed 's/Portia_taiwanica_/PT/g' all6.bed &amp;gt; all7.bed
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;#去重复&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sort all7.bed | uniq &amp;gt; all.gff
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此时得到的all.gff文件如下（当然，在此之前需要删除最初的 all.gff )&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pt1 PT00000001 923338 1234673
pt1 PT00000002 1283053 1329480
pt1 PT00000003 1423863 1459005
pt1 PT00000004 1510151 1568055
pt1 PT00000005 1568392 1582644
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="13-运行-mcscanx"&gt;1.3 运行 MCScanX
&lt;/h3&gt;&lt;p&gt;将 all.blast 和 all.gff 置于一个单独文件夹（这里使用 data/），运行 MCScanX&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;MCScanX data/all -b 2 -s 5 -e 1e-5
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;all.blast 和 all.gff 两个文件命名除了后缀必须完全相同&lt;/li&gt;
&lt;li&gt;两个文件中的gene ID 必须完全相同&lt;/li&gt;
&lt;li&gt;MCScanX 运行命令在文件夹后必须跟上统一的文件名&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="14-可视化"&gt;1.4 可视化
&lt;/h3&gt;&lt;p&gt;使用上一步得到的 all.gff 和 all.collinearity 文件&lt;/p&gt;
&lt;p&gt;在 &lt;a class="link" href="https://www.chiplot.online/" target="_blank" rel="noopener"
&gt;https://www.chiplot.online/&lt;/a&gt; 中绘图&lt;/p&gt;</description></item></channel></rss>