convert PWM to IUPAC/consensus
1
0
Entering edit mode
8.7 years ago
John ▴ 10

Hi,

I installed rsat in my working environment. I have thousands of PWM results I got after running an application. The PWM looks like this:

A | 0.3247 | 0.4065 | 0.9253 | 0.1905 | 1.0000 | 0.2675 | 0.0741 | 0.5867 | 0.3564 | 0.0981 | 0.0000 | 1.0000 |
C | 0.6381 | 0.0416 | 0.0000 | 0.0000 | 0.0000 | 0.2910 | 0.7501 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0000 |
G | 0.0000 | 0.4572 | 0.0747 | 0.7103 | 0.0000 | 0.0962 | 0.0949 | 0.0000 | 0.6436 | 0.0000 | 1.0000 | 0.0000 |
T | 0.0373 | 0.0948 | 0.0000 | 0.0992 | 0.0000 | 0.3454 | 0.0809 | 0.4133 | 0.0000 | 0.9019 | 0.0000 | 0.0000 |

I removed the pipeline characters in between and tried to use convert-matrix command from rsat with no luck.

Any advice please?

Thanks,
J.

rsat • 2.4k views
ADD COMMENT
3
Entering edit mode
8.7 years ago
pld 5.1k

You should post the error from the RSAT command that failed, but I'm guessing it is because the matrix isn't in tab format.

When I replace the pipes (actually " | ", note the spaces) with tabs, and delete the trailing " |", the RSAT online convert matrix tool works.

For example, you want to change

A | 0.5 | 0.5 |
.
.
T | 0.5 | 0.5 |

To

A\t0.5\t0.5
.
.
T\t0.5\t0.5

This command should work, assuming each PWM is in a separate file, just change "mat.txt" to the name of your file:

sed "s/ | /@/g" mat.txt | sed "s/ |//g" | tr "@" "\t"

You can automate for all of your PWMs with xargs or GNU parallel.

Here's an example script:

#!/bin/bash
matlist=$1

while read mat
do
    sed "s/ | /@/g" $mat | sed "s/ |//g" | tr "@" "\t" > ${mat/%.*/.tabmat}
done < $matlist

Get each matrix file in a list, maybe "matlist.txt" and run the script. It will reformat the matrix and save the reformatted PWM to a file with a new suffix called ".tabmat".

ADD COMMENT
0
Entering edit mode

Perfect! Thank you so much.

ADD REPLY

Login before adding your answer.

Traffic: 1365 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