MISA+Primer3设计SSR引物(五)拆分primer3输
2022-05-08 本文已影响0人
学生信的大叔
前言
MISA+Primer3
流程中primer3
设计引物在开启热力学计算后绝对是限速步骤,这里把primer3
输入文件*.p3in
文件分割,将每个文件分别用primer3
设计引物,节省你的时间。
其实这个脚本完全可以接上primer3
程序,设计引物后再合并结果文件(其中注释中的一些线程和threads写法就是为了这个想法做的准备),但是,我不想写了。累了!╯︿╰
小骆驼读了个差不多,然后根据需要再查命令写的,难看是难看了点,但还能用。
使用说明
perl p3in_split_while.pl -i Carya.fasta.p3in -t 5
-
p3in_split_while.pl
中while
是指用while写的,打算回头用数组和for重写个版本,这里加个while区别下。 - -i :输入文件,即
p3_in.pl
的结果文件,primer3
的输入文件。
我测试时用的Carya.fasta
编号NC_046572.1,所以输入文件应该是Carya.fasta.p3in
-
-t:最终要分割的文件数量,默认为5。不需要担心模块数不够被5整除,这我在脚本里已经考虑过了。
-
结果文件存放在文件夹
tmp.Carya.fasta
内。
文件名称为
Carya.fasta.1.p3in
Carya.fasta.2.p3in
Carya.fasta.3.p3in
Carya.fasta.4.p3in
Carya.fasta.5.p3in
结果文件夹会根据输入文件名称自动修改,防止多文件操作时的混乱。
脚本还可以改进的地方
- while计数有点矬,可以将文件读入数组,尝试用上下文获取计数,可能会更快点。相应的下面遍历改为for或者foreach。可见参考文件:Perl按行分割文件 链接内容。
- 整合
primer3
程序及结果。 - 占用过大硬盘空间。当
p3in
文件过大时,硬盘负荷过大,但是每次取出一定数量的文件内容拆分,重定向出多个文件,对我来说暂时还没必要。主要还是perl不够熟练,也一下子写不出来。 - 命名可能有些乱,我自己都差点不知道谁是谁。(_)
- 变量定义位置随用随写的,也是有点乱。需要找个好的模板借鉴下。
- 脚本中有很多命令的注释未删掉,这是我的思考过程,以便之后回忆思路。
脚本
点击链接获取
MISA+Primer3设计SSR引物(五)拆分primer3输入文件,以便利用多个线程节省时间
小结
收获不少,回头把知识点分开水写几个推文。
参考
perl 取整、四舍五入、向上取整、向下取整 https://blog.csdn.net/u011729865/article/details/52669460
Perl按行分割文件 https://blog.csdn.net/weixin_30565327/article/details/97184054
生信人值得拥有的编程模板-Perl:perl模板改自公众号“生信宝典”的推文(自行搜索下)。