使用R语言从Excel单元格提取突变位置数字的方法
提取数据框中突变记录的位置数字
假设你的数据框df里有一列(比如命名为mutations)存储着chr10:63661472 G>C这类突变字符串,以下是两种高效提取冒号后位置数字的方法:
方法1:正则表达式提取(推荐)
利用pandas的str.extract配合正则,直接捕获冒号后的连续数字:
import pandas as pd # 构造示例数据框 df = pd.DataFrame({ 'mutations': ['chr10:63661472 G>C', 'chr14:105246551 C>T', 'chr16:2225614 G>T'] }) # 提取位置数字到新列 df['position'] = df['mutations'].str.extract(r':(\d+)', expand=False) # 查看结果 print(df['position'])
正则r':(\d+)'的作用是匹配冒号:,并捕获其后的所有数字字符,str.extract会自动提取捕获组的内容,得到纯数字结果。
方法2:字符串拆分法
通过两次拆分字符串获取目标数字:
df['position'] = df['mutations'].str.split(':').str[1].str.split().str[0] print(df['position'])
- 第一次按
:拆分,取拆分后的第二部分(即63661472 G>C这类内容) - 第二次按空格拆分,取拆分后的第一部分,就是需要的位置数字
如果是处理单个字符串,也可以用类似逻辑:
# 单个字符串处理示例 s = 'chr10:63661472 G>C' # 拆分法 pos = s.split(':')[1].split()[0] # 正则法 import re pos = re.search(r':(\d+)', s).group(1)
内容的提问来源于stack exchange,提问作者Biotechnologist
相关产品推荐
相关产品推荐

