實驗篇——亞細胞定位

實驗篇——亞細胞定位

文章目錄

  • 前言
  • 一、亞細胞定位的在線網站
    • 1. UniProt
    • 2. WoLFPSORT
    • 3. BUSCA
    • 4. TargetP-2.0
  • 二、代碼實現
    • 1. 基于UniProt(不會)
    • 2. 基于WoLFPSORT
      • 后續(已完善,有關代碼放置于[python爬蟲學習(一)](https://blog.csdn.net/2301_78630677/article/details/132241087)):
  • 總結


前言

有關亞細胞定位的詳細信息,請參考另一篇文章:
理化性質與亞細胞定位


一、亞細胞定位的在線網站

1. UniProt

網址:https://www.uniprot.org/
在這個網站中有一個關鍵的概念——ID映射(若AA序列文件不是在該官網中下載的,而是從外界導入的,那么要先將AA序列的ID轉變為UniProt ID)

請添加圖片描述

注意:首先要清楚待轉換的AA序列的ID標識符來源于哪個數據庫

在這里插入圖片描述

我輸入了“sp|Q9FIK7.1|AACT1_ARATH”,這是某個AA序列的ID,得到如下結果,可知道它對應的UniProt ID 為 “Q8S4Y1”

在這里插入圖片描述

然后在搜索欄中輸入該名稱,得到

請添加圖片描述

2. WoLFPSORT

網址:https://wolfpsort.hgc.jp/
這個網站可以批量處理小量的AA序列,允許的大小(200K),根據實際情況,一般可以容納幾百到幾千個氨基酸序列。

請添加圖片描述

在這里插入圖片描述

結果查看:

請添加圖片描述

示例:

LaggChr1G00000010.1 details chlo: 5, nucl: 3.5, mito: 3, cyto_nucl: 3, cyto: 1.5, cysk: 1

LaggChr1G00000010.1這個蛋白質的亞細胞定位信息如下:

葉綠體(chlo)得分:5
細胞核(nucl)得分:3.5
線粒體(mito)得分:3
細胞質-細胞核(cyto-nucl)得分:3
細胞質(cyto)得分:1.5
細胞骨架(cysk)得分:1
這些得分表示蛋白質在各個亞細胞定位的可能性,較高的得分表示較高的概率。

他們是按得分排列的,故取第一個就行。

3. BUSCA

url: http://busca.biocomp.unibo.it/
最多可以輸入500個序列
可以下載結果表格(還挺方便)

請添加圖片描述
結果查看:
請添加圖片描述

4. TargetP-2.0

TargetP-2.0
url = http://www.cbs.dtu.dk/services/TargetP/
我看了一下,它介紹中說能處理5000個AA序列,但是要得到結果文件是要下載這個軟件,在網頁上看不到結果(我沒下載,因為下載它好像要填一些信息什么的)

二、代碼實現

1. 基于UniProt(不會)

推薦:這是一篇有關于用R語言實現“根據uniprot ID 批量檢測基因的亞細胞定位“
這篇文章是在已知道Uniprot ID的情況下實現的爬取

我最開始也是看的這篇文章,所以想要基于uniProt官網來通過爬蟲爬取。但是我弄了好久才有點搞懂這個網站(它的功能太多了,太繁雜)。最主要是那個ID映射(我完全卡在這第一步了),因為我并不知道我的AA序列的ID來自哪個數據庫 ,而且全是英文,就相當于我用之前還要了解好多數據庫。我也看了許多關于這個官網介紹的教程,也是有點…

2. 基于WoLFPSORT

主要是對結果的整理
從前文可知,它返回的結果是一堆的,要想從中提取出來蛋白質的亞細胞定位,可以用代碼實現

import requests
url = "https://wolfpsort.hgc.jp/results/pLAcbca22a5a0ccf7d913a9fc0fb140c3f4.html"
r = requests.get(url)
print(r.status_code)
# print(r.encoding)
text = r.text
# print(text)
lines = text.split("<BR>")
AA_ID_list = []
yaxibao_list =[]
for i in lines:if "details" in i:AA_ID = i.split("<A")[0].strip().split()[-1]yaxibao = i.split("details")[1].strip().split()[1][:-1]AA_ID_list.append(AA_ID)yaxibao_list.append(yaxibao)
with open("yaxibao.csv","w",encoding="utf-8") as f:f.write("AA_ID, yaxibao\n")  # 寫入列名for j in range(len(AA_ID_list)):f.write(f"{AA_ID_list[j]}, {yaxibao_list[j]}\n")

text:
在這里插入圖片描述

yaxibao.csv

在這里插入圖片描述

后續(已完善,有關代碼放置于python爬蟲學習(一)):

因為在WoLF PSORT官網中一次提交的數據大小最多200kb,那 我可以試著將原來幾萬kb大小的AA序列的大文件分為小文件,(之前說錯了,之前的那個劃分文件的函數是根據文件的行數劃分的,而不是AA序列的ID數。我要將大的AA序列文件劃分為小的AA序列文件,是要根據AA序列的ID劃分,不然就會導致AA的ID 與AA的序列不連貫這種情況。故我又重新修改了一下)。
所以根據估算,這個WoLF PSORT官網中一次提交的AA序列最多也是差不多500左右。與那個BUSCA網站的差不多。

若是一定要批量處理大量的AA序列,可以嘗試運用爬蟲:
(一個思路,其中結果頁面的url無法獲得)

import requests
import os
import pandas as pd
from bs4 import BeautifulSoupdef split_gene_file(source_file, output_folder, ids_per_file):os.makedirs(output_folder, exist_ok=True)current_file = Nonecount = 0with open(source_file, "r") as f:for line in f:if line.startswith(">"):count += 1if count % ids_per_file == 1:if current_file:current_file.close()output_file = f"{output_folder}/gene_file_{count // ids_per_file + 1}.csv"current_file = open(output_file, "w", encoding='utf-8')current_file.write(line)else:current_file.write(line)if current_file:current_file.close()split_gene_file("D:\yuceji\Lindera_aggregata.gene.pep", "gene1", 500)files = os.listdir("D:\python\PycharmProjects\pythonProject1\爬蟲\gene1")base_url = "https://wolfpsort.hgc.jp/"
new_url = []
for i in range(len(files)):with open(f"D:\python\PycharmProjects\pythonProject1\爬蟲\gene1\gene_file_{i + 1}.csv", "r") as f:aa_sequence = f.read()# 構建WoLFPSORT請求的數據data = {"seq": aa_sequence}# 發送POST請求到WoLFPSORT官網response = requests.post(base_url, data=data)print(response.status_code)print(response.text)# 檢查請求是否成功if response.status_code == 200:# 解析結果頁面的URLsoup = BeautifulSoup(response.content, "html.parser")result_links = soup.find_all("a", href=True)print(result_links)result_url = None# 遍歷所有的鏈接for link in result_links:href = link.get("href", "")# 判斷鏈接是否包含 "results"if "results" in href:result_url = base_url + hrefbreakif result_url:print(result_url)new_url.append(result_url)else:print("無法找到亞細胞定位結果頁面的URL")for i in range(len(new_url)):# url = "https://wolfpsort.hgc.jp/results/pLAcbca22a5a0ccf7d913a9fc0fb140c3f4.html"r = requests.get(new_url[i])print(r.status_code)# print(r.encoding)text = r.text# print(text)lines = text.split("<BR>")AA_ID_list = []yaxibao_list = []for i in lines:if "details" in i:AA_ID = i.split("<A")[0].strip().split()[-1]yaxibao = i.split("details")[1].strip().split()[1][:-1]AA_ID_list.append(AA_ID)yaxibao_list.append(yaxibao)with open(f"yaxiba{i}o.csv", "w", encoding="utf-8") as f:f.write("AA_ID, yaxibao\n")  # 寫入列名for j in range(len(AA_ID_list)):f.write(f"{AA_ID_list[j]}, {yaxibao_list[j]}\n")

這個爬蟲代碼中返回的url并不是我要的那種,例如:https://wolfpsort.hgc.jp/results/pLA2dbb41dafad4afb342b5000abcb263b1.html
而是:(如圖所示) 請添加圖片描述

我點進這個鏈接是這樣的:
在這里插入圖片描述

我也不知道為什么,只能等我再學學爬蟲,希望之后能解決這個問題吧!(當然也希望有大佬能幫忙指教一下)

我還看了看結果頁面的源代碼(HTML語言):
在這里插入圖片描述

怎么說呢,既然我不能爬取到結果頁面的url,那我只能將結果頁面url的獲得的步驟放在官網中實現,而后面的結果整理則用代碼實現。


總結

本章詳細介紹了許多用于亞細胞定位的網站,其中,我還是比較推薦 WoLFPSORT這個網站的(簡單易懂,十分好上手)。至于后續的代碼實現我也是基于這個網站,但是因為爬蟲學習還不到位(無法爬取到結果頁面的url)。只能等以后在學習爬蟲時,再修改。

羌笛何須怨楊柳,春風不度玉門關。

–2023-8-12 實驗篇

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38064.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38064.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38064.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一零七零、Redis基礎穩固篇

Redis是什么&#xff0c;優缺點&#xff1f; Redis本質是一個K-V類型的內存數據庫 純內存操作&#xff0c;每秒可處理超過10w的讀寫操作 優點&#xff1a; 讀寫性能極高 非阻塞IO 單線程 支持持久化 支持事務 數據結構豐富 缺點&#xff1a; 容易受到物理內存的限制 主機宕機可…

【JAVA】日志

輸出語句日志輸出位置只能是控制臺可以將日志信息寫入文件或數據庫中取消日志需要修改代碼&#xff0c;靈活性差只需修改日志文件多線程性能較差性能較好 日志規范接口&#xff1a;Commons Logging(JCL)、Simple Logging Facade for Java(slf4j) 日志實現框架&#xff1a;Log…

軟件測試簡歷撰寫與優化,讓你面試邀約率暴增99%!

如何撰寫一份優秀的簡歷呢&#xff1f;&#xff1f;這是一個求職者都會遇到的問題&#xff0c;今天就來詳細帶大家寫一份軟件測試工程師職位的簡歷&#xff01;希望能給各位軟件測試求職者一個帶來幫助&#xff01; 個人簡歷是求職者給招聘單位發的一份簡要介紹。包含自己的基本…

linux系統服務學習(一)Linux高級命令擴展

文章目錄 Linux高級命令&#xff08;擴展&#xff09;一、find命令1、find命令作用2、基本語法3、*星號通配符4、根據文件修改時間搜索文件☆ 聊一下Windows中的文件時間概念&#xff1f;☆ 使用stat命令獲取文件的最后修改時間☆ 創建文件時設置修改時間以及修改文件的修改時間…

【Vue】Vue2創建移動端項目實戰教程,創建移動端項目保姆級教程,設置axios,utils工具包,vue.fonfig.js配置項 (下)

系列文章目錄 這里是創建移動端項目 【Vue】Vue2.x創建項目全程講解&#xff0c;保姆級教程&#xff0c;手把手教&#xff0c;Vue2怎么創建項目&#xff08;上&#xff09; 【Vue】Vue2創建移動端項目實戰教程&#xff0c;創建移動端項目保姆級教程&#xff0c;接上一篇創建Vue…

2023牛客暑期多校訓練營9 B.Semi-Puzzle: Brain Storm

文章目錄 題目大意題解求解回溯 參考代碼 題目大意 給定兩個數 a , m a,m a,m &#xff0c;求滿足 a u ≡ u ( m o d m ) a^u \equiv u (mod\ \ m) au≡u(mod m) 的一個解。 ( 1 ≤ a , m ≤ 1 0 9 , 0 ≤ u ≤ 1 0 18 ) (1\leq a,m \leq10^9 ,0\leq u\leq 10^{18}) (1≤a…

玩賺音視頻開發高階技術——FFmpeg

隨著移動互聯網的普及&#xff0c;人們對音視頻內容的需求也不斷增加。無論是社交媒體平臺、電商平臺還是在線教育&#xff0c;都離不開音視頻的應用。這就為音視頻開發人員提供了廣闊的就業機會。根據這些年來網站上的音視頻開發招聘需求來看&#xff0c;音視頻開發人員的需求…

如何優雅的使用Mock Server

事出有因 昨天跟同事討論我們在用的rap2(一個集接口編寫和mock server的開源項目)和剛上線了一個easy-mock的server&#xff0c;到底哪個好用。 我們主要討論的點有個兩個&#xff1a; 接口的一致性、 編碼的無侵入性。 背景 自從前后端分離后&#xff0c;完成前后端的分工…

【計算機視覺|生成對抗】條件生成對抗網絡(CGAN)

本系列博文為深度學習/計算機視覺論文筆記&#xff0c;轉載請注明出處 標題&#xff1a;Conditional Generative Adversarial Nets 鏈接&#xff1a;[1411.1784] Conditional Generative Adversarial Nets (arxiv.org) 摘要 生成對抗網絡&#xff08;Generative Adversarial…

Windows 11 家庭中文版找不到組策略文件gpedit.msc

最近因為調整日期問題需要用到組策略文件gpedit.msc,但是發現找不到文件 在按鍵盤 winR 打開運行界面輸入 gpedit.msc 回車 Windows找不到文件’gpedit.msc’。請確定文件名是否正確后&#xff0c;再試-次。 檢查電腦Windows系統版本 是 Windows 11 家庭中文版 果斷早網上搜…

C++模板元編程入門案例

C++模板元編程(Template Metaprogramming)是一種在編譯時進行計算和代碼生成的技術,它使用C++的模板機制來實現。 下面是一個簡單的C++模板元編程的示例,展示了如何在編譯時計算一個數的階乘。 #include <iostream> template <int N> struct Factorial { …

docker 學習--02 常用命令

docker 學習–02 常用命令 文章目錄 docker 學習--02 常用命令1. 幫助啟動類命令1.1啟動docker1.2 停止docker1.3 重啟docker1.4 查看docker1.5 設置開機自啟1.6 查看docker概要信息1.7 查看docker總體幫助文檔1.8 查看docker命令幫助文檔 2. 鏡像命令2.1 列出本地主機上有的鏡…

Jmeter 參數化的幾種方法

目錄 配置元件-用戶自定義變量 前置處理器-用戶參數 配置元件-CSV Data Set Config Tools-函數助手 配置元件-用戶自定義變量 可在測試計劃、線程組、HTTP請求下創建用戶定義的變量 全局變量&#xff0c;可以跨線程組調用 jmeter執行的時候&#xff0c;只獲取一次&#xff0…

kafka 02——三個重要的kafka客戶端

kafka 02——三個重要的kafka客戶端 1. 前言1.1 關于 Kafka 的安裝1.2 常用客戶端簡介1.3 依賴 2. AdminClient2.1 Admin Configs2.2 AdminClient API2.2.1 設置 AdminClient 對象2.2.2 創建 topic 獲取 topic 列表2.2.3 刪除topic2.2.4 查看 topic 的描述信息2.2.5 查看 topi…

【復習8-13天】每天40min,我們一起用70天穩扎穩打學完《JavaEE初階》——14/70 第十四天

專注 效率 記憶 預習 筆記 復習 做題 歡迎觀看我的博客,如有問題交流,歡迎評論區留言,一定盡快回復!(大家可以去看我的專欄,是所有文章的目錄)   文章字體風格: 紅色文字表示:重難點★? 藍色文字表示:思路以及想法★?   如果大家覺得有幫助的話,感謝大家幫忙 點…

【騰訊云 TDSQL-C Serverless 產品體驗】基于TDSQL-C 存儲爬取的QQ音樂歌單數據

【騰訊云 TDSQL-C Serverless 產品體驗】基于TDSQL-C 存儲爬取的QQ音樂歌單數據 文章目錄 【騰訊云 TDSQL-C Serverless 產品體驗】基于TDSQL-C 存儲爬取的QQ音樂歌單數據前言出現的背景一、TDSQL-C數據庫是什么&#xff1f;二、TDSQL-C 的特點三、TDSQL-C的應用場景四、基于TD…

測試相關Liunx基礎知識

Linux的歷史和安裝 基本常識 Liunx目錄結果 常見

CTF之逆向之阿里巴巴

題目地址&#xff1a;http://www.shiyanbar.com/ctf/13 題目預覽&#xff1a; 解題過程&#xff1a; 1、下載附件發現是exe文件 2、使用PEid和Detect It Easy查殼 和 開發語言&#xff0c;發現沒有加殼&#xff0c;都是用C#開發的 3、C#和Java Python屬于解釋型語言&#xff…

Win10安裝GPU支持的最新版本的tensorflow

我在安裝好cuda和cudnn后&#xff0c;使用pip install tensorflow安裝的tensorflow都提示不能找到GPU&#xff0c; 為此懷疑默認暗轉的tensorflow是不帶GPU支持的。 在tensorflow官網提供了多個版本的GPU支持的windows的安裝包 https://www.tensorflow.org/install/pip?hlz…

用ChatGPT和六頂帽思考法幫助自己更好地決策和解決問題

當我們在解決復雜問題時&#xff0c;我們常常陷入單一視角的狀態。創造性思維領域的先驅愛德華德博諾&#xff0c;提出了六頂帽思考法[1]&#xff0c;這意味著我們可以從六個不同的視角來思考一個問題&#xff0c;以實現高水平決策和解決問題。 每一頂“帽子”代表不同的視角。…