本文并非教程,只是总结一下日常学习的经验。因为本人也是小白,难免会有错误,欢迎各位交流指正。
https://github.com/zichner/primerDesign
大体教程作者已经在github中介绍了,但在按照教程跑流程的时候还是出了一些问题,所以简单总结一下。
PrimerDesign的介绍在github链接中有,简单来说就是设计引物的。
PrimerDesign分为Docker版和Python版,我用的是Python版(别问,问就是不会用Docker...)。
Python版流程
1. 需要安装ncbi-blast和primer3
ncbi-blast: ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST
(复制粘贴或者github里有链接,我也不知道为啥打不开)
我用的是Mac,所以下的是dmg文件,安装比较简单。
但我觉得有必要讲一下的是,makeblastdb的位置在
/usr/local/ncbi/blast/bin/makeblastdb
(为什么讲这个,因为我没找到。。。)
使用makeblastdb格式化数据库,
makeblastdb -in REF_GENOME.fa -dbtype nucl -parse_seqids
REF_GENOME.fa是你的参考基因组文件。
primer3: http://sourceforge.net/projects/primer3/files/primer3
2. 需要设置config文件
这个应该是重中之重,因为作者在github中基本没有提到config文件相关的内容。从github下载下来的文件中有四个config示例文件,直接拿来运行的话会报错,因此我们需要修改里面的一些参数。
[General]
# Location of reference genome BLAST database
reference_genome = /Users/.../primerDesign/reference.fa //参考基因组的路径
[Primer3]
//省略中间内容
# Path to Primer3 configuration files
PRIMER_THERMODYNAMIC_PARAMETERS_PATH=/Users/.../primer3-2.4.0/src/primer3_config/
//我把中间路径省略了
//这是primer_config文件夹的路径,在primer3中
[Programs]
# Path to executables unless $PATH includes them
primer3 = /Users/.../primer3-2.4.0/src/primer3_core //primer3_core的路径,在primer3中
blast = /usr/local/ncbi/blast/bin/blastn //blastn的路径
blastdbcmd = /usr/local/ncbi/blast/bin/blastdbcmd //blastdbcmd的路径
3. 输入文件
1 1000000 . 1000100 del id1
第1列:起始染色体号;
第2列:起始位点;
第3列:终止染色体号,只针对translocation,其他类型填"."。
第4列:终止位点;
第5列:变异类型;
第6列:注释,没有就填".";
4. 运行命令
python primerDesign.py primerDesign_22bp_relaxed.cfg exampleVariants.txt result
5. 结果
会产生两部分内容(在一个文件里),第一部分是至少有一个unique primer,第二部分是两个都是unique primer。
unique的意思是这个primer在整个基因组中只有一个target。
##第一部分
1 1000000 . 1000100 del id1 2.411367 AGGTCACGCACATCATGACTCA CAGACCACACCACACCCCTC True False 61.986 62.397 247 146 True True 999753 1000246 393 493
#第二部分
1 1000000 . 1000100 del id1 0.156586 AGGTCACGCACATCATGACTCA ACCTGCATCTAAGCTTAGGGCC True True 61.986 62.143 247 618 True False 999753 1000718 865 965
前6列:和输入文件相同;
第7列:Primer3 quality;
第8、9列:Primer1 和Primer2的序列;
第10、11列:Primer1和Primer2是否unique;
第12、13列:Primer1和Primer2的Tm值;
第14、15列:Primer1和Primer2与Breakpoint的距离;
第16、17列:Primer1和Primer2是否可被测序;
第18、19列:Primer1和Primer2的坐标;
第20、21列:Variant和Reference预期的条带大小;
最后根据自己的需要进行选择。
如有错误,欢迎指正。