You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编辑RNA-seq组装的FASTA序列:保留指定标识并添加Uniprot ID

解决方案

1. 解决FASTA文件无法用Get-Content打开的问题

Get-Content打不开通常是编码不兼容导致,尝试指定编码读取:

Get-Content -Path "你的FASTA文件路径.fasta" -Encoding UTF8

如果仍失败,替换为-Encoding Default或-Encoding ASCII重试。若还是不行,用Notepad++打开文件(它能自动识别多数编码),将文件转存为UTF-8格式后再操作。

2. 调整序列头格式(保留第一个ENSP+GN前缀的倒数第二个标识)

用Notepad++的正则替换功能完成,无需编程基础:

  1. 打开Notepad++并导入FASTA文件
  2. 按Ctrl+H打开替换窗口,选择「正则表达式」模式,勾选「匹配新行」
  3. 「查找目标」输入:^>(.*?)(ENSP[\d.]+).*?([^|]+)\|[^|]+$
  4. 「替换为」输入:>$2|GN=$3
  5. 点击「全部替换」,即可得到目标格式(如>ENSP00000493376.2|GN=OR4F5-201)

3. 为序列添加Uniprot ID

方法一:手动映射(适合新手)

  1. 提取所有ENSP编号:在Notepad++中用正则查找^>ENSP([\d.]+),将捕获的ENSP复制出来保存为每行一个的文本文件
  2. 通过Uniprot ID映射功能,将Ensembl Protein(ENSP)映射到UniProtKB,下载CSV格式的映射结果
  3. 用Excel整理ENSP与对应Uniprot ID的对应关系
  4. 回到Notepad++,通过批量替换将Uniprot ID追加到序列头,例如将>ENSPxxxx|GN=yyyy替换为>ENSPxxxx|GN=yyyy|UP=zzzz

方法二:PowerShell脚本自动映射(双击运行)

新建文本文件,复制以下代码并保存为AddUniprotID.ps1,替换其中的文件路径后右键选择「用PowerShell运行」:

# 替换为你的FASTA文件路径
$fastaPath = "你的文件路径.fasta"
$outputPath = "处理后的文件.fasta"

# 读取FASTA文件
$fasta = Get-Content $fastaPath -Encoding UTF8

# 存储ENSP到Uniprot的映射
$mapping = @{}

# 提取所有ENSP编号
$ensps = $fasta | Where-Object { $_ -match "^>(ENSP[\d.]+)" } | ForEach-Object { $matches[1] }

# 调用Uniprot API批量映射
$enspsStr = $ensps -join ","
$apiUrl = "https://rest.uniprot.org/idmapping/run"
$body = @{
    from = "ENSEMBL_PRO_ID"
    to = "UniProtKB"
    ids = $enspsStr
} | ConvertTo-Json

$response = Invoke-RestMethod -Uri $apiUrl -Method Post -Body $body -ContentType "application/json"
$jobId = $response.jobId

# 等待映射完成
Start-Sleep -Seconds 10
$resultUrl = "https://rest.uniprot.org/idmapping/results/$jobId"
$result = Invoke-RestMethod -Uri $resultUrl

# 构建映射表
foreach ($entry in $result.results) {
    $mapping[$entry.from] = $entry.to.primaryAccession
}

# 处理序列头并保存结果
$processed = $fasta | ForEach-Object {
    if ($_ -match "^>(ENSP[\d.]+)\|GN=([^|]+)$") {
        $ensp = $matches[1]
        $gn = $matches[2]
        $up = $mapping[$ensp] ?? "Unknown"
        ">$ensp|GN=$gn|UP=$up"
    } else {
        $_
    }
}

$processed | Out-File $outputPath -Encoding UTF8
Write-Host "处理完成,结果保存到 $outputPath"

注意事项

  • 若FASTA文件过大(超100MB),Notepad++可能卡顿,优先使用PowerShell脚本
  • Uniprot API有请求限制,ENSP数量过多时需分批次处理

内容的提问来源于stack exchange,提问作者Ulrike Resch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 05:43:11