Blast+ 网页实现
1.前端发送表单
表单数据包括
序列信息
blast database
其他可选的参数
选择blastn或者blastp
formInline: {
sequence: '',
database: '',
evalue: '-evalue 1.0e-5 -num_alignments 10 -max_hsps 10',
blastType: ''
},1.1提交表单数据前进行数据校验
表单校验不成功,不能够提交
校验成功后使用
FormData封装表单数据打开遮罩层,阻止多次提交
使用
axios获取响应数据后,关闭遮罩层
2.响应数据渲染
封装一个show.vue子组件,子组件中使用props获取父组件传递的响应数据,子组件中reponseData初始化值为空
在渲染序列比对情况时候,遇到对不齐的情况;主要是由于没有使用等宽字体

使用计算属性,将父组件的响应数据转换成需要渲染的数据
3.后端node运行blast+
使用node运行系统命令,来执行blast+
3.1创建两个临时文件,用于存储序列信息和blast运行结果
使用
tmp模块
3.2运行系统命令
使用child_process模块运行子进程,调用execFile函数执行系统脚本
execFile函数参数:
系统脚本所在绝对路径
传递参数的数组
回调函数,判断脚本是否执行成功
3.3解析Blast+ outfmt 0格式文件
outfmt 0格式文件利用关键字
Query=获取查询序列所在行号关键字
>获取匹配序列所在行号匹配序列之间,间隔行数是固定的
4.演示地址
http://cotton.hzau.edu.cn/web/test#/blast/query
参考
Last updated
Was this helpful?