前言
之前看panda姐的blog時盒刚,發(fā)現(xiàn)介紹了篇關于Metagenome的分析教程掀淘,剛好就想著試著翻譯下砚亭,作為我的第一篇文章曾棕,順帶練練我MarkDown語法的訓煉吧扣猫。
Introduction
目前微生物學在宏基因組方面最大的挑戰(zhàn)是需要將宏基因組學和序列分析納入傳統(tǒng)微生物學的訓練中。Sean Eddy(Howard Hughes醫(yī)學中心的計算機生物學家)非常6的對生物學上的高通量測序和其訓練在他的keynote進行了講解睁蕾。
為了方便微生物學家組裝宏基因組苞笨,我們這次補充了如何評估宏基因組里參考序列(如,gene,contigs,等等)豐度的指導子眶。我們的方法包括以下所有的參考1.可獲得的基因組參考 2.由宏基因組組裝來的瀑凝。通常來說,你想完成該指導臭杰,或者大多數(shù)的宏基因組組裝粤咪,需準備以下東西:
1.可用的服務器。大多數(shù)宏基因組組裝需要的內存是大多數(shù)研究人員的個人電腦達不到的渴杆。在本次講解中寥枝,我們建議您使用公開的Amazon EC2樣本服務器,所有人經過登記后都可以注冊磁奖。
2.一個宏基因組數(shù)據(jù)庫囊拜。我們本次講解選擇使用WGS數(shù)據(jù)庫的HMP MOCK種群,鑒于其的可使用性比搭,合適的大小冠跷,以及參考基因的可獲得性。該數(shù)據(jù)庫是22種種類身诺,其基因被從自然界分離蜜托,合并并測序,而來的模擬宏基因組霉赡。
3.負責組裝橄务,read mapping,和基因注釋的軟件,我們將會展示將這些軟件安裝在Ubuntu系統(tǒng)的服務器上穴亏。
0.和我們登陸同一個頁面
本次教程的第一步是提供了一面向所有用戶蜂挪,無論你使用壽命電腦的可使用以下全部命令的服務器。為了達到這個目的嗓化,我們需要使用云計算锅劝。具體來說,亞馬遜網絡服務彈性計算云蟆湖。租用該網絡服務故爵,你需要申請一個信用卡,并使用該信用卡付費。該網絡服務收費很合理诬垂。你完成該教程大約在四小時以內劲室,花費低于1美元。(譯者注:國內可以使用阿里云或百度云完成該教程结窘,注意很洋,在校學生如果沒有接觸過Linux操作系統(tǒng),可以先行購買10元/月的學生優(yōu)惠對Linux命令與軟件安裝進行學習隧枫,但是該服務器跑RNA-seq分析都跑不動啊喉磁。)
當你注冊好了亞馬遜網絡服務器,你需要按照網站說明啟動云“案例”或服務器官脓。作為本次教學协怒,我們建議你使用Data Science Toolbox。在運行前有幾點需要注意(不用Amazon的話卑笨,以下意義不大):
1.選擇"in the cloud"的運行指導孕暇。
2.你可以使用任一AMI(系統(tǒng)映像),但我們建議你使用US EAST,ami-d1737bb8赤兴。(這個國內的看看就好了妖滔。)
- 不要忘記Data Science Toolbox指導里的第二條規(guī)制:添加“自定義TCP規(guī)制”里端口為“8888”,源為“Anywhere"桶良。
4.從頭至尾的完成到了step4后座舍。當你到達step5時,參考下文陨帆。
如果你用的是Mac或Linux操作系統(tǒng)登錄遠程服務器出現(xiàn)問題:
曲秉。檢查你的密鑰權限是否被更改(就是那個以*.pem結尾的那個)
。確定你在跑ssh命令遠程登錄服務器和你的安全文件在同一個文件夾下歧譬。
當你可以成功的跑類似于以下命令時,你便可以成功登錄服務器(其中的名字和EC2地址是用你自己的)
$ ssh -i MyKeyPair.pem ubuntu@ec2-XX-XX-XX-XXX.compute-1.amazonaws.com
此時你的命令行變?yōu)轭愃朴谌缦滤荆?/p>
ubantu@ip-10-181-106-120:
在運行本教程前你還需要做幾件小事搏存,
逐條復制粘貼以下命令在你的命令行中瑰步,并每條后用ENTER運行:
cd /mnt
sudo git clone https://github.com/germs-lab/frontiers-review-2015.git
之后輸入下列命令行,并在提示出現(xiàn)后輸入筆記本密碼:
dst setup base
之后再復制粘貼以下命令:
sudo ipython notebook --profile=dst --notebook-dir=/mnt/frontiers-review-2015
這樣會為本次教程啟動一個Ipython Notebook璧眠。離開終端缩焦,打開你的互聯(lián)網瀏覽器,最好是Google Chrome责静。你還需在上面登錄你的EC2實例的公共DNS地址袁滥,如"ec2-XX-XX-XX-XXX"。如果你不知道你的DNS地址灾螃,你可以隨時在你的AWS EC2控制板上查看题翻。
在你的瀏覽器上,導航至https://ec2-XX-XX-XX-XXX:8888腰鬼。幾乎所有瀏覽器都會提醒你這是個不安全的地址嵌赠,不需要緊張塑荒。在Chrome瀏覽器上,你可以點擊“高級”選項姜挺,然后再點擊“繼續(xù)進程”齿税。然后輸入密碼(之前你輸入的筆記本密碼),然后你就愉快的看見一個包含著一個叫”frontiers-nb-2015“文件的筆記本了炊豪。
1.如何使用這個IPython筆記本
IPython筆記本在共同訓練生物信息學時很有用凌箕。這些筆記最近被Nature News ( http://www.nature.com/news/interactive-notebooks-sharing-the-code-1.16261 和 http://www.nature.com/news/programming-pick-up-python-1.16833)報道。
2.下載本次教程的數(shù)據(jù)
我們從NCBI Short Read Archives(SRA)下載HMP模擬宏基因組作為本次教程的開端词渤。NCBI的SRA中存儲了許多公開的宏基因組牵舱。使用sratoolkit軟件是最簡單的獲得SRA數(shù)據(jù)的方法。如果你知道你需要的SRA run ID(比如SRR172903)掖肋,你可以用專門的程序下載該數(shù)據(jù)并轉為”fasta“或者”fastq"格式序列仆葡。
wget http://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.4.5-2/sratoolkit.2.4.5-2-ubuntu64.tar.gz
tar -xvf sratoolkit.2.4.5-2ubuntu64.tar.gz
你現(xiàn)在使用ls命令可以發(fā)現(xiàn)多出來個包含軟件的文件夾。你同時在我們工作的notebook上看見該文件夾志笼。
ls
現(xiàn)在沿盅,我們可以使用安裝好的sratoolkit程序去下載HMP模擬數(shù)據(jù)庫的"fastq"格式了。(大概會花費1到2分鐘纫溃。耐心在宏基因組的研究中很有必要腰涧,好消息就是你依靠“租用”的云服務器工作,不會占用你個人電腦內存的運算能力--這樣等待的過程中紊浩,你可以做自己的事窖铡。你會注意到有個“Kernel busy"會顯示在"登出"按鈕下方屏幕的右上角處。
sratoolkit.2.4.5-2-ubuntu64/bin/fastq-dump SRR172903
3.質量控制
有很多種方法可以去測定你組裝的序列數(shù)據(jù)的質量坊谁。首先费彼,你可以查看你測序reads的質量分數(shù),如果必要口芍,你可以使用分數(shù)不滿足的reads箍铲,之后進行修剪。有大量的軟件可以進行修剪鬓椭,一些軟件還包含著很好的教程颠猴,包括FastX Toolkit(http://hannonlab.cshl.edu/fastx_toolkit/ 和 http://khmer-protocols.readthedocs.org/en/v0.8-1/metagenomics/1-quality.html),F(xiàn)astQC(http://www.bioinformatics.babraham.ac.uk/projects/fastqc/ 和 http://ged.msu.edu/angus/tutorials-2013/short-read-quality-evaluation.html)與及Sickle(http://www.bioinformatics.babraham.ac.uk/projects/fastqc/ 和 http://ged.msu.edu/angus/tutorials-2013/short-read-quality-evaluation.html)小染。
你之前下載的“fastq”格式的序列文件翘瓮,其每個序列read由四行展示,我們做個快速的瀏覽:
head -n 4 SRR172903.fastq
. 第一行(開頭是“@SRR172903.1”)是read的標識符裤翩,它通常是展示read的ID资盅,測序儀器的一些關于如何獲取序列的信息。
. 第二行是DNA序列。
. 第三行的內容以第一行相同律姨,只是把"@"換成了"+"振峻,有時在部分數(shù)據(jù)庫內只有一個"+"。
. 第四行是DNA序列每個堿基對的質量評分信息择份,注意該部分是與DNA序列長度一致的扣孟,且該質量得分是基于ASCII碼字符分數(shù)(其具有測序技術確定偏移,Illumina目前的偏移是64荣赶,例如凤价,ASCII編碼 64 = 0 Phred 得分)。質量得分等于 -10*log(p), p是該堿基錯誤的概率(比如拔创,如果Q=20, p=0.01,就是有1%的幾率這個堿基是錯誤的利诺。
這次教程中,我們會將超過序列內超過50%的堿基Phred得分低于33分的read移除剩燥。移除過程將用Fastx-Toolkit完成慢逾,該軟件可以進行多種質量控制(比如adapter剪切)。我們首先來下載灭红,解壓和安裝這個軟件吧侣滩。
wget https://github.com/agordon/fastx_toolkit/releases/download/0.0.14/fastx_toolkit-0.0.14.tar.bz2
wget https://github.com/agordon/libgtextutils/releases/download/0.7/libgtextutils-0.7.tar.gz
tar -xvf fastx_toolkit-0.0.14.tar.bz2
tar -xvf libgtextutils-0.7.tar.gz
bash fastx_install.sh
現(xiàn)在,我們可以開始質量過濾了变擒,并將過濾后的文件儲存為SRR172903.qc.fastq君珠。
FASTQ質量控制
$ fastq_quality_filter -h usage: fastq_quality_filter [-h] [-v] [-q N] [-p N] [-z] [-i INFILE] [-o OUTFILE]
version 0.0.6
[-h] = This helpful help screen.
[-q N] = Minimum quality score to keep.
[-p N] = Minimum percent of bases that must have [-q] quality.
[-z] = Compress output with GZIP.
[-i INFILE] = FASTA/Q input file. default is STDIN.
[-o OUTFILE] = FASTA/Q output file. default is STDOUT.
[-v] = Verbose - report number of sequences.
If [-o] is specified, report will be printed to STDOUT.
If [-o] is not specified (and output goes to STDOUT),
report will be printed to STDERR.
fastq_quality_filter -q 33 -p 50 -i SRR172903.fastq > SRR172903.qc.fastq
4.多樣化檢查---“都有誰在”的分布情況
宏基因組測序的優(yōu)勢在于其無需微生物培養(yǎng)就能夠量化微生物在環(huán)境中分布的能力。通常大多數(shù)研究需要了解其分類多樣性(尤其是對16s rRNA基因測序的研究中)娇斑。多樣性也能在宏基因組的特定序列模式的表示下被測定策添。比如,可以量化宏基因組中獨特的核苷酸k-mers毫缆。這些k-mers也能用作組裝宏基因組唯竹,重疊的k-mers被用于指出read應該被連接在一起。k-mers的多樣性可以給你用來研究你樣本的多樣性苦丁。同時浸颓,由于組裝對比中每一個k-mer需要與所有的k-mers進行對比,所以大量的k-mers存在需要更多的計算機內存芬骄。Miller等人對k-mers和組裝做了個很好的綜述猾愿。
(需要注意的是鹦聪,16S rRNA擴增子測序是一種靶向的方法账阻,在本教程中默認其不屬于宏基因組測序。鳥槍法宏基因組測序是將種群中全部細胞的DNA提取出來進行測序泽本。而靶向測序擴增特點的基因座并獨立測序淘太。Sharpton等人在宏基因組分析上有很好的綜述。)
現(xiàn)在我們需要做的是安裝khmer--它包括了一套khmer和pre-assembly工具。我們在這里用于k-mer的計數(shù)蒲牧。一旦你開始運行一下腳本撇贺,你能夠開始使用khmer的許多工具了。
ls
bash khmer-install.sh
接下來的腳本包含在khmer包中冰抢,并可以估算數(shù)據(jù)集的k-mers的唯一總數(shù)松嘶。用該數(shù)據(jù)可以a.)明確宏基因組組成的多樣性,例如用于組裝的細菌基因組挎扰,b.)比較復數(shù)宏基因組之間的k-mer多樣性翠订,c.)探討k長度選擇對組裝的影響。
然后為了評估不同k值(17遵倦,21尽超,25,29梧躺,33,37)的k-mers的唯一總數(shù),運行下面的腳本咆爽。該腳本輸出唯一k-mers但也將將其保存在unique_count文件中球拦。(該過程在一個大型服務器實例中大概耗時15分鐘,在超大型實例中耗時8-10分鐘龙致。)
python unique-kmers.py -R unique_count -k 17 SRR172903.qc.fastq
python unique-kmers.py -R unique_count -k 21 SRR172903.qc.fastq
python unique-kmers.py -R unique_count -k 25 SRR172903.qc.fastq
python unique-kmers.py -R unique_count -k 29 SRR172903.qc.fastq
python unique-kmers.py -R unique_count -k 33 SRR172903.qc.fastq
python unique-kmers.py -R unique_count -k 37 SRR172903.qc.fastq
現(xiàn)在你可以看見這個文件蛀缝,第一欄顯示k-mer長度,第二欄顯示宏基因組中所要求的k長度的數(shù)量目代。如果你有復數(shù)的基因組屈梁,你可以通過比如數(shù)據(jù)庫里的k-mers總數(shù)比較其多樣性。你可以使用命令“cat”來查看文件里的結果榛了。
cat unique_count
5.得到基因的覆蓋描述:我的宏基因組目前有哪些基因在讶?
大多數(shù)的宏基因組分析需要評估參考基因的豐都(比如,來自基因組或者自己組裝的宏基因組)霜大。本教程將覆蓋參考基因可以得到或不可以得到(需要de nove組裝)的兩種情況构哺。
6.例子1--有可獲得的參考基因
對于模擬的HMP宏基因組,HMP已經對用于模擬數(shù)據(jù)庫的被分離的基因組進行過測序战坤。這些基因組的列表可以在HMP網站上獲得曙强,同時我們將他上傳到了github倉庫---一個用來協(xié)作分享數(shù)據(jù)和代碼的工具。本次教程中用以下命令就可以下載該數(shù)據(jù)途茫。
cat ncbi_acc.txt
下面的命令用于下載上面那個列表中的每一個ID的基因組進入一個叫“genomes"的字典碟嘴。
python fetch-genomes-fasta.py ncbi_acc.txt genomes
7.估計組裝contigs的豐度
為了評估你基因組里參考基因和基因組的表現(xiàn),你可以用mapping軟件將reads比對到參考基因上(比如囊卜,Bowtie2,BWA等等)娜扇。在本次教程中错沃,我們將在我們的服務器上安裝并使用Bowtie2。我們之后會mapping我們的宏基因組到單參考基因組上(我們之前下下來的雀瓢。)枢析。
wget http://sourceforge.net/projects/bowtie-bio/files/bowtie2/2.2.5/bowtie2-2.2.5-linux-x86_64.zip
unzip bowtie2-2.2.5-linux-x86_64.zip
我寫一個的腳本能夠自動將一系列read map到給與的參考基因上并輸出一個包含能夠被map上的reads數(shù)量的文件。為了使用該腳本刃麸,我們需要安裝samtools醒叁。samtools幫我們與一種超級壓縮文件samfile交互,該文件可以有效的從mapper中儲存mapped信息泊业。
apt-get install samtools
我們提供一個簡單的操作過程來將reads map到參考基因組上辐益。該過程操作如下述步驟:
.制作你的參考基因索引
.將你的reads map到你的參考基因索引中(用默認的bowtie參數(shù))
.用Samtools評估你的read的map數(shù),沒有map上的數(shù)脱吱,并且提供一個制表符分割文件智政,每行一個參考基因名和序列長度,map上的read和未map上的read箱蝠。
該過程大概花8到10分鐘续捂。
bash bowtie.sh genomes/NC_000913.2.fa SRR172903.qc.fastq
現(xiàn)在我們可以看看基因組NC_000913上map和沒有map到的read了。我們同時有了個文件可以展示參考基因名(第一列)宦搬,參考基因長度(第二列)牙瓢,map上的read(第三列)和未map上的read(最后一列)。你可以點擊這里查詢關于samtools的更多信息间校。
cat reads-mapped.count.txt
cat reads-unmapped.count.txt
如果你想要挑戰(zhàn)一下更難的任務矾克,你可以試試map這個宏基因組到基因組文件夾提供的所有參考基因組上。試試串聯(lián)所有基因組到一個文件夾里吧(命令是"cat genomes/*fa >> all-genomes.fa")并運行對所有genomes.fa運行腳本憔足,而不僅僅是對NC_000913.2.fa胁附。
8.例子2--De novo組裝參考基因
HMP模擬宏基因組的組裝
組裝是將宏基因組里有望來自同一基因的reads的重復部分合并,使其成為一個較長的滓彰,連續(xù)的序列(通常稱之為一個contig)控妻。其優(yōu)點是提供一個更長的序列,使其能過在未來作為參考基因(之前未知的)揭绑,減少分析的數(shù)據(jù)量弓候,并提供一個不依賴過去知識的參考。
選擇使用什么組裝方式并不容易且存在爭議他匪。請記住重要的一點菇存,組裝是對你的數(shù)據(jù)的公認的假設表達。組裝本身只是第一步邦蜜,接下來需要對其精確性和實用性進行評估依鸥。對于大多數(shù)的組裝情況,需要將測序的reads和參數(shù)輸入組裝軟件畦徘。本次教程我們將使用2014年發(fā)布的Megahit(Li et al.,2015,https://github.com/voutcn/megahit)進行組裝毕籽。Sharpton的綜述(Sharpton, 2014)同樣也介紹了許多很好的宏基因組組裝流程和方法。
為了減少所需的內存井辆,常常需要事前統(tǒng)一宏基因組中k-mers的分布关筒。刪除無需組裝的額外信息和可能錯誤的reads可以優(yōu)化組裝(http://arxiv.org/abs/1203.4802)。這些腳本與教程你可以從 http://ged.msu.edu/angus/diginorm-2012/tutorial.html 中獲得杯缺。
本次教程中蒸播,我們使用Megahit組裝宏基因組,所以萍肆,讓我們先安裝megahit袍榆。
bash install-megahit.sh
該過程大約15分鐘,然后我們會獲得一個叫做”megahit_assembly"的文件夾塘揣。你可以用在這里閱讀其參數(shù)包雀,比如 --memory是指定其可以使用的最大內存。
megahit/megahit --memory 10e9 -l 250 --k-max 81 -r SRR172903.qc.fastq --cpu-only -o megahit_assembly
為了看看這個組裝亲铡,讓我們在最終contigs所在的megahit_assembly.final.contigs.fa文件下運行khmer組裝總程序才写。我們統(tǒng)計下contigs大于等于200bp的。
python khmer/sandbox/assemstats3.py 200 megahit_assembly/final.contigs.fa
9.評估contigs豐都
當組裝結束是奖蔓,你有一組可以評估宏基因組豐都的參考contigs赞草。評估方法與之前使用參考基因組的方法相同。
這些會花20分鐘吆鹤。
bash bowtie.sh megahit_assembly/final.contigs.fa SRR172903.qc.fastq
你可以如同將reads map到NCBI基因組一樣的查看下列map結果厨疙。
cat reads-mapped.count.txt
cat reads-unmapped.count.txt
cat reads.by.contigs.txt
10.注釋組裝后的contigs
測序通常是來確定你樣品里的“who"和"what"。在我們的例子里疑务,我們知道HMP模擬種群來源的一組基因組(我們在之前下載的沾凄。)。將未知序列與已知參考基因進行對比的是最為流行的工具中的其中之一--The Basic Local Alignment Search Tool(BLAST)知允。為了明確我們的ontigs的來源搭独,我們將組裝的contigs和HMP模擬種群的基因組進行比對。
我們首先下載BLAST軟件廊镜。鑒于序列數(shù)據(jù)庫容量的不斷增加牙肝,也可以考慮使用目前在注釋中更有效率的新工具,比如Diamond(https://github.com/bbuchfink/diamond/, http://dx.doi.org/10.1038/nmeth.3176)嗤朴。
wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.2.30/ncbi-blast-2.2.30+-x64-linux.tar.gz
tar -xvf ncbi-blast-2.2.30+-x64-linux.tar.gz
現(xiàn)在我們可以為BLAST做一個可搜索的數(shù)據(jù)庫了配椭。首先,我們要把在基因組字典里的所有基因組連接到同一個文件里雹姊。
cat genomes/*fa >> all-genomes.fa
ncbi-blast-2.2.30+/bin/makeblastdb -in all-genomes.fa -dbtype nucl -out all-genomes
ncbi-blast-2.2.30+/bin/blastn -db all-genomes -query megahit_assembly/final.contigs.fa -outfmt 6 -out contigs.x.all-genomes.blastnout
上面的命令比對了每一個query(每一個在組裝好的final.contings.fa文件里的序列)與每一個序列(比如all-genomes.fa中的基因組)股缸。-outfmt告訴該程序將結果以制表符格式存在 -out 的 contigs.x.all-genomes.blastnout 文件中。
讓我們瞧一眼這個文件的前10行吱雏。你會看見query(contig)和hit(genome)后的同一性百分比敦姻,對比長度瘾境,錯配計數(shù),間隙開放計數(shù)镰惦,query開始位置迷守,query結束位置,subject開始位置旺入,subject結束位置兑凿,E-值和比特得分。
head -n 10 contigs.x.all-genomes.blastnout
根據(jù)你的研究問題茵瘾,對開放閱讀框(ORFs)的注釋可能比對contigs序列的注釋更有意義礼华。本次例子中,存在多個可以使用的ORF caller((e.g., FragGeneScan, http://nar.oxfordjournals.org/content/early/2010/08/29/nar.gkq747.abstract 和 Metagene, http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1636498/)拗秘。我們可以用FragGeneScan從我們的contigs調用ORFs圣絮。首先依舊是按如下方式下載,安裝軟件雕旨,然后從我們的contigs中調用ORFs:
wget http://downloads.sourceforge.net/project/fraggenescan/FragGeneScan1.19.tar.gz
tar -xvf FragGeneScan1.19.tar.gz
bash fraggenescan-install.sh
我們將在組裝的contigs上運行FragGeneScan晨雳,假設它符合“完整”基因組序列的訓練特征(在他們的文檔中,這等于完整的基因組序列或短序列讀數(shù)而沒有測序錯誤)奸腺。
FragGeneScan1.19/FragGeneScan -s megahit_assembly/final.contigs.fa -o final.contigs.orfs.fa -w 1 -t complete
ORFs調用后最終組成為一個FASTA文件餐禁,存在final.contigs.orfs.fa.faa(氨基酸)和final.contigs.orfs.fa.ffn(堿基)中,你可以根據(jù)以上contigs描述的數(shù)據(jù)對你選擇的數(shù)據(jù)庫進行描述突照。
11.以后的事
現(xiàn)在你知道獲得以下信息的所有該知道的事了:
1帮非,序列豐都信息:序列(比如contig)和豐都(比如,可map的read數(shù))
2讹蘑,序列注釋信息:序列(比如contig)和NCBI基因組
你會注意到這與16S rRNA擴增子分析相似末盔,你可以在其中獲得OTU豐度表和OTU最佳命中注釋。對于宏基因組分析座慰,得到這些信息你可以用于進一步的分析和可視化軟件包陨舱,如R語言中的PhyloSeq包。
譯者最后說下
本文是我在學習宏基因組的過程中進行翻譯的版仔,所以有很多地方還有錯誤游盲,同時你們也會發(fā)現(xiàn)包括read,contig,map之類的詞...我完全不知道它們的中文是什么呀,請大家原諒蛮粮,如果發(fā)現(xiàn)有什么地方不對多多指教益缎,在原文中,每一個linux腳本代碼前都有”然想!“莺奔,我學了那么久的linux,沒見過這樣的用法变泄,我一開始擔心是格式轉換問題令哟,所以我默默的刪去了恼琼,最后原文有寫為什么加”!“屏富,好像是Ipython notebook的內置語法晴竞,我沒太搞清楚。這也是我blog的第一篇文章役听,以后看到關于腸道微生物,宏基因組表窘,Python和R語言的好文章典予,或者有寫什么總結,會持續(xù)發(fā)在我的Git上的乐严,emmmm....雖然我想看得人不會很多瘤袖,但是還是寫一下吧,如果有人看當然更有動力啦昂验。啊哈哈哈哈哈~