最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【ROSALIND】【練Python,學(xué)生信】72 從譜圖推測多肽

2023-10-04 21:17 作者:未琢  | 我要投稿

如果第一次閱讀本系列文檔請(qǐng)先移步閱讀【ROSALIND】【練Python,學(xué)生信】00 寫在前面 ?謝謝配合~

題目:

從譜圖推測多肽(Using the Spectrum Graph to Infer Peptides)

?

Given: A list L (of length at most 100) containing positive real numbers.

所給:不超過100個(gè)正實(shí)數(shù)的列表L。

Return: The longest protein string that matches the spectrum graph of L (if multiple solutions exist, you may output any one of them).

需得:根據(jù)L能得到的最長蛋白序列(如果有多個(gè)結(jié)果,只返回任意一個(gè)即可)。

?

測試數(shù)據(jù)

3524.8542

3623.5245

3710.9335

3841.974

3929.00603

3970.0326

4026.05879

4057.0646

4083.08025

測試輸出

WMSPG

?

生物學(xué)背景

? ? ? ?在58 從全譜推測多肽序列中,我們假設(shè)每種b離子和y離子都可以存在。但在實(shí)際情況中,并非每一種斷裂方式都會(huì)出現(xiàn),且往往具有誤差。因此,很難從單一的質(zhì)譜結(jié)果中得到完整的多肽。我們需要從實(shí)驗(yàn)結(jié)果中推斷出盡量長的多肽序列。

?

思路

? ? ? ?很不幸,這題我沒有看懂,在網(wǎng)上搜索大神的代碼(ttps://github.com/fedeoliv/Rosalind-Problems/blob/master/sgra.py)并運(yùn)行后,我才大致弄明白解答思路。讓我們以題目所給數(shù)據(jù)為示例,來用畫圖的方法理解一下解題思路。

? ? ? ?首先,題目給了由9個(gè)實(shí)數(shù)組成的列表L,且從小到大排列,我們用下圖來表示:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ?本題的最終目的就是從這9個(gè)數(shù)中得到最長的多肽,為了實(shí)現(xiàn)這個(gè)目的,大神從后往前遍歷這個(gè)列表,方法是用一個(gè)數(shù)后面的每個(gè)數(shù)依次減這個(gè)數(shù),假如差值對(duì)應(yīng)了一個(gè)氨基酸,且能使現(xiàn)有序列最長,就保留。不懂?我們來用圖看一下。

? ? ? ?從最后一個(gè)數(shù)開始,當(dāng)用第9個(gè)數(shù)減去第7個(gè)數(shù)時(shí),我們第一次得到了一個(gè)對(duì)應(yīng)氨基酸的差值,我們可以在第7個(gè)數(shù)下面標(biāo)記“G”,記錄下此時(shí)的多肽序列。如下圖。

? ? ? ?繼續(xù)向前遍歷,當(dāng)用第8個(gè)數(shù)減去第6個(gè)數(shù)時(shí),我們又得到了一個(gè)對(duì)應(yīng)氨基酸的差值,我們可以在第6個(gè)數(shù)下面標(biāo)記“S”。如下圖。

? ? ? ?繼續(xù),當(dāng)被減數(shù)是第5個(gè)數(shù)時(shí),出現(xiàn)了兩種情況。既可以用第7個(gè)數(shù)減去第5個(gè)數(shù),也可以用第8個(gè)數(shù)減去第5個(gè)數(shù)。但我們只選擇前者,為什么?因?yàn)榍罢呖梢宰岆亩蔚拈L度變成2(“PG”)。如下圖。

? ? ? ?重復(fù)上述過程,你會(huì)發(fā)現(xiàn)上面的這條路徑會(huì)一騎絕塵,超越所有其他情況的長度,最終我們得到了最長的序列“WMSPG”。

? ? ? ?理解了思路之后,再看大神的代碼就很簡單了,因此代碼部分就不再給注釋啦。

?

代碼


【ROSALIND】【練Python,學(xué)生信】72 從譜圖推測多肽的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
新田县| 左贡县| 井研县| 黎城县| 南丹县| 民和| 广德县| 南岸区| 朔州市| 贵南县| 淮南市| 商河县| 织金县| 鄂托克前旗| 南川市| 龙里县| 汝州市| 涪陵区| 林口县| 镇康县| 辛集市| 泰宁县| 武山县| 乌拉特中旗| 南宁市| 乐昌市| 民县| 伊宁县| 铁力市| 通化县| 贡嘎县| 大悟县| 新巴尔虎左旗| 鹤山市| 渭南市| 九龙县| 峡江县| 德庆县| 阿克陶县| 丰城市| 弥勒县|