实验篇——亚细胞定位

实验篇——亚细胞定位

文章目录

  • 前言
  • 一、亚细胞定位的在线网站
    • 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.rhkb.cn/news/94489.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大数据Hive】hive 事务表使用详解

目录 一、前言 二、Hive事务背景知识 hive事务实现原理 hive事务原理之 —— delta文件夹命名格式 _orc_acid_version 说明 bucket_00000 合并器(Compactor) 二、Hive事务使用限制 参数设置 客户端参数设置 客户端参数设置 三、Hive事务使用操作演示 操作步骤 客…

Windows系统Git安装教程(详细Git安装过程)

获取Git安装程序 到Git官网下载&#xff0c;网站地址&#xff1a;https://git-scm.com/downloads&#xff0c;如下图&#xff1a; 因为我们是用Windows系统上的浏览器访问的&#xff0c;Git官网自动之别到了我使用的操作系统&#xff0c;所以右侧直接显示下载使用Windows系统的…

gromacs教程练习1

gromacs能在win上运行&#xff0c;还是个开源的软件&#xff0c;这都很值得入手学习 记录下gromacs教程的练习情况&#xff1a; Lysozyme in water 水中的溶菌酶&#xff0c;嗯&#xff0c;估计就是把蛋白处理后放在显试溶剂里跑MD这个模拟。 1、文件的准备&#xff1a; 1、…

【仿写tomcat】四、解析http请求信息,响应给前端,HttpServletRequest、HttpServletResponse的简单实现

思考 在解析请求之前我们要思考一个问题&#xff0c;我们解析的是其中的哪些内容&#xff1f; 对于最基本的实现&#xff0c;当然是请求类型&#xff0c;请求的url以及请求参数&#xff0c;我们可以根据请求的类型作出对应的处理&#xff0c;通过url在我们的mapstore中找到se…

【数据结构OJ题】合并两个有序链表

原题链接&#xff1a;https://leetcode.cn/problems/merge-two-sorted-lists/description/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 可以先创建一个空链表&#xff0c;然后依次从两个有序链表中选取最小的进行尾插操作。&#xff08;有点类似双…

基于docker搭建pytest自动化测试环境(docker+pytest+jenkins+allure)

pytest搭建自动化测试环境&#xff08;dockerpytestjenkinsallure&#xff09; 这里我以ubuntu18为例 如果有docker环境&#xff0c;可以直接拉取我打包好的镜像docker pull ziyigun/jenkins:v1.0 1 搭建Docker 1.1 安装docker # 配置docker安装环境 sudo apt-get install ap…

Android Studio实现解析HTML获取图片URL将图片保存到本地

目录 效果activity_main.xmlMainActivityImageItemImageAdapter 效果 项目本来是要做成图片保存到手机然后读取数据后瀑布流展示&#xff0c;但是有问题&#xff0c;目前只能做到保存到手机 activity_main.xml <?xml version"1.0" encoding"utf-8"?…

C++写文件,直接写入结构体

C写文件&#xff0c;直接写入结构体 以前写文件都是写入字符串或者二进制再或者就是一些配置文件&#xff0c;今天介绍一下直接写入结构体&#xff0c;可以在软件参数较多的时候直接进行读写&#xff0c;直接将整个结构体写入和读取&#xff0c;看代码&#xff1a; #include&…

文本图片怎么转Excel?分享一些好用的方法

在处理数据时&#xff0c;Excel 是一个非常强大的工具&#xff0c;但有时候需要将文本和图片转换为 Excel 格式&#xff0c;这可能会让人感到困惑。在本文中&#xff0c;我们将介绍一些好用的方法&#xff0c;以便您能够轻松地将文本和图片转换成 Excel 格式。 将文本图片为Exc…

vue3 videojs实现播放器,动态更改src

一、背景 vue3下载第三方插件videojs&#xff0c;达到播放器的效果&#xff0c;并且点击事件能够动态更改播放器的src。实现思路&#xff1a; 场景一&#xff1a;只有一个播放器&#xff0c;当点击事件&#xff0c;直接赋值&#xff0c;动态更改封装好的组件的src参数&#xff…

线程|线程的使用、四种实现方式

1.线程的实现方式 1.用户级线程 开销小&#xff0c;用户空间就可以创建多个。缺点是&#xff1a;内核无法感知用户级多个线程的存在&#xff0c;把其当作只有一个线程&#xff0c;所以只会提供一个处理器。 2.内核级线程 相对于用户级开销稍微大一点&#xff0c;可以利用多…

无涯教程-Perl - setgrent函数

描述 此功能将枚举设置(或重置)到组条目集的开头。该函数应在第一次调用getgrent之前调用。 语法 以下是此函数的简单语法- setgrent返回值 此函数不返回任何值。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perl -wwhile( ($name,$passwd,$gid,$members)getgrent…

c语言每日一练(9)

前言&#xff1a;每日一练系列&#xff0c;每一期都包含5道选择题&#xff0c;2道编程题&#xff0c;博主会尽可能详细地进行讲解&#xff0c;令初学者也能听的清晰。每日一练系列会持续更新&#xff0c;暑假时三天之内必有一更&#xff0c;到了开学之后&#xff0c;将看学业情…

QT的设计器介绍

设计器介绍 Qt制作 UI 界面&#xff0c;一般可以通过UI制作工具QtDesigner和纯代码编写两种方式来实现。纯代码实现暂时在这里不阐述了在后续布局章节详细说明&#xff0c;QtDesigner已经继承到开发环境中&#xff0c;在工程中直接双击ui文件就可以直接在QtDesigner设计器中打…

unity发布WebGL遇到的坑(持续更新)

1、unity默认字体在网页中不会显示 解决方法&#xff1a;自己新导入一个字体&#xff0c;使用导入的字体 2、之前打过包并运行过&#xff0c;后面又在unity中进行了修改&#xff0c;重新打包&#xff0c;运行发现还是修改之前的效果&#xff0c;虽然是新包&#xff0c; 解决方…

Windows上使用dump文件调试

dump文件 dump文件记录当前程序运行某一时刻的信息&#xff0c;包括内存&#xff0c;线程&#xff0c;线程栈&#xff0c;变量等等&#xff0c;相当于调试程序时运行到某个断点上&#xff0c;把程序运行的信息记录下来。可以通过Windbg打开dump&#xff0c;查看程序运行的变量…

在IDEA中创建properties配置文件

第一步&#xff1a;在 src路径下找到resources文件 第二步&#xff1a;右击选择新建Resource Bundle配置文件 第三步&#xff1a;为Resource Bundle配置文件命名 完成创建

第十课:Qt 字符编码和中文乱码相关问题

功能描述&#xff1a;最全的 Qt 字符编码相关知识以及中文乱码的原因与解决办法 一、字符编码种类 ASCII 码 美国人对信息交流的编码&#xff0c;包括 26 个字母&#xff08;大小写&#xff09;、数字和标点符号等&#xff0c;用一个字节&#xff08;8 位&#xff09;表示这些…

vue-组件库-storybook:理解storybook、实践

一、理解 storybook Storybook是一个开源的工具&#xff0c;可以帮助前端开发者更好地构建、测试和展示组件。 具体来说&#xff0c;Storybook可以做以下几件事情&#xff1a; 1、为每个组件提供一个独立的页面&#xff0c;可以快速展示或调试组件。 2、管理多个组件&#x…

vue利用 sortable 完成表格拖拽

先讲一下vue2&#xff0c;使用sortable完成表格拖拽【不只是表格&#xff0c;div也可以实现&#xff0c;但我项目中是表格拖拽】 github地址 安装 npm install sortablejs --save使用 &#xff08;我的项目中是拖拽一个小按钮移动&#xff0c;而不是整行&#xff09; <te…