Perl语言统计核酸GC含量程序开发

2019-08-13 08:49张婷婷庞雪原晏佳芸
科技资讯 2019年13期
关键词:生命科学

张婷婷 庞雪原 晏佳芸

摘  要:生命科学领域中无论是PCR还是测序,都需要了解目的核酸的GC含量。由于目前缺乏独立统计核酸GC含量的程序。该文采用Perl语言编程,设计处理了核酸序列统计GC含量的程序。程序采用了BioPerl环境,利用字符串拆分、遍历算法和正则表达式对核酸序列进行GC碱基的挖掘。最后该脚本可以应用于Windows和Linux系统。适合用于多环境。

关键词:GC含量  生命科学  Perl语言编程  字符串拆分  正则表达式

中图分类号:TP311.1   文献标识码:A           文章编号:1672-3791(2019)05(a)-0022-02

在生命科学领域中无论是设计引物还是分析高通量测序数据质量都非常关注核酸的GC含量[1]。这是因为在DNA双链中G碱基与C碱基是互补配对的,而且两个配对碱基之間有3个氢键连接(A碱基与T碱基之间是2个氢键连接)。所以GC含量的多少对于核酸稳定性来说是十分重要的一个因素,GC含量越高核酸的退火温度越高,核酸也越相对更稳定。在高通量数据质控中,GC含量也是非常重要的因素。通过检测GC含量可以判断测序仪测序是否测序足够随机,是否有其他DNA污染。但是,目前没有一个能够独立统计核酸GC含量的程序。虽然在Primer软件中有统计GC含量的插件,但是不可能把所有的序列都放入Primer中进行逐一统一序列的GC含量,高通量分析软件fastqc也有统计GC含量插件,但是该软件仅仅识别fq文件,对于fa文件则不识别。绝大多数时候我们所用的文件是fa(FASTA)文件。

Perl是一种稳定的跨平台编程语言,是报表提取和报告语言(Practical Extraction and Report Language)的缩写[2]。它适合用于处理字符串类型的数据。Perl语言是一种开源软件,根据GUN通用公共许可证(GPL)获得许可[3]。根据Perl语言的特点,可以设计相关程序完成对核酸序列的GC含量统计。由于DNA序列是由ATCG四种字符组成的字符串,RNA是由AUCG四种字符组成的字符串,所以它们也是一种字符串的数据。利用Perl语言设计程序统计GC含量是可行的。

1  分析方法

Perl语言中有专门的叫BioPerl的子程序可以进行核酸文件的读取。Bioperl可以安装在普通Windows系统上。统计GC含量的基本原则是C碱基和G碱基总共的数量占整条核酸序列碱基数量的百分比。对于核酸的GC含量分析首先需要对核酸字符串进行分割,拆分成一个一个碱基。拆分后的顺序也需要与原序列保持一致。然后使用遍历算法,逐一进行正则表达式匹配,如果匹配上C或者G就记录[4],否则不记录继续进行分析。具体代码为:

use Bio::SeqIO;#加载BioPerl子程序

my $input_mutiseq_file=$ARGV[0];#读取输入的核酸序列文件

my $Muti_seq=Bio::SeqIO->new(#利用BioPerl中的函数打开核酸序列文件

-file=>$input_mutiseq_file,

-format=>'fasta',);

my @GC_count;#先定义GC含量的变量,数据格式为数组格式,可储存多条核酸GC含量

my$j=1;

while (my$seq=$Muti_seq->next_seq()){#使用遍历算法拆分读取碱基

my $id=$seq->id;

my $seq_seq=$seq->seq;

my $seq_length=length$seq_seq;

my @split_seq = split//,$seq_seq;

my $GC_count;

for (my$i=0;$i<@split_seq;$i=$i+1,){

if(@split_seq[$i]=~"G|C"){$GC_count=$GC_count+1} #使用正则表达式匹配C或G

else{$GC_count = $GC_count}};

$GC_count = $GC_count/$seq_length;

@GC_count[$j]=$id."\t"."GCcount=".$GC_count."\n";

$j=$j+1;};

print @GC_count;#输出结果

以不同HN分析的流感病毒的4号核酸片段为例,运行该程序得到不同流感病毒4号核酸片段的GC含量结果(见图1)。

2  结语

利用Perl语言开发统计核酸序列的GC含量,对于研究核酸稳定性、测序的随机性和判断测序是否有污染具有指导意义。缺陷,由于该脚本的正确运行需要计算机同时拥有Perl语言和BioPerl环境,而整个Perl语言及其环境配置相对繁琐。

参考文献

[1] 陈永孜.基因表达谱芯片及核酸测序技术在癌症研究中的应用现状[EB/OL].[2019-04-04].http://kns.cnki.net/kcms/detail/23.1513.Q.20190308.1256.002.html.

[2] 刘磊,朱敏.Perl&R在语料库语言学中的应用[J].软件导刊,2018,17(1):53-55.

[3] 顾武雄.Linux代理程序安装[J].网络安全和信息化,2018(11):87.

[4] 武明,孙垒,高磊,等.Perl脚本在试验数据解析中的应用[J].遥测遥控,2016,37(3):54-56.

猜你喜欢
生命科学
新常态下高职生命科学教学中情感态度与价值观目标实现路径研究
基于生活的初中生命科学学科有效教学初探
案例教学法在生物化学教学中的应用研究
生命科学学院开设研究生扫描电镜课程的探索
基于转化医学理念的生命科学教育实践探究
生物制造
生物制造
关于生命科学类通识教育课程特色建设的思考