【发布时间】:2014-11-04 19:40:45
【问题描述】:
我正在处理显示为间隔(制表符分隔文件)的生物数据(拷贝数变化):
文件 1
Columns: Chromosome, Start, End, Annotation
1 1 10 A
1 3 12 B
1 7 15 C
1 20 30 D
1 35 45 E
1 37 45 F
1 50 60 G
1 50 65 H
我将它们相交是为了巩固重叠的事件(50%的重叠是我的条件),结果是这样的:
我使用了 Bedtools 的 intersectBed (http://bedtools.readthedocs.org/en/latest/content/tools/intersect.html):
$ intersectBed -a File1 -b File1 -loj -f 0.50 -r > File 2
文件 2
Columns: Chromosome, Start, End, Annotation , Chromosome, Start, End, Annotation
1 1 10 A 1 1 10 A
1 1 10 A 1 3 12 B
1 3 12 B 1 1 10 A
1 3 12 B 1 3 12 B
1 3 12 B 1 7 15 C
1 7 15 C 1 3 12 B
1 7 15 C 1 7 15 C
1 20 30 D 1 20 30 D
1 35 45 E 1 35 45 E
1 35 45 E 1 37 45 F
1 37 45 F 1 35 45 E
1 37 45 F 1 37 45 F
1 50 60 G 1 50 60 G
1 50 60 G 1 50 65 H
1 50 65 H 1 50 60 G
1 50 65 H 1 50 65 H
事件A和事件C与事件B重叠,事件E和F像G和H一样相互重叠,最后事件D没有重叠伙伴。知道了这一点,合并后的 CNV 列表应该是:
文件 3
1 1 15 A,B,C
1 20 30 D
1 35 45 E,F
1 50 65 G,H
我试图使用 HDCNV java 软件 (http://daleylab.org/lab/?page_id=125) 的合并选项,但输出不是我需要的。我正在尝试编写 perl 代码,但我是初学者,所以目前这个问题超出了我的极限。
如果您能帮助我提供一个不错的 perl 或 awk 代码,它将文件 2 作为输入并输出文件 3,我将不胜感激。
提前致谢
【问题讨论】:
-
是否需要进行第二步(生成文件2)?看来您可以直接从文件 1 中获得文件 3 中的结果。此外,字母是否按字母顺序分配给排序的数据集 - 即第 2 列中的数字将始终排序?第一列有什么意义吗?
-
@ialarmedalien:我想你可以,但他使用的工具似乎做了一些额外的事情(例如,请注意
A和C不会重叠,因为设置他的工具:我不知道它是否还有其他作用)。 -
是的,我同意@Amadan。查看第一个文件,
A、B和C不重叠。 -
我假设这些列的意思是 ??、开始、结束、标识符。如果是这样,A、B 和 C 将重叠 - A 是 1-10,B 是 3-12,C 是 7-15。因此,A、B、C 覆盖的整个区域是 1-15。哦,我确实喜欢神秘的、难以解释的数据集!
-
@ialarmedalien
:)。这将使它们不重叠。查看E和F和E从35开始并以45和F结束,从37到45使其成为E的子集。与G和H相同。我想我今晚刚刚失眠了。
标签: perl awk intervals bioinformatics