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爬虫实现获取动态gif格式搞笑图片的方法示例
Dec 24 Python
在Django的View中使用asyncio的方法
Jul 12 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
Win10环境python3.7安装dlib模块趟过的坑
Aug 01 Python
Python手绘可视化工具cutecharts使用实例
Dec 05 Python
Python Sphinx使用实例及问题解决
Jan 17 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
Python调用shell cmd方法代码示例解析
Jun 18 Python
python中lower函数实现方法及用法讲解
Dec 23 Python
Django 实现图片上传和下载功能
Dec 31 Python
python pygame入门教程
Jun 01 Python
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
Jun 21 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日期时间函数的高级应用技巧
2009/05/16 PHP
PHP APP微信提现接口代码
2018/09/30 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
JavaScript的parseInt 取整使用
2011/05/09 Javascript
Jquery中对数组的操作代码
2011/08/12 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
php与js的区别是什么
2013/08/05 Javascript
对比分析json及XML
2014/11/28 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
2015/11/30 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
python进阶教程之循环对象
2014/08/30 Python
详解 Python 读写XML文件的实例
2017/08/02 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
2019/05/28 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
如何基于python实现不邻接植花
2020/05/01 Python
Django之全局使用request.user.username的实例详解
2020/05/14 Python
自学python用什么系统好
2020/06/23 Python
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
英国独特家具和家庭用品购物网站:Cuckooland
2020/08/30 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
爱国卫生月实施方案
2014/02/21 职场文书
个人求职信范文
2014/05/24 职场文书
银行服务明星推荐材料
2014/05/29 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript