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 修改文件指定行的方法
May 15 Python
django 自定义用户user模型的三种方法
Nov 18 Python
浅谈Python由__dict__和dir()引发的一些思考
Oct 30 Python
python实现在pandas.DataFrame添加一行
Apr 04 Python
python编写暴力破解zip文档程序的实例讲解
Apr 24 Python
Python使用ConfigParser模块操作配置文件的方法
Jun 29 Python
python SVM 线性分类模型的实现
Jul 19 Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
Apr 14 Python
基于Python实现2种反转链表方法代码实例
Jul 06 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
Python3.8官网文档之类的基础语法阅读
Sep 04 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
第十四节--命名空间
2006/11/16 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
php框架CodeIgniter主从数据库配置方法分析
2018/05/25 PHP
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
js常用代码段整理
2011/11/30 Javascript
JavaScript实现仿网易通行证表单验证
2015/05/25 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
js实现音乐播放控制条
2017/09/09 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
vue-cli创建的项目,配置多页面的实现方法
2018/03/15 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
Python多线程处理实例详解【单进程/多进程】
2019/01/30 Python
Django发送邮件功能实例详解
2019/09/02 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
Python3 集合set入门基础
2020/02/10 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
临时租车协议范本
2014/09/23 职场文书
老干部工作汇报材料
2014/10/28 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js