If I have specific SNP chromsome locations, what applications can I use to look up if this location is a "gene", "promoter of a gene", "enhancer of a gene", etc, and if it IS any of those, to tell me which gene it is associated with?
I know about GENCODE and ENSEMBL, but I'm look for a more seamless, automatic conversion of BED file information (input) and annotation of genomic "type" and gene association (if there is one) as the outputs.
I'm new to the field so name dropping and tool suggestions are appreciated! If there is an R package that does this, that would be AMAZING.
Thanks for your insights!
1 answer
You can use BEDOPS bedmap to identify SNPs that map to various sets of genomic annotations.
For instance, to get gene annotations, you might start with human GENCODE genes:
$ wget -qO- ftp://ftp.sanger.ac.uk/pub/gencode/Gencode_human/release_21/gencode.v21.annotation.gff3.gz \
| gunzip --stdout - \
| awk '$3 == "gene"' \
| convert2bed -i gff - \
> genes.bed
Once you have genes.bed and your SNPs in another sorted BED file (say, snps.bed), you can do BEDOPS map operations on them:
$ bedmap --echo --echo-map-id-uniq --delim '\t' genes.bed snps.bed > snps_over_genes.bed
Say we define proximal promoters as a region 1kb upstream of the gene. We can process the file genes.bed per-strand with awk and generate promoter regions:
$ awk '{ \
if ($6=="+") { \
print $1"\t"($2 - 1000)"\t"$2"\t"$4"\t"$5"\t"$6; \
} \
else { \
print $1"\t"$3"\t"($3 + 1000)"\t"$4"\t"$5"\t"$6; \
} \
}' genes.bed \
> promoters.bed
Then we map SNP IDs to promoters with bedmap:
$ bedmap --echo --echo-map-id-uniq --delim '\t' promoters.bed snps.bed > snps_over_promoters.bed
And so on, for other annotation or feature categories of interest.
Log in to answer this question.