标签: bioinformatics

如何在R中制作时间轴/瀑布图,用于基因/基因组覆盖

我想做一个相对简单的情节(让人想起如下的时间线:http://www.ats.ucla.edu/stat/sas/code/timeline.gif),但不是时间在x轴上,它将成为基因组中的基础位置."时间跨度"将是DNA序列支架的覆盖距离,显示它们落入基因组的范围,它们重叠的位置和没有覆盖的位置.这是我正在寻找的粗略模型,显示rRNA的重叠群覆盖,(我遗漏了,但需要,x轴显示开始和停止的位置,以及重叠群的标记(彩色线)): http://i.imgur.com/MDABx.png,具有以下坐标:

Contig# Start1  Stop1   Start2  Stop2   Start3  Stop3   Start4  Stop4
1   1   90  90  100 120 150 200 400
2   1   100 120 150 200 400 NA  NA
3   1   30  90  100 120 135 200 400
4   1   100 120 140 200 400 NA  NA
5   -35 80  90  100 130 150 200 400
6   1   100 200 300 360 400 NA  NA
Run Code Online (Sandbox Code Playgroud)

我很确定这可以在R中完成,可能使用ggplot2,但由于某种原因我无法弄明白.

plot r bioinformatics ggplot2 genome

0
推荐指数
1
解决办法
1256
查看次数

如何根据它包含的数据删除行?

我有一张桌子,开头就在这里:

>df
TargetID    SM_H1455_121005_4   SM_H1456_121005_1   SM_H1457_121005_7   SM_H1461_121005_2   SM_H1462_121005_8   SM_H1463_121005_1   SM_K1566_121005_6   

ENSG00000002549.7   2286    2468    2498    1696    2044    11536   4100    5460        
ENSG00000002587.5   10  0   6   2   0   2   34  
ENSG00000002726.15  8   14  0   2   16  2   4   
ENSG00000002745.8   6   2   2   0   0   4   6   
Run Code Online (Sandbox Code Playgroud)

我想浏览每一行并删除包含0的每一行.这是我的代码:

for(i in 2:length(df)) {
df2 <- df[df[,i]!=0,]
}
Run Code Online (Sandbox Code Playgroud)

但是这段代码不会删除其中包含0的所有行.它删除了一些行,但我不确定为什么,我不认为这是正确的.有什么建议?

for-loop r bioinformatics delete-row

0
推荐指数
1
解决办法
207
查看次数

从 .bim、.bed 和 .fam 文件创建 VCF

我有一个 .fam、.bed 和 .bim 文件,其中包含少数个人的标记。我需要将其转换为 VCF 文件。

有人可以帮忙创建一个 VCF 文件吗?有没有开源工具可以做到这一点?

bioinformatics genetics bam vcf-variant-call-format bed

0
推荐指数
1
解决办法
6170
查看次数

将多个指定位置的值插入到 python 字符串/数组中

我想将多个指定位置的值插入到 python 字符串/数组中。

例如我的输入字符串:SARLSAMLVPVTPEVKPK

在指定位置:1,5,12

所需的输出:S*ARLS*AMLVPVT*PEVKPK

我试过:

seq="SARLSAMLVPVTPEVKPK" #string
pos=[1,5,12] #positions
arr=list(seq) #convert string to array
arr.insert(pos,"*") # NOT WORK!
arr.insert(pos[0],"*")
print(''.join(arr))
Run Code Online (Sandbox Code Playgroud)

看来我一次只能插入一个位置,因此下一次插入的指定位置的索引必须更改。有没有一种优雅的方法来做到这一点,或者我是否必须循环遍历插入位置,为每个附加插入位置添加+1?我希望这是有道理的!

非常感谢,卷毛。

python bioinformatics

0
推荐指数
1
解决办法
543
查看次数

在biopython中仅显示DNA比对分数

我有 DNA 序列数据。例如,

X="ACGGGT"
Y="ACGGT"
Run Code Online (Sandbox Code Playgroud)

我想知道对齐分数,因此我使用了biopythonpairwise2函数。例如,

from Bio import pairwise2
from Bio.pairwise2 import format_alignment

alignments = pairwise2.align.globalxx(X, Y)
for a in alignments:
    print(format_alignment(*a))
Run Code Online (Sandbox Code Playgroud)

这成功地显示了 DNA 比对,但我只需要如下的分数。有没有办法只显示分数?

在此输入图像描述

我使用了biopython,但如果有更好的方法,我们将不胜感激。

python bioinformatics dna-sequence biopython pairwise

0
推荐指数
1
解决办法
2308
查看次数

比较“A”、“C”、“G”、“T”字符的最快方法

我希望提高我的生物信息学算法的速度,这需要比较“A”、“C”、“G”、“T”之一的字符(例如计算“A”==“C”)

由于字符的大小为 8 位,因此在最坏的情况下需要对二进制数进行 8 次比较。我的猜测是,通过将 'A'、'C'、'G'、'T' 表示为一对二进制数(例如,将 'A' 表示为 make_pair(false,false)),我想我可以提高速度3~4 次,因为它现在最多只需要 2 次二进制比较。

我尝试使用一对布尔值,但速度实际上下降了大约 30%。

表示四个字符和计算相等性的最快方法是什么?内存使用对我来说并不是什么大问题。

供您参考,我使用的是 C++11 编译器。先感谢您。

c++ binary performance bioinformatics char

0
推荐指数
1
解决办法
110
查看次数

如何删除r中列中的特定字符?

我有一个 ID 数据集:

VARIANT_ID
01_1254436_A_G_1
02_2254436_A_G_1 
03_3255436_A_G_1 
10_10344745_A_G_1 
11_11256437_A_G_1 
11_11343426_A_G_1 
12_12222431_A_G_1
14_14200436_A_G_1 
15_15256789_A_G_1 
Run Code Online (Sandbox Code Playgroud)

我希望仅从 ID 以 01-09 开头的行的开头字符中删除 0,但在不进一步删除列中的其他 0 的情况下,我很难做到这一点,并且只能看到其他语言的类似问题。我想要的输出是:

VARIANT_ID
1_1254436_A_G_1
2_2254436_A_G_1 
3_3255436_A_G_1 
10_10344745_A_G_1 
11_11256437_A_G_1 
11_11343426_A_G_1 
12_12222431_A_G_1
14_14200436_A_G_1 
15_15256789_A_G_1 
Run Code Online (Sandbox Code Playgroud)

仅删除了每行开头的零,如何指定这一点?我来自生物学背景,因此任何帮助将不胜感激。

输入数据:

structure(list(VARIANT_ID = c("01_1254436_A_G_1", "02_2254436_A_G_1", 
"03_3255436_A_G_1", "10_10344745_A_G_1", "11_11256437_A_G_1", 
"11_11343426_A_G_1", "12_12222431_A_G_1", "14_14200436_A_G_1", 
"15_15256789_A_G_1")), row.names = c(NA, -9L), class = c("data.table", 
"data.frame"))
Run Code Online (Sandbox Code Playgroud)

string r bioinformatics dataframe

0
推荐指数
1
解决办法
5183
查看次数

如何从 SRA 下载 BAM 文件?我有 SRA 工具包,但我很困惑

我正在尝试从 GEO/SRA 下载 BAM 格式的数据集,我可以使用它在 RStudio 中进行分析。

我尝试使用这种方法:我下载了 .sra 并将其转换为 .bam

prefetch GSM269238
sam-dump C:\Users\Desktop\sratoolkit.2.10.8-win64\bin\ncbi\SRA\sra\GSM2692389.sra --output-file GSM2692389.bam
Run Code Online (Sandbox Code Playgroud)

然而,在 RStudio 中这不起作用,并返回一个错误,说它无法读取 bam 文件这是我的 R 代码;我正在使用 RSamTools

> bamfiles <- list.files("directory redacted due to privacy", ".bam")
> file.exists(bamfiles)
[1] TRUE
> 
> 
> #---> Define bam files for count step on Rsamtools
> 
> library("Rsamtools")
> bamfiles <- BamFileList(bamfiles, yieldSize=2000000)
> seqinfo(bamfiles)
Error in value[[3L]](cond) : 
  failed to open BamFile: SAM/BAM header missing or empty
  file: 'GSM2692389.bam'
Run Code Online (Sandbox Code Playgroud)

有谁知道如何帮助我将 SRA 数据下载到可读的 .bam 文件中?任何帮助或指导将不胜感激,因为我真的很努力在截止日期前完成这件事。

r bioinformatics samtools bam

0
推荐指数
1
解决办法
6328
查看次数

只能将 str (不是“字节”)连接到 str

我正在使用cellranger mkref并面临 GTF(自定义 gtf 文件)的奇怪 python 问题:

Traceback (most recent call last):
  File "/home/user/cellranger-6.0.1/lib/python/cellranger/reference.py", line 750, in validate_gtf
    subprocess.check_output(cmd, stderr=subprocess.STDOUT)
  File "/home/user/cellranger-6.0.1/external/anaconda/lib/python3.7/subprocess.py", line 411, in check_output
    **kwargs).stdout
  File "/home/user/cellranger-6.0.1/external/anaconda/lib/python3.7/subprocess.py", line 512, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['gtf_to_gene_index', '/home/user/cellranger-6.0.1/indexes', '/home/user/cellranger-6.0.1/indexes/tmp74f_vsxg.json']' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/user/cellranger-6.0.1/bin/rna/mkref", line 139, in <module>
    main()
  File "/home/user/cellranger-6.0.1/bin/rna/mkref", line 130, in main
    reference_builder.build_gex_reference()
  File "/home/user/cellranger-6.0.1/lib/python/cellranger/reference.py", line 613, in …
Run Code Online (Sandbox Code Playgroud)

python bioinformatics

0
推荐指数
1
解决办法
821
查看次数

整数编码VCF文件的最优解

我对我的问题有一个可行的解决方案,但速度很慢。我很好奇推荐的加速方法,并想看看它能达到多快。这是一个示例输入文件

CHROM    POS REF   ALT   Geno      value                                                                                       
Chr16 616504 T     C     X93.968   0|1:7,28:35:99:0|1:616504_T_C:787,0,177:616504   
Chr16 616504 T     C     BESC.1    0/0:48,0:48:99:.:.:0,114,1710:.                  
Chr16 616504 T     C     BESC.10   1|1:0,23:23:72:1|1:616504_T_C:1059,72,0:616504   
Chr16 616504 T     C     BESC.100  0/0:34,0:34:96:.:.:0,96,1440:.                   
Chr16 616504 T     C     BESC.1001 0/0:47,0:47:99:.:.:0,120,1800:.                  
Chr16 616504 T     C     BESC.1002 0/0:39,0:39:99:.:.:0,108,948:.    

           
Run Code Online (Sandbox Code Playgroud)

目标是从value列中取出第一个和第三个字符并对它们求和,然后输出一个类似的文件,其中值列替换为该总和。前两行的示例输出:

CHROM    POS REF   ALT   Geno      value                                                                                       
Chr16 616504 T     C     X93.968   1   
Chr16 616504 T     C     BESC.1    0   
Run Code Online (Sandbox Code Playgroud)

这是我当前的解决方案,其中 STDIN 1 是输入文件名,STDIN 2 是输出文件名:

#!/bin/bash
i=0
len=$(cat $1 | wc -l)

touch $2
while …
Run Code Online (Sandbox Code Playgroud)

bash awk bioinformatics vcf-variant-call-format

0
推荐指数
1
解决办法
63
查看次数