1. 程式人生 > >掌握這個Python小技巧,輕鬆構建cytoscape匯入檔案

掌握這個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:]是用來定迴圈起點)




<p><strong>2、程式碼拓展</strong></p>

<p>上面這個程式碼的關鍵在與</p>

<p><strong>output.write(line[0] + ' ' + line[1] + ' ' + i + ' ')</strong>這一步,一般不需要更改其餘的引數,通過下面幾個圖來感受下修改後的變化。(這個程式碼可以拓展,拓展什麼樣靠自己的想象力了下面我就展示他可伸縮的性質)</p>

<p><strong>加法:(構建具有更多性質屬性的輸入檔案)</strong></p>

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

')




<p><img alt="掌握這個Python小技巧,輕鬆構建cytoscape匯入檔案" class="has" src="http://p99.pstatp.com/large/pgc-image/bfa186b3123445fc9d9685d137611054" /></p>

<p> </p>

<p>同樣我們刪去了' ' + line[1],也就是把line[1]代表的源資料B列給去掉。</p>

<p>根據以上的稍微改動,對於處理這類資料,通過對這段迴圈語句稍微改動</p>

<pre>
 #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