生物信息学,需要掌握C++吗?

Python017

生物信息学,需要掌握C++吗?,第1张

‍‍

首先生物信息学也是计算机相关学科。凡是和编程和算法相关的专业,我觉得C语言是基础,是必须要学一学的。C语言能教给你的最重要的事情,就是让你对“计算机计算”这件事情有一个不错的了解。对计算机能做的事情充分掌握。当然这些东西通过学习计算理论、计算机系统结构、算法导论等课程都能掌握,听起来也没有什么非学C的必要。不过使用C/C++编程的时候对这些的亲身体会更为重要一些。如果你自己觉得自己是非计算机的,比如本科是生物或者医学出身的。算法和程序不需要了解太深,那么不学C也是可以的。相对的,你也只能处在底层的利用别人的工具分析的阶段,一旦这些工具中出什么问题或者想针对自己的需求修改这些工具的结果就很困难了。再加上数据挖掘、机器学习其实离生物信息学并不是那么远。而且只会C/C++肯定是不行的,选择方便自己的工具也是很重要的。C/C++也只是工具的一种。在统计分析方面R就很方便。如果想自己做神经网络结构的话,python也很好用。不过到了实用的方面,你做的东西走向产品化。C++就变得非常重要了。C++经常被使用在需要效率的地方,而生物信息学不少方面的数据处理的数据量并不小。重构过一个关于DNA数据分析的python->C++的优化,目的就是提高效率,结果是快了约1000倍。现在看到有些人为了继续提高效率都开始上FPGA了。所以做生物信息不需要关注效率可能是个伪命题。

‍‍

fastp 在2018 发表于bioinformatics 具体文章地址如下:

https://academic.oup.com/bioinformatics/article/34/17/i884/5093234

fastp是一款非常棒的数据质控的软件,可以过滤低质量的reads,去除adapter ,数据截取,生成质控报告等等,由于其是C语言撰写的,速度非常快。具体Github路径如下:

https://github.com/OpenGene/fastp

fastp软件参数说明如下:

SE使用实例:

fastp -i BB127_P_1.fq.gz -o BB127_Lib1_Lane1_R1.fastq -A GATCGGAAGAGCACACGTCTGAACTCCAGTCAC -h BB127_filter.html

PE使用实例:

fastp -i reads.1.fq.gz -I reads.2.fq.gz -o clean.1.fq.gz -O clean.2.fq.gz -z 4 -q 20 -u 30 -n 10 -h stat.html

质控报告产出如下: