python实现mask矩阵示例(根据列表所给元素)


Posted in Python onJuly 30, 2020

行和列的位置都在以下三个列表中的一列中,则对应位置为1,其余位置全为0

​ ——[7-56,239-327,438-454,522-556,574-586]

​ ——[57-85,96-112,221-238]

​ ——[113-220,328-437,455-521,557-573]

代码实现

def generateMaskBasedOnDom(dom_path, length):
  """
  :param dom_path: this is a file path, which contains the following information:
  [7-56,239-327,438-454,522-556,574-586][57-85,96-112,221-238][113-220,328-437,455-521,557-573]
  each [...] means one domain
  :param length: this is the length of this protein
  :return: the mask matrix with size length x length, 1 means inner domain residue pair, otherwise 0
  """
  # 读取文件
  with open(dom_path, "r", encoding="utf-8") as file:
    contents = file.readlines()

  # 获得mask位置数据
  list0 = []
  list1 = []
  list2 = []
  for list_idx, content in enumerate(contents):
    num_range_list = content.strip()[1:-1].split(",")
    for num_range in num_range_list:
      start_num = int(num_range.split("-")[0])
      end_num = int(num_range.split("-")[1])
      for num in range(start_num, end_num+1):
        if list_idx == 0:
          list0.append(num)
        elif list_idx == 1:
          list1.append(num)
        else:
          list2.append(num)

  mask = np.zeros((length, length))
  # 遍历矩阵每个元素
  for row in range(mask.shape[0]):
    for col in range(mask.shape[1]):
      if (row in list0 and col in list0) or (row in list1 and col in list1) or (row in list2 and col in list2):
        mask[row][col] = 1

  return mask

if __name__ == "__main__":

  # if no dom file ,please get dom file first
  with open("dom.txt", "w", encoding="utf-8") as f:
    f.write("[7-56,239-327,438-454,522-556,574-586]" + "\n" + "[57-85,96-112,221-238]" + "\n" + "[113-220,328-437,455-521,557-573]")

  file_path = "./dom.txt"
  protein_length = 1000  # mask_matrix size
  mask_matrix = generateMaskBasedOnDom(file_path, protein_length)
  print("*************Generate Mask Matrix Successful!*************")

  # 随机测试几组
  print(mask_matrix[7][56]) # 1
  print(mask_matrix[7][239]) # 1
  print(mask_matrix[8][57])  # 0
  print(mask_matrix[57][95]) # 0
  print(mask_matrix[113][573]) # 1

到此这篇关于python实现mask矩阵示例(根据列表所给元素)的文章就介绍到这了,更多相关python实现mask矩阵 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python字符串特性及常用字符串方法的简单笔记
Jan 04 Python
好用的Python编辑器WingIDE的使用经验总结
Aug 31 Python
Python使用三种方法实现PCA算法
Dec 12 Python
Python爬虫工程师面试问题总结
Mar 22 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
Dec 10 Python
Django框架中序列化和反序列化的例子
Aug 06 Python
分享PyCharm的几个使用技巧
Nov 10 Python
python中必要的名词解释
Nov 20 Python
Python3基于print打印带颜色字符串
Jul 06 Python
Python Process创建进程的2种方法详解
Jan 25 Python
Python3中PyQt5简单实现文件打开及保存
Jun 10 Python
Python+Matplotlib+LaTeX玩转数学公式
Feb 24 Python
Python3爬虫发送请求的知识点实例
Jul 30 #Python
详解Python 最短匹配模式
Jul 29 #Python
Python如何给你的程序做性能测试
Jul 29 #Python
Python3爬虫中关于中文分词的详解
Jul 29 #Python
Python3爬虫中pyspider的安装步骤
Jul 29 #Python
关于Python3爬虫利器Appium的安装步骤
Jul 29 #Python
Python3爬虫mitmproxy的安装步骤
Jul 29 #Python
You might like
session 的生命周期是多长
2006/10/09 PHP
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
jQuery 一个图片切换的插件
2011/10/09 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
JS脚本defer的作用示例介绍
2014/01/02 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
AngularJS中ng-class用法实例分析
2017/07/06 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
Node.js 实现抢票小工具 & 短信通知提醒功能
2019/10/22 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
Python中的random()方法的使用介绍
2015/05/15 Python
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
Python 实现try重新执行
2019/12/21 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
反邪教标语
2014/06/23 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
争先创优心得体会
2014/09/12 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技