实现功能:
输入:Uniprot中的accession number
输出:与输入蛋白相关的蛋白交互对(左列是原列表中的蛋白,右侧是查询到的partner)

直接使用代码
https://github.com/JulseJiang/Code_for_blog/blob/main/Python_ExtractPartnerFromIntAct/exTMPnonTMPpiar20201201.py

或者看看处理过程:

数据下载

数据集下载链接:这里下载mitab格式,方便解析
ftp://ftp.ebi.ac.uk/pub/databases/intact/current/psimitab/

下载intact.txt或者intact.zip 自行解压都行

提取IntAct中的全体蛋白对

实现效果

文件中部分蛋白是Uniprot中的,部分蛋白是EBI中的,目前只考虑Uniprot中的

提取到103w对来自uniprot的蛋白,去重之后剩余673577对
20201201 下载的数据,也就是2020 年11月7日发布的数据,里面有673577对的蛋白来自uniprot标注
blog/blob/main/Python_ExtractPartnerFromIntAct/pair_norepeat.txt


输入某个蛋白质accession 列表,查找到8k条相关的蛋白对

相关代码

  1. 提取intact.txt中用Uniprot ID表示的蛋白对
def extractPPIFromIntAct(finPair,foutPair):# finPair = r'E:\data\intact\intact.txt'# foutPair = r'E:\data\intact\pair.txt'with open(finPair, 'r', encoding='UTF-8') as fi, open(foutPair, 'w') as fo:line = fi.readline()while (line):line = fi.readline()pair = line.split('\t', maxsplit=2)try:a = pair[0]b = pair[1]if 'uniprotkb:' in a and 'uniprotkb:' in b:a = a.replace('uniprotkb:', '')b = b.replace('uniprotkb:', '')if '-' in a: a = a.split('-')[0]if '-' in b: b = b.split('-')[0]fo.write('%s\t%s\n' % (a, b))fo.flush()print(a, b)else:continueexcept:print(pair)
  1. 加载蛋白列表
def readIDlist(filePath,by = '\n'):fo = open(filePath,'r')lines = fo.readlines()# 'P67999\n', 'P0ADV1\n', 'P0A6F5\n',list = []for line in lines:list.append(line.split(by)[0])fo.close()# 'P67999', 'P0ADV1', 'P0A6F5'return list
  1. 提取给定蛋白列表相关的蛋白对
def findPartner(finPair,foutPair,finList):# finPair = r'E:\data\intact\pair.txt'# foutPair = r'E:\data\intact\pair_related.txt'# finList = r'E:\githubCode\BioDataCoding\Parsers\ttd\TMP_accession_list.csv'TMPlist = readIDlist(finList)count = 0with open(finPair, 'r', encoding='UTF-8') as fi, open(foutPair, 'w') as fo:line = fi.readline()while (line):pair = line[:-1].split('\t', maxsplit=2)try:a = pair[0]b = pair[1]if a in TMPlist and b in TMPlist:fo.write('%s\t%s\n' % (a, b))else:if a in TMPlist:fo.write('%s\t%s\n' % (a, b))if b in TMPlist:fo.write('%s\t%s\n' % (b, a))fo.flush()count = count + 1print(count)except:print(pair)line = fi.readline()

如果需要更严谨一点的话,需要考虑accession过期的现象

下面这个博客展示了根据accession Id 查询全体accesstion Id的过程,由于涉及到项目内容,这个将来再公开,先把博客地址放在这里
https://blog.csdn.net/Julse/article/details/110521589

编程实现在IntAct数据集上批量查找蛋白交互对相关推荐

  1. DL之DCGNN:基于TF利用DCGAN实现在MNIST数据集上训练生成新样本

    DL之DCGNN:基于TF利用DCGAN实现在MNIST数据集上训练生成新样本 目录 输出结果 设计思路 实现部分代码 说明:所有图片文件丢失 输出结果 更新-- 设计思路 更新-- 实现部分代码 更 ...

  2. linux 批量查找关键词,Linux上批量查找文件里面带的关键字(grep 关键字的用法)

    grep 功能说明:查找文件里符合条件的字符串(同时能匹配正则表达式) 语法:grep [-abcEFGhHilLnqrsvVwxy][-A][-B][-C][-d][-e][-f][--help][ ...

  3. linux取批量文件的关键字,Linux上批量查找文件里面带的关键字(grep 关键字的用法)-Go语言中文社区...

    grep 功能说明:查找文件里符合条件的字符串(同时能匹配正则表达式) 语法:grep [-abcEFGhHilLnqrsvVwxy][-A][-B][-C][-d][-e][-f][--help][ ...

  4. tensorflow(七)实现mnist数据集上图片的训练和测试

    本文使用tensorflow实现在mnist数据集上的图片训练和测试过程,使用了简单的两层神经网络,代码中涉及到的内容,均以备注的形式标出. 关于文中的数据集,大家如果没有下载下来,可以到我的网盘去下 ...

  5. 如何实现把固定内容自动写入excel_Excel批量查找指定内容并导出

    原创: Excel and Python 微 XIN 号: 实用办公编程技能 前几天,部门的小李说"年终总结报告总算做完了,幸好是会玩Excel让自己事半功倍!" 什么日报.周报. ...

  6. redis cluster 集群 HA 原理和实操(史上最全、面试必备)

    文章很长,建议收藏起来慢慢读!疯狂创客圈总目录 语雀版 | 总目录 码云版| 总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 经典图书:<Java高并发核心编程(卷1)> 面试必备 ...

  7. Pointnet语义分割任务S3DIS数据集上的注意点

    前言 Pointnet的网络结构和源码解释,已在之前写了次总结,本次主要针对论文中的数据集以.h5为TensorFlow的输入格式进行解释,记录如何制作H5文件,以提供给TensorFlow,PyTo ...

  8. 编程实现在Linux系统中Intel CPU功耗的获取

    编程实现在Linux系统中Intel CPU功耗的获取 编程实现在Linux系统中Intel CPU功耗的获取 资料的获取 X86 MSR寄存器介绍 X86 CPUID介绍 X86 RAPL介绍 Li ...

  9. 【偏门技巧】C语言编程实现对IPV4地址的合法性判断(使用正则表达式)

    C语言编程实现对IPV4地址的合法性判断(使用正则表达式) 有了解过我的朋友,可能有点印象,我在N年前的博客中,就写了这个主题,当时确实是工作中遇到了这个问题.本想着等工作搞完之后,就把这个问题的解决 ...

最新文章

  1. Linux命令:less
  2. 小程序~WeUI下载使用
  3. win10任务栏怎么还原到下面_Windows10 系统桌面底部的任务栏在侧边了怎么还原
  4. Fedora 21 中添加及更新源的命令
  5. 怎样才算是一个合格的网页设计师?
  6. 日历记事本java代码_急需日历记事本JAVA源代码
  7. Spring MVC和JQuery用于Ajax表单验证
  8. 详解volatile关键字
  9. [转]Aptana Studio 3配置Python开发环境图文教程
  10. rgb红色范围_RGB与BRG模式
  11. Dynamic programming
  12. MySQL创始人发邮件寻求中国帮助
  13. chrome redhat 下载源_RedHat 7.0 Chrome浏览器 安装
  14. 龙果学院从无到有构建亿级微服务秒杀系统
  15. 二进制乘法的booth算法
  16. matlab中readwav的用法,使用matlab的wavread函数总提示出错,那位高手指点下啊
  17. Manjaro-architect 安装指南
  18. 学java有前途吗?学会之后有什么好处?
  19. 3脚送话器内部电路图_教你看电路图(全)(20个经典实例)..
  20. 从Q2财报看百度的转型三部曲

热门文章

  1. SegeX SgxVariantArrayT:VC封装支持多维数组的变体类型(VRIANT 、SafeArray)(附免费免积分源代码)
  2. APP下载链接在微信内打不开显示已停止访问该网页怎么办?
  3. 关于产品的一些思考——豌豆荚之应用下载
  4. Nginx正则表达式locationrewrite
  5. 高亮显示化学结构式中的子结构----Highlight a substructure in the depiction
  6. word2016撤销无效解决办法
  7. 群晖Docker安装网心云容器魔方
  8. 我吐了72行金色爱心代码(༗清ཻ辞ཻ࿐入门原创)———永远清楚,不是只有你一个人在努力
  9. 在 RedHat、 CentOS、 Fedora 上安装 Teamviewer 9(转)
  10. 鸟哥的Linux笔记-------磁盘与文件系统