我有一系列的輸入文件,如:分割線從INFILE在python
chr1 hg19_refFlat exon 44160380 44160565 0.000000 + . gene_id "KDM4A"; transcript_id "KDM4A";
chr1 hg19_refFlat exon 19563636 19563732 0.000000 - . gene_id "EMC1"; transcript_id "EMC1";
chr1 hg19_refFlat exon 52870219 52870551 0.000000 + . gene_id "PRPF38A"; transcript_id "PRPF38A";
chr1 hg19_refFlat exon 53373540 53373626 0.000000 - . gene_id "ECHDC2"; transcript_id "ECHDC2_dup2";
chr1 hg19_refFlat exon 11839859 11840067 0.000000 + . gene_id "C1orf167"; transcript_id "C1orf167";
chr1 hg19_refFlat exon 29037032 29037154 0.000000 + . gene_id "GMEB1"; transcript_id "GMEB1";
chr1 hg19_refFlat exon 103356007 103356060 0.000000 - . gene_id "COL11A1"; transcript_id "COL11A1";
在我的代碼,我試圖捕捉每行2個元素,第一個是後該號碼它說,外顯子,二是基因(該數字和字母組合的「包圍」,如「KDM4A」這裏是我的代碼:
with open(infile,'r') as r:
start = set([line.strip().split()[3] for line in r])
genes = set([line.split('"')[1] for line in r])
print len(start)
print len(genes)
出於某種原因開始工作正常,但基因是不是拍攝什麼。這裏是輸出:
48050
0
我想,這是什麼做的「」周圍的基因的名字,但如果我進入這個在終端上正常工作:
>>> x = 'A b P "G" m'
>>> x
'A b P "G" m'
>>> x.split('"')[1]
'G'
>>>
任何解決方案將不勝感激?如果即使它是一種完全不同的方式來捕獲每行的2項數據。由於
好了,所以我應該在OP做些什麼呢? – Kevin
@Kevin編輯感謝 – The6thSense
謝謝,我之前沒有遇到過這個seek方法,非常有用。我接受這個答案,因爲它的最短最簡潔,並解決了1短代碼 – user3062260