- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的目标是有效地将包含短 DNA 测序读取的 bowtie2 映射的 bam 文件转换为包含映射开始和同一性百分比的简单表格。我即将完成此任务,但是我的解决方案非常慢并且无法处理重要的异常。我将逐步说明情况:
我们从这样的字符串开始
FCC5G2YACXX:5:1101:1224:2059#NNNNNNNN 97 genome 96003934 24 118M4D11M = 96004135 0 GCA....ACG P\..GW^EO AS:i:-28 XN:i:0 XM:i:2 XO:i:1 XG:i:4 NM:i:6 MD:Z:54G53T9^TACA11 YT:Z:UP
我们只取第四列和 MD:Z:54G53T9^TACA11
部分,后者表示匹配(数字)和不匹配(字母)。除非字母前面有“^”,否则字母是引用序列中的缺失。
然后我将其计算成这样的字符串 96003934 98.00
其中第一列与原始输入的第四列相同,第二列是匹配项,除以匹配项和不匹配项的总和。
因为我更喜欢 bash/zsh 脚本,所以我做了以下操作
if_sam2tab() {
tab=$(echo $1 | rev | cut -d '.' -f 2- | rev)
if [ ! -e ./bowtie_results/$tab.tab ]
then echo -e "rstart\tmatch\tmismatch" > ./bowtie_results/$tab.tab
while read -r l
do rstart=$(echo $l | cut -f 4 -d " " )
t=$(echo $l | grep -o 'MD:Z:[0-9A-Z]*' )
match=$(echo ${t: 5} | tr '[a-zA-Z]' '+' | bc )
mismatch=$(echo ${t: 5} | tr -d '[0-9]\n' | wc -c )
sum=$(echo "$match + $mismatch" | bc )
id=$(echo "scale=2; $match / $sum *100" | bc )
echo -e "$rstart\t$id" >> ./bowtie_results/$tab.tab
done < <(grep 'MD:Z' ./bowtie_results/$1 )
fi
}
然而,这个解决方案是错误的,因为它认为诸如 ^TCTAAG
之类的删除是不匹配的。
其次,它对我来说似乎非常慢,即使我在六个 cpu 上并行运行其中五个函数也是如此。
概括地说,我的目标是有效地将带有映射信息的字符串转换为标识百分比。
感谢您的关注
最佳答案
Jose 对先前回答的补充:MD 字符串不一定是第 18 列。因此,我在 Jose 的 awk 脚本中添加了一行来查找 MD 字符串,而不管行中的位置。毫无疑问,在这个过程中添加一个正则表达式步骤会减慢整个过程。
awk '{
match($0, /MD:Z:[0-9A-Z\^]*/,m );
split(m[0],v,/[\^:]/);
nmatch = split(v[3],vmatch, /[^0-9]/);
cmatch=0;
for(i=1; i<=nmatch; i++) cmatch+=vmatch[i];
printf("%s"OFS"%.2f\n", $4, cmatch*100/(cmatch+nmatch-1));
}'
我选择在这个 awk 脚本中直接通过管道传输 bowtie 输出,而不将其保存在磁盘上。在我的有限测试中,我没有发现磁盘 i/o 受到限制,也没有发现将 bowtie2 输出直接输送到 awk 会显着降低同时运行时的整体性能。
关于parsing - 从单个字符串有效地计算统计数据(bowtie2 的 bam 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32743181/
我有来自 3 个不同样本的三个单细胞 bam 文件,我需要将它们分成更小的 bams。然后我需要合并来自相同集群的不同样本的 bam 文件。我尝试使用检查点但有点迷路。 https://snakema
在 WSO2 BAM 4.1.0 中更改 admin 用户的默认密码后,任务失败并显示以下错误: TID: [0] [BAM] [2013-06-20 16:56:15,464] ERROR {org
我有一个 32 位十六进制值,例如 04FA4FA4,我想知道如何将它转换为 BAMS以双人的形式。任何语言的例子都可以,我只关心学习算法或公式来进行转换。当我有类似 000:00.0000 的形式时
Closed. This question needs to be more focused。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题
我正在为 WSO2 BAM 仪表板创建小工具。我需要将数据添加到提供受监控服务器服务的图表中。如何将这些数据作为图表的值? 最佳答案 遵循的标准方法是, 您需要首先通过服务公开这些数据。例如:可以通过
我们如何在 BAM 服务器配置文件流定义(来自 WSO2 ESB 管理控制台)下实现命名空间处理,而不是在使用 XPath 表达式的中介流下进行处理? 我们怀疑当输入有效载荷很大时这会导致性能问题,因
我已经安装了最新版本的 WSO2 BAM (2.4.1) 和 WSO2 ESB (4.8.1)。 ESB 中的 BAM 调解器不工作。每次尝试向 BAM 发送消息时,它都会抛出以下异常。 你能帮忙吗?
我有大肠杆菌的 Illumina 双端读段,用于创建组装草图 (SPAdes)。我现在的任务是创建我将与 Pilon 一起使用的输入 BAM 文件——它用于改进草图程序集。 我决定使用此处的文档来使用
我正在尝试使用 bam 来运行以下广义加性模型: m runif(n) y[!ind] summary(b) Family: Zero inflated Poisson(-1.855,1.2
我们在尝试按照手册将 BAM 配置文件添加到 ESB 时遇到问题: http://docs.wso2.org/wiki/display/BAM201/Setting+up+BAM+Mediator#S
我们有一些服务(使用 WSO2 API Manager 公开)。我们想为消费者做帐单。 不幸的是,我们的计费规则需要一些仅在已实现服务中可用的详细信息。我可以看到两种处理方法: 将详细信息作为一种元数
我的目标是有效地将包含短 DNA 测序读取的 bowtie2 映射的 bam 文件转换为包含映射开始和同一性百分比的简单表格。我即将完成此任务,但是我的解决方案非常慢并且无法处理重要的异常。我将逐步说
我们可以插入除 Cassandra 之外的任何其他数据库,因为所有发布的数据都进入 Cassandra 吗? 最佳答案 不,目前 WSO2 BAM 默认支持 Cassandra。但是,如果需要,可以通
我有给定的染色体编号和位置(chr1 和位置 1599812)。我想使用 python 的 pysam 模块访问 bam 文件以获取仅特定区域 chr1 和位置 1599812 的读取数字信息。我尝试
我在具有 CEP 和 APIM 实例的服务器中运行 BAM 2.4.0。此外,我正在使用 +2 端口偏移运行它。但是当我启动 BAM 时,控制台打印: [2014-03-06 16:34:04,126
我们正在评估 WSO2 API Manager 1.8.0 (WSO2 AM) 和 WSO2 Business Activity Monitor 2.5.0 (WSO2 BAM)。从我们的支持合作伙伴
我发现有很多工具可用于修剪 fastq 格式的 reads,但是否有任何工具可用于修剪已对齐的 reads? 最佳答案 我个人不鼓励在比对您的读段后对读段进行修整,尤其是当您尝试修整的序列是接头序列时
我有以下尝试计数的简单脚本 SAM/BAM file 中用 "CB:Z"编码的标签: samtools view -h small.bam | grep "CB:Z:" | sed 's/.
我有一个 Web 应用程序 (java),我想从 BAM 监控它,到目前为止我所做的一切都在此链接中进行了解释: Setting up Message Tracer Filter to a web a
我想使用 MySQL 数据库将 Hive 分析脚本的结果存储在 BAM 2.0.1 中。查看提供的示例,我可以看到我必须使用许多属性 (mapred.jdbc.*) 来传递连接信息。 有没有办法使用
我是一名优秀的程序员,十分优秀!