针对全基因组数据设计SSR引物

应用软件:samtools(获得染色体全长信息)、bwa(建立索引)、GATK(变异查找与基因分型,需要安装jdk8)、seqkit(fasta/q处理)、Misa(SSR位点搜索)、bedtools(提取序列bed)、primer3(设计引物)、e-PCR(筛选)
软件安装用的conda或者wget命令,以前的文章里面有。

  1. 根据基因组大小考虑是否拆分染色体
    bedtools2.29在分析大于512M的染色体时,会报错。当染色体过大时,需要拆分染色体。

  2. 获取每个染色体行数:

cat Final.re.fa |grep -n ">Chr*" >PLIB.txt             #Final.re.fa是全基因组数据名字
  1. 拆分基因组成染色体:
    ①未拆分染色体:假如得到的第一二行是你1号染色体
sed -n '1,2p' Final.re.fa >Chr1.fa

②拆分了染色体:假如得到的第一二行是你1号染色体的第一部分。三四行是1号染色体的第二部分

sed -n '1,2p' Final.re.fa >Chr1_part1.fa
sed -n '3,4p' Final.re.fa >Chr1_part2.fa

以此类推

  1. 建立索引(samtools)
    ①先cat一个Chr1.bed的空白文件:
cat >Chr1.bed

②统计染色体全长信息:

samtools faidx Chr1.fa

把其中的全长序列信息放入Chr1.bed的空白文件,Tab键分隔。如:


注意,输入.bed文件时,全长要减1,因为是从0计数。

  1. 分析SSR(原文链接:https://www.jianshu.com/p/d9a9b0f3f09f
    ①目标染色体(区段)SSR分析:
perl misa.pl Chr1.fa

②提取SSR上下游各150bp的序列:

cat Chr1.fa.misa |awk 'NR>1 {print $1"\t"$6-150"\t"$7+150}' >Chr1_ssr.bed

③使用bedtools工具提取重复序列:

bedtools getfasta -fi Chr1.fa -bed chr1_ssr.bed -fo Chr1_ssr.fa

④再进行一次SSR查找

perl misa.pl Chr1_ssr.fa

⑤修改p3_in.pl文件,primer3 2.4.0条件下:
print OUT "PRIMER_SEQUENCE_ID=id"."_ssr_nr\nSEQUENCE=$seq\n";

改为

print OUT "SEQUENCE_ID=id"."_ssr_nr\nSEQUENCE_TEMPLATE=$seq\n";
⑥运行misa

perl p3_in.pl Chr1_ssr.fa.misa 

⑦primer3进行引物设计:

primer3_core --default_version=1 --output=Chr1_ssr.fa.p3out Chr1_ssr.fa.p3in

对结果进行处理:

perl p3_out.pl Chr1_ssr.fa.p3out Chr1_ssr.fa.misa

⑧e-pcr处理数据:

cat Chr1_ssr.fa.results |awk 'NR>1 {print $1"\t"$8"\t"$11"\t"$1}' >Chr1_ssr.txt

e-PCR输出文件(时间会很久):

e-PCR  Chr1_ssr.txt D=100-500 /mnt/hgfs/重测序数据/Final.re.fa N=2 G=2 T=3 > Chr1_ssr_ePCR.txt

⑨R studio:
将输出的文件放入本地电脑的文件夹下,我放的H盘
运行以下命令:

setwd("H:\\")          #移动到H盘
data0<-read.table("H:/Chr1_ssr_ePCR.txt",sep="\t",header=F,na.strings="?")        #打开文件
data<-as.matrix(data0)
dup<-unique(data[duplicated(data[,2]),2])
num<-c()
for (k in 1:length(dup)) {                         #开始循环
  n<-which(data[,2]==dup[k])
  num<-c(num,n)
}
res0<-data[-num,]
write.csv(res0,"chr1_ssr_ePCR.csv",row.names=F)          输出结果

  1. 合并文件
    R studio跑出来的文件就是SSR引物所在位置,需要和原本输出的.result文件合并,就可获得序列
    在Excel内用VLOOKUP命令
    =VLOOKUP(目标ssr,总ssr+引物,2,0)
    然后补充好表格,该染色体ssr数据获取结束。
  2. 网页比对数据,检测特异性
    http://202.194.139.32/PrimerServer/

2020.8 by ZXG

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容