期刊VIP學術指導 符合學術規范和道德
保障品質 保證專業,沒有后顧之憂
摘 要:生命科學領域中無論是PCR還是測序,都需要了解目的核酸的GC含量。由于目前缺乏獨立統計核酸GC含量的程序。該文采用Perl語言編程,設計處理了核酸序列統計GC含量的程序。程序采用了BioPerl環境,利用字符串拆分、遍歷算法和正則表達式對核酸序列進行GC堿基的挖掘。最后該腳本可以應用于Windows和Linux系統。適合用于多環境。
關鍵詞:GC含量 生命科學 Perl語言編程 字符串拆分 正則表達式
在生命科學領域中無論是設計引物還是分析高通量測序數據質量都非常關注核酸的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.
推薦閱讀:《統計與預測》是一本統計學刊物。旨在傳播統計知識,交流統計科研成果,提高本省的統計工作水平,更好地發揮統計的服務與監督作用。