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 相关文章推荐
Pyramid Mako模板引入helper对象的步骤方法
Nov 27 Python
python常见数制转换实例分析
May 09 Python
实例说明Python中比较运算符的使用
May 13 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
python Crypto模块的安装与使用方法
Dec 21 Python
利用python在excel里面直接使用sql函数的方法
Feb 08 Python
Python 可变类型和不可变类型及引用过程解析
Sep 27 Python
利用Pytorch实现简单的线性回归算法
Jan 15 Python
python文件和文件夹复制函数
Feb 07 Python
tensorflow之自定义神经网络层实例
Feb 07 Python
详解python tcp编程
Aug 24 Python
python批量生成身份证号到Excel的两种方法实例
Jan 14 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
56.com视频采集接口程序(PHP)
2007/09/22 PHP
php set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
基于jQuery的仿flash的广告轮播代码
2010/11/04 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
Python实现获取某天是某个月中的第几周
2015/02/11 Python
Python中的变量和作用域详解
2016/07/13 Python
简单学习Python多进程Multiprocessing
2017/08/29 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
python 获取图片分辨率的方法
2019/01/08 Python
什么是python的列表推导式
2020/05/26 Python
Python+OpenCV图像处理—— 色彩空间转换
2020/10/22 Python
HTML5表格_动力节点Java学院整理
2017/07/11 HTML / CSS
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
爱普生美国官网:Epson美国
2018/11/05 全球购物
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
啤酒销售实习自我鉴定
2013/09/24 职场文书
银行奉献演讲稿
2014/09/16 职场文书
团组织推荐意见
2015/06/05 职场文书