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 相关文章推荐
Python3.x中自定义比较函数
Apr 24 Python
python爬虫_自动获取seebug的poc实例
Aug 05 Python
python 3.3 下载固定链接文件并保存的方法
Dec 18 Python
python3.7 的新特性详解
Jul 25 Python
Python 堆叠柱状图绘制方法
Jul 29 Python
利用python实现汉字转拼音的2种方法
Aug 12 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
Jan 03 Python
TFRecord格式存储数据与队列读取实例
Jan 21 Python
5款实用的python 工具推荐
Oct 13 Python
Python实现FTP文件定时自动下载的步骤
Dec 19 Python
python 基于selectors库实现文件上传与下载
Dec 31 Python
一篇文章搞懂python混乱的切换操作与优雅的推导式
Aug 23 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/10/09 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
php Calender(日历)代码分享
2014/01/03 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
关于JSON与JSONP简单总结
2016/08/16 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python实现多线程下载文件的代码实例
2014/06/01 Python
Python编程中使用Pillow来处理图像的基础教程
2015/11/20 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
python sorted方法和列表使用解析
2019/11/18 Python
Python如何使用函数做字典的值
2019/11/30 Python
结合CSS3的新特性来总结垂直居中的实现方法
2016/05/30 HTML / CSS
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
业务主管岗位职责
2013/11/20 职场文书
社会实践感言
2014/01/25 职场文书
食堂采购员岗位职责
2014/03/17 职场文书
市场部经理岗位职责
2014/04/10 职场文书
医院合作协议书
2014/08/19 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
2016校本研修培训心得体会
2016/01/08 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python