http://www.perlmonks.org?node_id=798789


in reply to Re^2: how to compare column 1 to column 2 and vice versa from multiple rows.
in thread how to compare column 1 to column 2 and vice versa from multiple rows.

It is not too late to insert <code> tags into your original post. You are able to update it any time.

As I understand you just want to output unique names of genes instead of raw rows. Than try this

#!/usr/bin/perl -lan # Usage: thisscript.pl genes.txt if ( $seen{ join ' ', sort @F }++ ) { $uniq{$F[0]}++; $uniq{$F[1]}++; } END { print for keys %uniq; }

And this:

Linux version: perl -lane '@u{@F}=() if $s{join "", sort @F}++ }{ print for keys %u' +genes.txt Windows version: perl -lane "@u{@F}=() if $s{join '', sort @F}++ }{ print for keys %u" +genes.txt

Where genes.txt is a file containing gene rows

Feel free to ask if you need explanations on the algorithm and it's implementation.