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中支持向量机SVM的使用方法详解
Dec 26 Python
Django中的文件的上传的几种方式
Jul 23 Python
树莓派+摄像头实现对移动物体的检测
Jun 22 Python
python字符串查找函数的用法详解
Jul 08 Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 Python
pytorch 自定义数据集加载方法
Aug 18 Python
Django实现CAS+OAuth2的方法示例
Oct 30 Python
python 常用日期处理-- datetime 模块的使用
Sep 02 Python
Python如何获取文件路径/目录
Sep 22 Python
python中复数的共轭复数知识点总结
Dec 06 Python
python glom模块的使用简介
Apr 13 Python
Python深度学习之Pytorch初步使用
May 20 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中for循环语句的几种变型
2007/03/16 PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
2011/07/03 PHP
php XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
js常用代码段收集
2011/10/28 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
js实现中文实时时钟
2020/01/15 Javascript
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
python直接访问私有属性的简单方法
2016/07/25 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
使用Python将字符串转换为格式化的日期时间字符串
2019/09/01 Python
解决python replace函数替换无效问题
2020/01/18 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
2020/01/28 Python
Python 实现向word(docx)中输出
2020/02/13 Python
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
大女孩胸罩:Big Girls Bras
2016/12/15 全球购物
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
会计求职自荐信
2015/03/26 职场文书
工作调动申请报告
2015/05/18 职场文书
关于开学的感想
2015/08/10 职场文书
小学体育队列队形教学反思
2016/02/16 职场文书
PHP基本语法
2021/03/31 PHP
Java tomcat手动配置servlet详解
2021/11/27 Java/Android