我想從python中的字符串中提取某些值。從字符串中提取值
snp_1_881627 AA=G;ALLELE=A;DAF_GLOBAL=0.473901;GENE_TRCOUNT_AFFECTED=1;GENE_TRCOUNT_TOTAL=1;SEVERE_GENE=ENSG00000188976;SEVERE_IMPACT=SYNONYMOUS_CODON;TR_AFFECTED=FULL;ANNOTATION_CLASS=REG_FEATURE,SYNONYMOUS_CODON,ACTIVE_CHROM,NC_TRANSCRIPT_VARIANT,NC_TRANSCRIPT_VARIANT;A_A_CHANGE=.,L,.,.,.;A_A_LENGTH=.,750,.,.,.;A_A_POS=.,615,.,.,.;CELL=GM12878,.,GM12878,.,.;CHROM_STATE=.,.,11,.,.;EXON_NUMBER=.,16/19,.,.,.;GENE_ID=.,ENSG00000188976,.,ENSG00000188976,ENSG00000188976;GENE_NAME=.,NOC2L,.,NOC2L,NOC2L;HGVS=.,c.1843N>T,.,n.3290N>T,n.699N>T;REG_ANNOTATION=H3K36me3,.,.,.,.;TR_BIOTYPE=.,PROTEIN_CODING,.,PROCESSED_TRANSCRIPT,PROCESSED_TRANSCRIPT;TR_ID=.,ENST00000327044,.,ENST00000477976,ENST00000483767;TR_LENGTH=.,2790,.,4201,1611;TR_POS=.,1893,.,3290,699;TR_STRAND=.,-1,.,-1,-1
輸出:
GENE_ID GENE_NAME EXON_NUMBER SEVERE_IMPACT
snp_1_881627 ENSG00000188976 NOC2L 16/19 SYNONYMOUS_CODON
如果字符串值,爲每個現有然後輸出變量(GENE_ID,GENE_NAME,EXON_NUMBER)的,否則爲 「NA」(變量不存在,或者它們的值不存在)。在某些情況下,這些變量不存在於字符串中。
我應該使用哪種字符串方法做到這一點?我應該提取任何值之前拆我的字符串?我有10K行提取值爲每個snp_ *
string=string.split(';')
附:我是python的新手
你真的*嘗試*使用'split'嗎?代碼在哪裏,結果如何? – jonrsharpe
一旦我拆分,要提取的值可能不一致,所以我不能通過索引使用它們。我想要在整個完整字符串中查找模式(例如GENE_ID)。 – Rgeek
不要使用索引,實際上使用'startswith'在列表中搜索所需的條目。我建議你製作一本字典,例如'{'ID':'snp_1_881627','SEVERE_IMPACT':'SYNONYMOUS_CODON',...}' – jonrsharpe