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中的tuple元组详细介绍
Feb 02 Python
Python接收Gmail新邮件并发送到gtalk的方法
Mar 10 Python
python的keyword模块用法实例分析
Jun 30 Python
python实现在字符串中查找子字符串的方法
Jul 11 Python
python实现ID3决策树算法
Dec 20 Python
Python中单线程、多线程和多进程的效率对比实验实例
May 14 Python
对python中基于tcp协议的通信(数据传输)实例讲解
Jul 22 Python
Python编译为二进制so可执行文件实例
Dec 23 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 Python
Python3.7实现验证码登录方式代码实例
Feb 14 Python
Python运行异常管理解决方案
Mar 09 Python
tensorboard 可视化之localhost:6006不显示的解决方案
May 22 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
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
PHP 变量的定义方法
2010/01/26 PHP
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
PHP中include与require使用方法区别详解
2013/10/19 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
PHP读取PPT文件的方法
2015/12/10 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
2016/03/14 PHP
php中错误处理操作实例分析
2019/08/23 PHP
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
2008/09/25 Javascript
Ext.MessageBox工具类简介
2009/12/10 Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
关于JavaScript数组你所不知道的3件事
2016/08/24 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
node-red File读取好保存实例讲解
2019/09/11 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
python动态加载包的方法小结
2016/04/18 Python
python读取oracle函数返回值
2016/07/18 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
python修改txt文件中的某一项方法
2018/12/29 Python
Python安装OpenCV的示例代码
2020/03/05 Python
浅谈keras2 predict和fit_generator的坑
2020/06/17 Python
护理实习自我鉴定
2013/12/14 职场文书
双语教学实施方案
2014/03/23 职场文书
一岗双责责任书
2014/04/15 职场文书
小学生安全演讲稿
2014/04/25 职场文书
青春演讲稿范文
2014/05/08 职场文书
经济类毕业生求职信
2014/06/26 职场文书
环保守法证明
2015/06/24 职场文书
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers