How to create a bed file from a fasta containing all regions with clusters of >= 50 Ns and flanking 1kb regions
1
0
Entering edit mode
4.7 years ago
Rubal ▴ 350

From a genome fasta file I would like create a bed file containing the start and end coordinates of all runs of >= 50 Ns, such as this:

ATGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAAATCC

and 1kb of flanking sequence on either side. So for example if there were 100 consecutive Ns at position:

Chr1 1050 1150

Then the output region in the bed would be

Chr1 50 2150

Because it would contain the 100 Ns and the 1kb flanks on either side. I'd like to output a list of all such regions in the genome.

Could anyone suggest an approach or software for this? I've seen a few packages for identiying strings of sequence in the genome such as WordCluster, but suspect there might be an existing tool specifically for this task as I imagine it's quite a common filtering approach.

Thanks in advance for any suggestions!

genome filtering bed fasta • 1.9k views
ADD COMMENT
2
Entering edit mode
4.7 years ago
ATpoint 85k

Seqkit locate together with bedtools can do that:

First you extract the coordinates, then merge overlaps and eventually extend both coordiantes (start/end) by 1000bp:

./seqkit locate -F --only-positive-strand --bed -m 0 -p NNNNN(add more N here) test.fa \
| bedtools merge -i - \
| bedtools slop -b 1000 -g chromSizes.txt > N50.bed

I tested this on a small fasta, not sure how it scales for an entire genome.

ADD COMMENT
0
Entering edit mode

brilliant I will give this a try

ADD REPLY
0
Entering edit mode

The version of seqkit I am using has no -F flag for locate, was this a typo or am I using the wrong version? I just downloaded the latest version from thttps://bioinf.shenwei.me/seqkit/download/

ADD REPLY
0
Entering edit mode

Strange, I also downloaded the last one. Then just leave it out, it is about an index that promises to be faster, not exactly sure what it actually does to be honest :-D

ADD REPLY
0
Entering edit mode

haha ok thanks for the quick response!

ADD REPLY

Login before adding your answer.

Traffic: 2957 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6