I have exon ranges, for example:
Chr_exon start - exon end
1_3774167-1_3774281
1_3775281-1_3775430
1_3782281-1_3782564
1_3784537-1_3784617
1_3786168-1_3786339
1_3789035-1_3789136
1_3800070-1_3800305
And also, I have, Coverage values for all positions,for example,
chr_position coverage value
1_3774167 175.6
1_3774168 175.6
1_3774169 175.6
1_3774170 175.6
1_3774171 175.6
1_3774172 175.6
1_3774173 175.6
1_3774174 175.6
Is it possible to aggregate them exon wise? For example, query by exon range (start-end), and find mean for all values in that exon/ range using unix functions or maybe python ? Thanks a lot in advance. I am a beginner, and sorry if question is stupid.
1 answer
For starting, you may want to get these into standardised formats:
cat file1.txt
1_3774167-1_3774281
1_3775281-1_3775430
1_3782281-1_3782564
1_3784537-1_3784617
1_3786168-1_3786339
1_3789035-1_3789136
1_3800070-1_3800305
sed 's/[_\\-]/\t/g' file1.txt | cut -f1,2,4 > file1.bed
cat file1.bed
1 3774167 3774281
1 3775281 3775430
1 3782281 3782564
1 3784537 3784617
1 3786168 3786339
1 3789035 3789136
1 3800070 3800305
cat file2.txt
1_3774167 175.6
1_3774168 175.6
1_3774169 175.6
1_3774170 175.6
1_3774171 175.6
1_3774172 175.6
1_3774173 175.6
1_3774174 175.6
sed 's/[_\\ ]/\t/g' file2.txt | awk '{print $1"\t"$2"\t"$2"\t"$3}' > file2.bed
cat file2.bed
1 3774167 3774167 175.6
1 3774168 3774168 175.6
1 3774169 3774169 175.6
1 3774170 3774170 175.6
1 3774171 3774171 175.6
1 3774172 3774172 175.6
1 3774173 3774173 175.6
1 3774174 3774174 175.6
After that, you may find a solution via BEDTools or via GenomicRanges in R. You will have to se rules about ho to summarise coverage per exon.
Kevin
Log in to answer this question.
Since I am a bioinformatician from 90s, I would write a script in R that would do it for me! It could be 20 lines of code. But I am sure there are tools for that.
Thank you for your response. I am not that familiar with R, but will try to code it then in Python.