I tried bedtools getfasta and I get the errors that chromosome was not found in fasta file but I have triple checked it there is no blank space the chromosome name in bed file is exactly the same as in fasta file. I would like to know is there any alternatives other than using bedtools getfasta in order to extract the sequence.
2 answers
You might try the faidx command from https://github.com/mdshw5/pyfaidx. There is a --default-seq parameter that allows filling in nonexistent sequence, as well as a --lazy parameter that disables bounds checking. You can pass a bed file using --bed.
Use a command like this:
twoBitToFa http://hgdownload.cse.ucsc.edu/gbdb/hg19/hg19.2bit -bed=input.bed test.fa
or for a single region:
twoBitToFa http://hgdownload.cse.ucsc.edu/gbdb/hg19/hg19.2bit test.fa -seq=chr21 -start=1 -end=10000
Requires the UCSC tool twoBitToFa, available from http://hgdownload.cse.ucsc.edu/admin/exe/
If you're not on the hg19 genome, you have to index your .fa file first with faToTwoBit
Log in to answer this question.
samtools faidx extracts subsequence from indexed reference sequences (http://samtools.sourceforge.net/samtools.shtml)
Also use search feature to look for similar posts on this forum.
I tried. But can't solve it.
Solved well. Thanks.
There is one problem in this tool. The result is not accurate. The sequence extracted is not the same as in bed file coordinates
It's more likely that you made an error than that samtools faidx did...
This is a part of the output I get from samtools faidx:
You appear to have used a heavily mistyped command (e.g., chN, also the ranges are non-sensical). Post the exact command that you used and mention where you got the genome.