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 除法小技巧
Sep 06 Python
python继承和抽象类的实现方法
Jan 14 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
Apr 23 Python
解析Python编程中的包结构
Oct 25 Python
在Mac OS上搭建Python的开发环境
Dec 24 Python
Python命令行解析模块详解
Feb 01 Python
python实现读Excel写入.txt的方法
Apr 29 Python
Windows下安装Scrapy
Oct 17 Python
利用Python求阴影部分的面积实例代码
Dec 05 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
Jan 05 Python
VSCode配合pipenv搞定虚拟环境的实现方法
May 17 Python
Python基于Tkinter开发一个爬取B站直播弹幕的工具
May 06 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
PHP持久连接mysql_pconnect()函数使用介绍
2012/02/05 PHP
浅析php中抽象类和接口的概念以及区别
2013/06/27 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
Javascript模块模式分析
2008/05/16 Javascript
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
使用python Django做网页
2013/11/04 Python
python中xrange和range的区别
2014/05/13 Python
python编写的最短路径算法
2015/03/25 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
使用tensorflow实现线性svm
2018/09/07 Python
django 微信网页授权登陆的实现
2019/07/30 Python
Python网络爬虫信息提取mooc代码实例
2020/03/06 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
类成员函数的重载、覆盖和隐藏区别
2016/01/27 面试题
成教自我鉴定
2013/10/27 职场文书
教育学专业毕业生的自我评价
2013/11/21 职场文书
运动会广播稿60字
2014/01/15 职场文书
个人自我鉴定总结
2014/03/25 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android