我想从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