我有一个标签文件,我想将基因的特征(上游,下游,最低,注释或...)划分为标准特征。 最后两列是我想要生成的cond_a和cond_b的结果列。 我正在编写一个代码,以便能够保存元组中的每一行,然后搜索元组并进行分割,但这对我来说很困惑。 我怎么能用Python做到这一点?
for line in open(myfile,"r").readlines():
Fld = line.strip().split("\t")
gene,feature,cond_a,cond_b= Fld[0],Fld[1],int(Fld[2]),int(Fld[3])
gene feature cond_a cond_b
A upstream 2 5 2/5 5/8
A standard 5 8 5/5 8/8
C standard 4 23 4/4 23/23
D downstrs 3 1 3/9 1/5
D standard 9 5 9/9 5/5
H standard 2 9 2/2 9/9
H downupst 1 2 1/2 2/9
H annotate 4 8 4/2 8/9
答案 0 :(得分:0)
很难准确说出你想要的东西(为了将来参考它最好省略与字段相关而不是编程相关的技术细节 - 让我们这些一无所知的人更容易关于帮助的基因),我无法告诉你如何精确计算这两列。然而,这看起来像是熊猫的工作。你会做一个这样一个简单的例子:
import pandas as pd
data = {'gene':['A', 'C', 'D'], 'cond_a':[2,3,4], 'cond_b':[5,6,7]}
df = pd.DataFrame(data)
df['new_col'] = df['cond_a'] / df['cond_b']
对于您的数据,您可以将其加载到:
df = pd.read_csv(myfile, delimiter='/t')
但是,您正在计算其他列,您可以使用Pandas轻松完成。此外,您可以按各种类别进行分组以处理子集,依此类推。
答案 1 :(得分:0)
谢谢,但这不是我想要计算的,让问题清楚,首先2/5将第一行(2)分为第二行(5)(基因A的标准)。 5/5是自身的划分,因为它是标准的1.最后一行(4/2)将最后一行划分为行号6
甲_____上游_____ 2 _____ 2/5
一个_____ _____标准5 _____ 5/5
ç_____ _____标准4 _____ 4/4
d _____ downstrs ____ 3 _____ 3/9
d _____标准_____ 9 _____ 9/9
ħ_____标准_____ 2 _____ 2/2
ħ_____ downupst ____ 1 _____ 1/2
H _____注释_____ 4 _____ 4/2