在我進入我的問題,我想向您提供人與我有什麼迄今。匹配的元素嵌套的字典蟒蛇
首先,我產生一個嵌套的字典從我想用比較的文件。什麼我的字典看上去象下面這樣被描繪(與正在大小的唯一區別)的一個例子:
Negdic = {'ADA': {'NM_000022': ['43248162', '43248939',
'43249658', '43251228',
'43251469', '43251647',
'43252842', '43254209',
'43255096', '43257687',
'43264867', '43280215', '']},
'ALDOB': {'NM_000035': ['104182841', '104187124',
'104187734', '104188836',
'104189763', '104190750',
'104192036', '104193057',
'104197990', '']}}
現在,這是我,由於我是不熟悉Python和新編程掙扎。我想使用第二個文件來搜索我的字典中的匹配項。我的文件看起來像這樣:
chrom exon_start exon_end strand isoform exon_numer gene coding_length total_mutations_reported total_exonic_mutations exonic_splicing_mutations total_splice_site_mutations 3_ss_mutations 5_ss_mutations
chr20 43255096 43255240 - NM_000022 4 ADA 144 12 9 0 3 3 0
chr9 104187734 104187909 - NM_000035 7 ALDOB 175 7 4 0 3 2 1
我想要做的就是通過我的字典基因名稱搜索,再搭配亞型的名稱,然後最後通過對exon_start相應的亞型列表查找和打印位置在exon_start被找到的列表中。
這裏是我一直在努力與合作一些示例代碼,但我不知道如果我在正確的軌道上。
for line in open("NegativeHotspot.txt"):
columns = line.split('\t')
if len(columns) >= 2:
Hotspotgenes = columns[6]
Hotspotgenes2 = Hotspotgenes.split()
print Hotspotgenes2
#print Hotspotgenes2
#x = type(Hotspotgenes)
#print x
#for k in Hotspotgenes:
# if k in Negdic:
# print k, Negdic[k]
,第一部分是我一直在試圖惹創建文件中的基因列表搜索字典我的結果,但我掙扎,甚至創建從我的名單輸出欄[6]。另外,我甚至不確定我是否以最好的方式處理我的代碼。該編碼部分的最後一部分是我只是在試圖在我的字典中找到匹配而搞亂的東西。
幫助將不勝感激。我迷茫:(
對於初學者,嘗試使用pd.read_csv(filename)讀取文件。您首先需要將pandas導入爲pd。 – Alexander
@Alexander推薦一個第三方庫有什麼可能的幫助,然後不解釋爲什麼,如何或者如何處理它,而不是他已經*完成了? –
要查找字典值,請嘗試gene = Negdic.get(Hotspotgenes2)。然後你需要鏈(這就是爲什麼我建議使用熊貓)。假設strand = columns [4]。然後嘗試gene.get(鏈)。 – Alexander