利用python将二值csv格式转换为矩阵
#!/usr/bin/env python
# coding:utf-8
#import pandas as pd, numpy as np;
'''
将csv文件转换为对应的邻接矩阵mat
'''
from numpy import *;
def protein_complexes_trans():
file = open('protein_complexes.csv');
filePro = open('complexes', 'a');
fileTarget = open('targets(complexes)','a');
fileInter = open('protein_complexes_interaction_matrix', 'a');
proteins = [];
targets = [];
while 1:
line = file.readline();
if not line:
break;
token = line.split(';');
targ = token[1].split(',');
for i in range(0,len(targ)):
targets.append(targ[i]);
proteins.append(token[0]);
file.seek(0); #将指针重置回第一行
proArr = unique(array(proteins)).tolist(); #去重,并删去最后一项(标题)
tarArr = unique(array(targets)).tolist(); #删去最后
#mat为邻接矩阵
mat = zeros((len(proArr),len(tarArr)), dtype = int16);
while 1:
line = file.readline();
if not line:
break;
token = line.split(';');
targ = token[1].split(',');
row = proArr.index(token[0]);
for i in range(0, len(targ)):
col = tarArr.index(targ[i]);
mat[row][col] = 1;
#输出药物和靶向的列表
for i in proArr:
filePro.write('%s\n' % i);
for i in tarArr:
fileTarget.write('%s\n' % i);
print "%d&%d" % (len(proArr), len(tarArr));
interMat = mat.tolist();
#将矩阵写入文件
for i in range(0, len(proArr)):
fileInter.write('%s\n' % (str(interMat[i])));
return 0;
def drugs_targets_trans():
#print 'hello world';
file = open('drugs_targets_sum');
fileDrug = open('drugs', 'a');
fileTarget = open('targets','a');
fileInter = open('drugs_targets_interaction_matrix', 'a');
drugs = [];
targets = [];
while 1:
line = file.readline();
if not line:
break;
token = line.split(';');
targ = token[1].split(',');
for i in range(0,len(targ)):
targets.append(targ[i]);
drugs.append(token[0]);
file.seek(0); #将指针重置回第一行
drugArr = unique(array(drugs)).tolist(); #去重,并删去最后一项(标题)
tarArr = unique(array(targets)).tolist(); #删去最后
#mat为邻接矩阵
mat = zeros((len(drugArr),len(tarArr)), dtype = int16);
while 1:
line = file.readline();
if not line:
break;
token = line.split(';');
targ = token[1].split(',');
row = drugArr.index(token[0]);
for i in range(0, len(targ)):
col = tarArr.index(targ[i]);
mat[row][col] = 1;
#输出药物和靶向的列表
for i in drugArr:
fileDrug.write('%s\n' % i);
for i in tarArr:
fileTarget.write('%s\n' % i);
interMat = mat.tolist();
for i in range(0, len(drugArr)):
fileInter.write('%s\n' % (str(interMat[i])));
#protein_complexes_trans();
drugs_targets_trans();
利用python将二值csv格式转换为矩阵的更多相关文章
- python 爬虫数据存入csv格式方法
python 爬虫数据存入csv格式方法 命令存储方式:scrapy crawl ju -o ju.csv 第一种方法:with open("F:/book_top250.csv" ...
- 利用Python计算π的值,并显示进度条
利用Python计算π的值,并显示进度条 第一步:下载tqdm 第二步;编写代码 from math import * from tqdm import tqdm from time import ...
- Mac OS X将CSV格式转换为Excel文档格式,Excel转CSV中文乱码问题
一:在Mac上假设你使用Excel打开windows导出的CSV格式文档.你会发现表格中全部的的内容都显示在A列. 那么,怎样恢复正常呢,你能够将CSV格式的文档导入到Excel文档中,这样就正常显示 ...
- 10、OpenCV Python 图像二值化
__author__ = "WSX" import cv2 as cv import numpy as np #-----------二值化(黑0和白 255)---------- ...
- python图片二值化提高识别率
import cv2from PIL import Imagefrom pytesseract import pytesseractfrom PIL import ImageEnhanceimport ...
- opencv python 图像二值化/简单阈值化/大津阈值法
pip install matplotlib 1简单的阈值化 cv2.threshold第一个参数是源图像,它应该是灰度图像. 第二个参数是用于对像素值进行分类的阈值, 第三个参数是maxVal,它表 ...
- 利用Python制作二维码
利用简单的Python代码制作二维码 一.制作工具 安装Python环境 + PyCharm编译器. 二.电脑系统 本人win10 + Python3.7.0 + PyCharm. 三.写代码前先下载 ...
- 利用mysqldump命令导出为csv格式文件
解决方法: 先导出为txt文件,其内容是以逗号“,”分隔的,得到txt文件后,再自行处理为.csv或者.xls文件. 参数说明: -t, --no-create-info Don't write ...
- python习题_读写csv格式的文件
1.读写TXT文件 # *_* coding : UTF-8 *_* # 开发人员 : zfy # 开发时间 :2019/7/7 16:26 # 文件名 : lemon_10_file.PY # 开发 ...
随机推荐
- jQuery实现选项联动轮播
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [deviceone开发]-多种样式下拉菜单demo
一.简介 该demo主要展示了3种下拉菜单. 一.仿QQ弹出菜单 主要实现原理是通过add一个ui,然后通过点击事件控制其visible属性来显示或者隐藏. 二.组合下拉菜单 主要用到的控件是do_A ...
- 标准BST二叉搜索树写法
本人最近被各种数据结构的实验折磨的不要不要的,特别是代码部分,对数据结构有严格的要求,比如写个BST要分成两个类,一个节点类,要给树类,关键是所以操作都要用函数完成,也就是在树类中不能直接操作节点,需 ...
- javascript中的prototype和constructor
构造函数 我们知道,ECMAScript5中的Object.Array.Date.RegExp.Function等引用类型都是基于构造函数的,他们本身就是ECMAScript5原生的构造函数.比如,我 ...
- linux文件目录详解
文件系统的是用来组织和排列文件存取的,所以她是可见的,在Linux中,我们可以通过ls等工具来查看其结构,在Linux系统中,我们见到 的都是树形结构:比如操作系统安装在一个文件系统中,他表现为由/起 ...
- #研发中间件介绍#异步消息可靠推送Notify
郑昀 基于朱传志的设计文档 最后更新于2014/11/11 关键词:异步消息.订阅者集群.可伸缩.Push模式.Pull模式 本文档适用人员:研发 电商系统为什么需要 NotifyServer? ...
- Erlang/OTP 17.0-rc1 新引入的"脏调度器"浅析
最近在做一些和 NIF 有关的事情,看到 OTP 团队发布的 17 rc1 引入了一个新的特性“脏调度器”,为的是解决 NIF 运行时间过长耗死调度器的问题.本文首先简单介绍脏调度器机制的用法,然后简 ...
- SQL Server 2012安装错误案例:Error while enabling Windows feature: NetFx3, Error Code: -2146498298
案例环境: 服务器环境 : Windows Server 2012 R2 Standard 数据库版本 : SQL Server 2012 SP1 案例介绍: 在Windows Ser ...
- Oracle创建表空间和用户
用户名为:C##NEWO ============================================================================= /*分为四步 */ ...
- PostgreSQL-psql
打开查看元命令实际执行的sql的功能和关闭 yun=> \set ECHO_HIDDEN on yun=> \set ECHO_HIDDEN off psql中输入\?查看命令提示 资讯性 ...