掌握這個Python小技巧,輕松構建cytoscape導入文件


今天小編和大家分享如何借助Python腳本輕松構建cytoscape導入文件。Cytoscape是一個非常適合展示各種相互作用關系的可視化軟件。

掌握這個Python小技巧,輕松構建cytoscape導入文件

具體來說就是可以用於蛋白互作網絡的展示,miRNA與蛋白質或者TF與RNA的相互作用等內容的可視化,是一個生信分析不可或缺的神器。但是當要處理的數據比較多,並且需要根據Cytoscape要求整理數據的時候,會不會整理到眼花?不知道你們會不會,反正小編每次都整理得想吐血~~~

更多Python視頻、源碼、資料加群960410445免費獲取

上一次的利用Cytoscape中展示富集分析的結果教程中,Cytoscape導入的文本內容大致有圖中的那幾列,

掌握這個Python小技巧,輕松構建cytoscape導入文件

將基因富集后,我們打開的原始文件一般如下圖

掌握這個Python小技巧,輕松構建cytoscape導入文件

為了舉例說明,我們僅選取了一個性質,通過分列將gene里的gene分散到各個單元格里,形成下圖。

掌握這個Python小技巧,輕松構建cytoscape導入文件

掌握這個Python小技巧,輕松構建cytoscape導入文件

具體問題是:將圖1中source,性質和target三類數據轉化為圖2里的具有一對一關系樣式,原本的解決方法是利用excel的復制橫縱轉化粘貼,之后可能還有重新整合起來,太過繁瑣。

不懂編程的醫學狗,還幻想用excel的函數,妄想解決上述問題,多次嘗試還是失敗。最后依靠大神大腿,學了用python來解決上述問題。下面和大家分享一下具體步驟。

安裝和環境變量設計

網址:https://www.python.org/doc/

掌握這個Python小技巧,輕松構建cytoscape導入文件

掌握這個Python小技巧,輕松構建cytoscape導入文件

安裝完還不算,必須先設置好python的環境變量(具體什么東西我一臉懵逼,就知道這個不設置好,錯誤警告!!!)

掌握這個Python小技巧,輕松構建cytoscape導入文件

設置也很簡單:先找到你你python的安裝路徑,

掌握這個Python小技巧,輕松構建cytoscape導入文件

然后根據一下箭頭指示操作

掌握這個Python小技巧,輕松構建cytoscape導入文件

掌握這個Python小技巧,輕松構建cytoscape導入文件

掌握這個Python小技巧,輕松構建cytoscape導入文件

掌握這個Python小技巧,輕松構建cytoscape導入文件

掌握這個Python小技巧,輕松構建cytoscape導入文件

在最后一個編輯系統變量里面,在原來的變量值后面加入“;+python的路徑”(這里的分號:,必須是半角下的分號)

創建文本和文件存儲

在安裝好python以及設計好變量環境后,創建一個文本,改后綴為.py用於存python代碼以及一個.txt文本用於存數據。

掌握這個Python小技巧,輕松構建cytoscape導入文件

其中data2.txt里面的數據應該是下圖所顯示那樣,具體拓展看文末,

掌握這個Python小技巧,輕松構建cytoscape導入文件

之后打開,cmd,

掌握這個Python小技巧,輕松構建cytoscape導入文件

先確定剛剛.py和數據文件data.txt所在文件夾。

掌握這個Python小技巧,輕松構建cytoscape導入文件

掌握這個Python小技巧,輕松構建cytoscape導入文件

在命令框里,進入后默認出現1框所出現的,在1框后輸入cd+文件存儲位置

將索引引到文件存儲位置,才可以進行下一步分析

數據轉換

然后動動手指按下“python xxx.py”,然后就出現了一個out.txt

掌握這個Python小技巧,輕松構建cytoscape導入文件

掌握這個Python小技巧,輕松構建cytoscape導入文件

掌握這個Python小技巧,輕松構建cytoscape導入文件

打開,看下,刺激不刺激,幸福不幸福!這樣就解決了上次的困擾了,希望對大家有幫助。這個事情告訴我們,有個會懂代碼的同學是個多么好的體驗,睡覺都能笑醒!!!!

代碼分析和拓展

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 + '
')

```



掌握這個Python小技巧,輕松構建cytoscape導入文件

公式改變處用紅色標明,可以看出這次輸出的文件,在原先的基礎之上,出現了第三列這一列,也就意味着第三列的輸出信息是’ ’+line[2]所表示的。之前說了,line[2]中2是定位的,我們看下我們最先需要處理的數據源。

掌握這個Python小技巧,輕松構建cytoscape導入文件

Line[X]中X的順序是從0開始的,也就是說line[0]代表A列,line[2]代表C列。

減法:(刪減輸入性質的文件)

	output.write(line[0] + '	' + i + '
')

```



掌握這個Python小技巧,輕松構建cytoscape導入文件

同樣我們刪去了' ' + 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM