程盛陽 郭亞 夏倩
摘? 要:幾乎所有光合作用過程都可通過葉綠素熒光反映出來,葉綠素熒光動力學技術已經成為研究植物生理最廣泛的技術之一,本軟件分析葉綠素熒光參數,輔助研究光合作用過程中光系統(tǒng)II對光能的吸收、傳遞、耗散、分配等過程。程序從excel表中批量讀取葉綠素熒光儀測量得到的數據,在網頁中運用JavaScript語言編程,自動繪制OJIP曲線,以及相應的OJIP曲率曲線、一階導數曲線、二階導數曲線。用戶能在交互式OJIP曲線上設定區(qū)間,根據設定算法,自動定位符合條件的I點與J點,手工調整與優(yōu)化特征點位置,將定位的特征點結果作為文件導出并保存,使葉綠素熒光信號研究更加方便快捷。
關鍵詞:JavaScript;葉綠素熒光信號;OJIP曲線
中圖分類號:TP391.7? ? ?文獻標識碼:A
Abstract:Almost all changes in photosynthetic processes can be reflected by chlorophyll fluorescence.Chlorophyll fluorescence kinetics technology has become one of the most widely used techniques for studying the physiological ecology of plants.This paper presents a set of software that analyzes chlorophyll fluorescence parameters and helps the study of photosynthesis in the process of light energy absorption,transmission,dissipation,distribution and etc.The software is programmed in JavaScript,which reads the measured data from excel tables and automatically draws OJIP curves,as well as the corresponding OJIP curvature,first derivative curve and second derivative curve.Users can use the interactive interface to set an interval,and the software will automatically locate I and J points according to the set algorithm.It supports manual adjustment and optimization of the position of the feature points.The results of the localized feature points are exported and stored as files,making it easier and faster to study chlorophyll fluorescence signals.
Keywords:JavaScript;chlorophyll fluorescence signal;OJIP curve
1? ?引言(Introduction)
植物光合作用為地球上的生命活動提供物質及能量基礎,提高光合作用效率具有重要的意義,為了量化衡量植物葉片的光合作用,早在1931年Kautsky和Hirsh就認識到光合原初反應和葉綠素熒光之間有著密切的關系,此關系被稱為Kautsky效應[1]。經過暗適應的光合材料經過照光后,葉綠素熒光先迅速上升到一個最大值,然后逐漸下降,最后達到一個穩(wěn)定值。此后,隨著研究的深入,人們逐步認識到熒光誘導動力學曲線中蘊藏著豐富的信息。葉綠素熒光動力學曲線如圖1所示。
葉綠素熒光動力學曲線包含了十分豐富的光合作用過程變化的信息,其分析技術是近年來在光合作用機理研究中發(fā)展起來的一種新型、快速、簡便、精確且整體無損傷檢測植物光合作用生理狀況的新技術,被視為植物光合作用與環(huán)境關系的內在探針,得到廣泛應用[2]。目前,測量葉綠素熒光的瞬變現象均是通過熒光儀來測量[3],得到的葉綠素熒光測量結果就是典型快速葉綠素熒光誘導動力學曲線(OJIP曲線),該曲線上存在O、J、I、P等特征點,其中J點與I點一般定義為葉綠素熒光誘導曲線的第一、第二個峰值點。目前定位J點與I點的方法時均是使用預設的固定時間點,存在定位過程不透明、定位結果不準確、不能調整與優(yōu)化I點與J點的位置等問題[4,5]。
本文中運用一種基于對象的網頁腳本語言JavaScript,編寫嵌套在網頁中的程序,繪制葉綠素熒光誘導動力學曲線及其導數、曲率曲線。通過可交互式圖表,實現對特征點的可視化定位,且支持對定位結果的手動調整,解決了現在傳統(tǒng)儀器存在的問題,可支持多數據調整,及調整后下載的功能。
2? ?系統(tǒng)設計(System design)
2.1? ?軟件系統(tǒng)結構與處理流程
程序從測量數據文件讀取OJIP曲線的坐標值,根據用戶的選擇,執(zhí)行相應的處理,包括擬合曲線、一階與二階導數、曲率等計算,繪制相應的圖形曲線,供用戶進行交互式的分析。
程序流程包括數據導入、數據處理、OJIP曲線可視化,目標曲線繪制輸出等,如圖2所示。
2.2? ?導入數據與格式轉換
OJIP曲線的坐標值以二進制數據格式,存放在Execl文件中,JavaScript提供了File API用于讀取文件,其中FileReader對象的readAsBinaryString()方法允許瀏覽器直接將所讀取的坐標原始值,作為二進制字符串存儲到其result屬性中,直接供后續(xù)程序解析。
由于FileReader.readAsBinaryString()是W3C組織在HTML5中新提出的文件API,一些瀏覽器,例如Internet Explorer無法兼容此方法。這時,先對瀏覽器是否支持此方法進行測試,如果不支持,就使用FileReader.readAsArrayBuffer()方法進行替代。將原始的二進制數據Blob[6]讀取為字節(jié)數組ArrayBuffer,再處理轉換為以Base64格式編碼的字符串。
讀入二進制字符串或Base64字符串后,調用js-xlsx庫,可以解析數據為CSV、html、json等格式,本文使用CSV格式,生成一行字符串。excel表中每行單元格數據從左到右順序保存,以逗號分隔,從上到下不同數據行以\n符合連接。
再通過字符串處理,將CSV字符串轉存為二維數組,數組內每個元素的內容均與原工作簿中對應位置的數據相同[7]。
2.3? ?數據處理與曲線擬合
2.3.1? ?曲線擬合
程序每讀取一個數據文件創(chuàng)建一個對象,對應建立一個OJIP曲線,原始數據與計算結果都作為對象屬性存儲。同時,對象定義了擬合、求導、求曲率等方法,可根據需求進行調用。
為了得到OJIP曲線,要根據導入的曲線橫坐標離散值,擬合為函數表達式的形式,其計算方法如下:
2.3.2? ?曲率計算
求出OJIP的擬合曲線后,再求出其一階與二階導數表達式,將坐標點帶入一階與二階的表達式中,求出該點處的導數值。曲率計算公式如下所示,其中與分別表示曲線的一階與二階導數:
2.4? ?交互定位特征點
設計的軟件應用echarts圖表庫插件將離散的坐標點繪制為折線圖。echarts是一個純JavaScript的圖表庫,可以運行在PC和移動設備上,兼容當前絕大部分瀏覽器,可提供直觀、可交互的數據可視化圖表[8]。
繪制的圖表分兩種:特征點預選擇圖表、特征點展示與優(yōu)化圖表。特征點預選擇圖表展示所有輸入的OJIP曲線的曲率圖形,用戶在預判I點與J點的大致位置后,通過鼠標刷選確定特征點的預選區(qū)間,程序便在該區(qū)間內自動尋找特征點,進入特征點展示與優(yōu)化圖表。
特征點展示圖表中繪制的OJIP曲線,以及其曲率、一階、二階導數曲線,各曲線上均標注出自動定位的I點與J點,用戶可以在任一圖表上對I點與J點的位置進行微調。通過選擇不同的OJIP曲線,可調整優(yōu)化輸入的各個OJIP曲線。
2.4.1? ?特征點預選擇圖表
程序預定義了一個chartOptions變量,用于存儲圖表的各項設置。在計算得到繪圖所需要的各點坐標后,將每個待繪制的點的坐標插入到chartOptions.series屬性中,并定義其類型為line,即折線圖。通過chart.setOption()方法更新圖表,使折線圖顯示在頁面上。
為了實現通過鼠標刷選指定特征點區(qū)間的功能,需要再次將各個待繪制的點的坐標插入到chartOptions.series屬性中,更改設定其類型為scatter,即散點圖。這是由于echarts的折線圖不支持brush()方法,無法直接在折線圖上刷選,而使用散點圖則解決了此問題。將散點圖的symbolSize設置為0,可以使散點不顯示,用戶在操作時觀察到的效果就和直接在折線圖上刷選相同。
程序記錄圖表上被選中的數據點的序號,存儲在一個數組中。由于同一個區(qū)域中數據點的序號是連續(xù)的,可以將序號分離為幾個數組,分別對應選中的各個區(qū)域。對于每一條曲線,程序都在選中的區(qū)域內尋找極大值點作為特征點。
2.4.2? ?特征點展示與優(yōu)化圖表
程序將自動找到的I點與J點的坐標以markPoint類型插入到chartOptions.series屬性中,同時也插入到各OJIP曲線對象的屬性中。程序監(jiān)聽markPoint上的點擊事件,當用戶需要調整特征點的位置時,點擊需要移動的特征點,程序會記錄被點擊的特征點的序號。之后在用戶點擊移動按鈕時,程序更新特征點的位置,并按照新位置重繪圖表。
2.4.3? ?數據導出
程序將需要導出的數據存貯到一個以數組為元素的數組中(array of arrays),使用XLSX.utils.aoa_to_sheet()方法將它轉換為一個臨時的sheet對象。其中,外層數組中的每個數組元素會成為sheet的一行,而內層數組的每個元素則成為一行中的各個單元格。將sheet對象添加到一個workbook對象之后,使用XLSX.write()方法,生成一個待輸出的二進制文件。使用JavaScript提供的saveAs()方法,可以使瀏覽器以下載文件的方式將此文件保存到本地,完成數據的導出。
3? ?結論(Conclusion)
本軟件自動繪制OJIP曲線,以及相應的OJIP曲率曲線、一階導數曲線、二階導數曲線。用戶能在交互式OJIP曲線分析葉綠素熒光參數,輔助研究光合作用過程中光系統(tǒng)II對光能的吸收、傳遞、耗散、分配等過程,使葉綠素熒光信號研究更加方便快捷。
可進一步運用物聯網技術,通過遠程智能化的葉綠素熒光信號儀,在線實時報送數據,構成采樣數據庫,軟件分析系統(tǒng)直接實時讀取數據庫數據,實現遠程分析與自動優(yōu)化。
參考文獻(References)
[1] Papagorgiou G.Bioenergetics of Photosynthesis[M].New York:Academic Press,1975:319-337.
[2] K.Rohá?ek.Chlorophyll Fluorescence Parameters:The Definitions,Photosynthetic Meaning,and Mutual Relationships[J].Photosynthetica,2002,40(1):13-29.
[3] G H Krause,E Weis.Chlorophyll Fluorescence and Photosynthesis:The Basics[J].Annual Review of Plant Physiology and Plant Molecular Biology,1991,42(1):313-349.
[4] 王子毅,張春海.基于ECharts的數據可視化分析組件設計實現[J].微型機與應用,2016,35(14):46-48;51.
[5] 溫國勝,田海濤,張明如,等.葉綠素熒光分析技術在林木培育中的應用[J]應用生態(tài)學報,2006,17(10):1973-1977.
[6] 王莉敏,梁正和,段全鋒.基于HTML5大文件斷點續(xù)傳的實現方案[J].計算機與現代化,2016(03):91-95.
[7] 林立云.推薦一種讀和寫CSV文件的程序設計方法[C].Proceedings of 2011 National Teaching Seminar on Cryptography and Information Security(NTS-CIS 2011),2011,1(3):93-95.
[8] 萬文博,華燈鑫,樂靜,等.基于激光誘導葉綠素熒光壽命成像技術的植物熒光特性研究[J].物理學報,2015(19):68-74.
作者簡介:
程盛陽(1996-),男,本科生.研究領域:物聯網技術.
郭? ?亞(1977-),男,博士,教授.研究領域:物聯網技術.
夏? ?倩(1994-),女,碩士生.研究領域:物聯網技術.