如何根据片段长度对床文件进行子集化?
How to subset bed files based on the fragment length?
我正在处理床文件,我想对特定大小范围内的行进行子集化。我只对“chromEnd - chromStart”在 140-160 范围内的行感兴趣。
例如,对于下面的床文件,我想对第二行和第五行(10229-10082 = 147
和 65133-64976 = 157
)进行子集化:
chr1 10061 10229 A00327:118:HNV2VDMXX:1:1316:4779:23265 12 +
chr1 10082 10229 A00327:118:HNV2VDMXX:1:2488:28519:18662 30 +
chr1 49486 49880 A00327:118:HNV2VDMXX:1:2412:2564:16517 12 +
chr1 54472 54800 A00327:118:HNV2VDMXX:1:1304:1633:32095 30 +
chr1 64976 65133 A00327:118:HNV2VDMXX:1:1488:3739:12038 30 +
chr1 75240 75547 A00327:118:HNV2VDMXX:1:2370:12102:12524 30 +
chr1 106775 107146 A00327:118:HNV2VDMXX:1:1324:32696:22169 31 +
是否有任何可能的方法来对这些行进行子集化?
很多方法,但我真的很喜欢awk:
awk '{ s=- } s >= 140 && s <= 160 { print }' input.bed > output.bed
我正在处理床文件,我想对特定大小范围内的行进行子集化。我只对“chromEnd - chromStart”在 140-160 范围内的行感兴趣。
例如,对于下面的床文件,我想对第二行和第五行(10229-10082 = 147
和 65133-64976 = 157
)进行子集化:
chr1 10061 10229 A00327:118:HNV2VDMXX:1:1316:4779:23265 12 +
chr1 10082 10229 A00327:118:HNV2VDMXX:1:2488:28519:18662 30 +
chr1 49486 49880 A00327:118:HNV2VDMXX:1:2412:2564:16517 12 +
chr1 54472 54800 A00327:118:HNV2VDMXX:1:1304:1633:32095 30 +
chr1 64976 65133 A00327:118:HNV2VDMXX:1:1488:3739:12038 30 +
chr1 75240 75547 A00327:118:HNV2VDMXX:1:2370:12102:12524 30 +
chr1 106775 107146 A00327:118:HNV2VDMXX:1:1324:32696:22169 31 +
是否有任何可能的方法来对这些行进行子集化?
很多方法,但我真的很喜欢awk:
awk '{ s=- } s >= 140 && s <= 160 { print }' input.bed > output.bed