掌握这个Python小技巧,轻松构建cytoscape导入文件
今天小编和大家分享如何借助Python脚本轻松构建cytoscape导入文件。Cytoscape是一个非常适合展示各种相互作用关系的可视化软件。
具体来说就是可以用于蛋白互作网络的展示,miRNA与蛋白质或者TF与RNA的相互作用等内容的可视化,是一个生信分析不可或缺的神器。但是当要处理的数据比较多,并且需要根据Cytoscape要求整理数据的时候,会不会整理到眼花?不知道你们会不会,反正小编每次都整理得想吐血~~~
更多Python视频、源码、资料加群960410445免费获取
上一次的利用Cytoscape中展示富集分析的结果教程中,Cytoscape导入的文本内容大致有图中的那几列,
将基因富集后,我们打开的原始文件一般如下图
为了举例说明,我们仅选取了一个性质,通过分列将gene里的gene分散到各个单元格里,形成下图。
具体问题是:将图1中source,性质和target三类数据转化为图2里的具有一对一关系样式,原本的解决方法是利用excel的复制横纵转化粘贴,之后可能还有重新整合起来,太过繁琐。
不懂编程的医学狗,还幻想用excel的函数,妄想解决上述问题,多次尝试还是失败。最后依靠大神大腿,学了用python来解决上述问题。下面和大家分享一下具体步骤。
安装和环境变量设计
网址:https://www.python.org/doc/
安装完还不算,必须先设置好python的环境变量(具体什么东西我一脸懵逼,就知道这个不设置好,错误警告!!!)
设置也很简单:先找到你你python的安装路径,
然后根据一下箭头指示操作
在最后一个编辑系统变量里面,在原来的变量值后面加入“;+python的路径”(这里的分号:,必须是半角下的分号)
创建文本和文件存储
在安装好python以及设计好变量环境后,创建一个文本,改后缀为.py用于存python代码以及一个.txt文本用于存数据。
其中data2.txt里面的数据应该是下图所显示那样,具体拓展看文末,
之后打开,cmd,
先确定刚刚.py和数据文件data.txt所在文件夹。
在命令框里,进入后默认出现1框所出现的,在1框后输入cd+文件存储位置
将索引引到文件存储位置,才可以进行下一步分析
数据转换
然后动动手指按下“python xxx.py”,然后就出现了一个out.txt
打开,看下,刺激不刺激,幸福不幸福!这样就解决了上次的困扰了,希望对大家有帮助。这个事情告诉我们,有个会懂代码的同学是个多么好的体验,睡觉都能笑醒!!!!
代码分析和拓展
1、代码如下
# coding: utf-8
#打开data2.txt
input = open("data2.txt", 'r')
output = open("out.txt",'w')
while True:
line = input.readline()
if not line: #文件读完退出
break;
line = line.strip().split(' ')
#print(line)
for i in line[2:]:
if not i:
continue
else:
output.write(line[0] + ' ' + line[1] + ' ' + i + '
')
input.close()
output.close()
(’ ’代表excel表里一个空格,’
’是换位,靠i循环。
for i in line[2:]里的line[2:]是用来定循环起点)```
2、代码拓展
上面这个代码的关键在与
output.write(line[0] + ' ' + line[1] + ' ' + i + ' ')这一步,一般不需要更改其余的参数,通过下面几个图来感受下修改后的变化。(这个代码可以拓展,拓展什么样靠自己的想象力了下面我就展示他可伸缩的性质)
加法:(构建具有更多性质属性的输入文件)
output.write(line[0] + ' ' + line[1] +’ ’+line[2]+ ' ' + i + '
')```
公式改变处用红色标明,可以看出这次输出的文件,在原先的基础之上,出现了第三列这一列,也就意味着第三列的输出信息是’ ’+line[2]所表示的。之前说了,line[2]中2是定位的,我们看下我们最先需要处理的数据源。
Line[X]中X的顺序是从0开始的,也就是说line[0]代表A列,line[2]代表C列。
减法:(删减输入性质的文件)
output.write(line[0] + ' ' + i + '
')```
同样我们删去了' ' + line[1],也就是把line[1]代表的源数据B列给去掉。
根据以上的稍微改动,对于处理这类数据,通过对这段循环语句稍微改动
#print(line)
for i in line[X:]:
if not i:
continue
else:
output.write(line[0] + ' ' + line[1] + ' ' + i + '
')```
即通过对x的赋值,结合我们的需要,定好合适的起点就对这个脚本有了全面的了解了。
这个代码是开源的,对于将david,bingo插件等富集分析的输出文件转化成符合cytoscape输入格式是非常便利省时的,不需要什么编程的底子,零基础快速掌握一个python小技巧达到构建配置文件的目的。
来源:https://blog.csdn.net/sinat_38682860/article/details/85636619
掌握这个Python小技巧,轻松构建cytoscape导入文件的更多相关文章
- python小技巧 小知识
python小技巧 小知识 python系统变量(修改调用shell命令路径)或用户空间说明 20150418 python调用系统命令,报找不到.怎么办? 类似执行shell的: [ -f /etc ...
- 不是吧?30秒 就能学会一个python小技巧?!
大家好鸭!我是小熊猫 很多学习Python的朋友在项目实战中会遇到不少功能实现上的问题,有些问题并不是很难的问题,或者已经有了很好的方法来解决.当然,孰能生巧,当我们代码熟练了,自然就能总结一些好用的 ...
- Python补充02 Python小技巧
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...
- python 小技巧(import模块、查询类继承关系、安装包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...
- 让你瞬间萌比的35个python小技巧
今天在看python算法的时候,看到一篇关于python的小技巧.瞬间萌比了,原来python也可以这样玩,太神奇了.萌比的是原来这么简单的东西自己都不知道,虽然会写.废话不多说了,开始上菜. 1.拆 ...
- Python小技巧:使用一行命令把你的电脑变成服务器
不知道你有没有遇到这么一种情况,就是你有时候想要把电脑上的一些东西传输到你的手机或者 Pad ,你要么需要使用数据线连接到电脑,有时候还要装各种驱动才可以进行数据传输,要么需要借助第三方的工具,在局域 ...
- Python小技巧整理
一.python小工具: 1.内置下载和网站: 进入相应目录:2.x python -m SimpleHTTPServer 3.x python -m http.server 2.字符串转换为JSON ...
- [转]【Windows小技巧】批量重命名文件
注:如果文件名包含空格,命令应写成ren "s0 (1).gif" s001.gif,简而言之,就是加上双引号!!!原因:系统将s0和(1).gif认为是两个参数,再加上后面的s0 ...
- 5个常常被大家忽略的Python小技巧
下面我挑选出的这几个技巧常常会被人们忽略,但它们在日常编程中能真正的给我们带来不少帮助. 1. 字典推导(Dictionary comprehensions)和集合推导(Set comprehensi ...
随机推荐
- 【Raspberry pi】python ide-spyder
sudo apt-get install spyder 简单 明了
- Java将视频转为缩略图--ffmpeg
Java生成视频缩略图 对于上传视频生成缩略图使用的是ffmpeg进行生成的. 自己在网上找了如何进行编译ffmpeg的方法 但是感觉太复杂了 就到csdn上找到了编译好的ffmpeg文件 体会到ff ...
- Java逍遥游记读书笔记<二>
Abstract抽象类 1.抽象类不能被实例化 2.抽象方法没有方法体 如: public abstract class Weapen { public abstract void attack(); ...
- mysql数据库sql优化——子查询优化
1.什么是子查询.表关联查询: 子查询:是指在主sql语句中的select或where子句中使用select查询语句:select a.name,(select b.name from b where ...
- select循环读取数据
<select id="srType" name="srType" value="test"> <c:forEach va ...
- caffe进行finetune时出现"shapeequals(proto) shape mismatch (reshape not set)"的解决办法
声明:加载的caffemodel会根据你的net.prototxt文件里的各个layer的name来进行参数赋值. 错误:[Caffe]: Check failed: ShapeEquals(prot ...
- 170213、亿级Web系统搭建——单机到分布式集群
[导读]徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升级与重构,目前在小满科技创业,从事SaaS服务技术建设. 大规模流量的网站架构,从来都是慢慢“成长”而来.而这 ...
- grunt的简单应用
grunt是干什么的呢,一句话:自动化.对于需要反复重复的任务,例如压缩(minification).编译.单元测试.linting等,自动化工具可以减轻你的劳动,简化你的工作.当你在 Gruntfi ...
- 关于修改react的启动端口
在package.json文件里面,加一个port端口号就ok了
- 解决----------“win10,不能打字了,已禁用IME”
登录Windows 10系统桌面后,右键点击左下角的开始菜单图标,然后在弹出菜单中选择“计算机管理”菜单项在打开的“计算机管理”窗口中,找到左侧系统工具下的“任务计划程序”菜单项点击任务计划程序前面的 ...