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实现提取文章摘要的方法
Apr 21 Python
python获取指定时间差的时间实例详解
Apr 11 Python
Python实现通过文件路径获取文件hash值的方法
Apr 29 Python
python实现人民币大写转换
Jun 20 Python
Python Web编程之WSGI协议简介
Jul 18 Python
python linecache 处理固定格式文本数据的方法
Jan 08 Python
Python with用法:自动关闭文件进程
Jul 10 Python
Django 1.10以上版本 url 配置注意事项详解
Aug 05 Python
Django 再谈一谈json序列化
Mar 16 Python
使用python实现微信小程序自动签到功能
Apr 27 Python
解决TensorFlow训练模型及保存数量限制的问题
Mar 03 Python
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
Apr 03 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 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
Php获取金书网的书名的实现代码
2010/06/11 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
详解阿里云视频直播PHP-SDK接入教程
2020/07/09 PHP
网页图片延时加载的js代码
2010/04/22 Javascript
浅谈Javascript事件模拟
2012/06/27 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
jQuery简单创建节点的方法
2016/09/09 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
Python多进程编程技术实例分析
2014/09/16 Python
线程和进程的区别及Python代码实例
2015/02/04 Python
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
用Django写天气预报查询网站
2018/10/21 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
Python不同目录间进行模块调用的实现方法
2019/01/29 Python
Python简易版停车管理系统
2019/08/12 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
集体婚礼证婚词
2014/01/13 职场文书
自动化毕业生专业自荐书范文
2014/02/04 职场文书
讲解员培训方案
2014/05/04 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
JavaScript高级程序设计之变量与作用域
2021/11/17 Javascript