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的词法分析与语法分析
May 18 Python
对于Python的框架中一些会话程序的管理
Apr 20 Python
深入浅析python继承问题
May 29 Python
python根据list重命名文件夹里的所有文件实例
Oct 25 Python
详解python执行shell脚本创建用户及相关操作
Apr 11 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
Aug 27 Python
使用Python实现分别输出每个数组
Dec 06 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
Feb 24 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
Jun 03 Python
用python实现名片管理系统
Jun 18 Python
pycharm 如何查看某一函数源码的快捷键
May 12 Python
Python如何加载模型并查看网络
Jul 15 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
PHP5 字符串处理函数大全
2010/03/23 PHP
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
PHP内核探索:变量存储与类型使用说明
2014/01/30 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
2016/04/03 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
JavaScript手机振动API
2016/06/11 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
Python collections模块实例讲解
2014/04/07 Python
python操作CouchDB的方法
2014/10/08 Python
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
python做反被爬保护的方法
2019/07/01 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
python新手学习可变和不可变对象
2020/06/11 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
妇产医师自荐信
2014/01/29 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
高中课程设置方案
2014/05/28 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
奔腾年代观后感
2015/06/09 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书