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利用hook技术破解https的实例代码
Mar 25 Python
python算法学习之桶排序算法实例(分块排序)
Dec 18 Python
python检测是文件还是目录的方法
Jul 03 Python
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 Python
python监控进程脚本
Apr 12 Python
python 调用有道api接口的方法
Jan 03 Python
python-itchat 获取微信群用户信息的实例
Feb 21 Python
Flask框架踩坑之ajax跨域请求实现
Feb 22 Python
解决Python内层for循环如何break出外层的循环的问题
Jun 24 Python
python 画图 图例自由定义方式
Apr 17 Python
浅谈django channels 路由误导
May 28 Python
Idea安装python显示无SDK问题解决方案
Aug 12 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
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
简单易用的计数器(数据库)
2006/10/09 PHP
Sorting Array Values in PHP(数组排序)
2011/09/15 PHP
php从给定url获取文件扩展名的方法
2015/03/14 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
JavaScript模拟push
2016/03/06 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
2017/10/24 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
2018/09/28 Javascript
python导入pandas具体步骤方法
2019/06/23 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
python模拟实现斗地主发牌
2020/01/07 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
亚马逊印度站:Amazon.in
2017/10/15 全球购物
小学生竞选班干部演讲稿
2014/04/24 职场文书
收费员岗位职责
2015/02/14 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
物业项目经理岗位职责
2015/04/01 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang