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使用pycharm环境调用opencv库
Feb 11 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
May 04 Python
python 读取DICOM头文件的实例
May 07 Python
django 使用 request 获取浏览器发送的参数示例代码
Jun 11 Python
使用Template格式化Python字符串的方法
Jan 22 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
python能做什么 python的含义
Oct 12 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 Python
通俗易懂了解Python装饰器原理
Sep 17 Python
Python实现聚类K-means算法详解
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
php daodb插入、更新与删除数据
2009/03/19 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
浅析Prototype的模板类 Template
2011/12/07 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
JS正则替换去空格的方法
2017/03/24 Javascript
微信小程序商城项目之淘宝分类入口(2)
2017/04/17 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
js实现前面自动补全位数的方法
2018/10/10 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
2019/01/19 Javascript
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python脚本实现下载合并SAE日志
2015/02/10 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
详解Python3中ceil()函数用法
2019/02/19 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
django2.2 和 PyMySQL版本兼容问题
2020/02/17 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
先进工作者获奖感言
2014/02/08 职场文书
办公室副主任职责范本
2014/03/08 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
汽车转让协议书范本
2014/12/07 职场文书
Golang: 内建容器的用法
2021/05/05 Golang
redis cluster支持pipeline的实现思路
2021/06/23 Redis