my file is
Sequence Aspect Lbr|31_V2.3640 P Lbr|31_V2.3640 P Lbr|31_V2.3640 F Lbr|31_V2.3640 F Lbr|31_V2.3640 F Lbr|31_V2.3640 C Lbr|31_V2.3640 C Lbr|31_V2.3640 C Lbr|20_V2.3410 P Lbr|20_V2.3410 P Lbr|20_V2.3410 F Lbr|20_V2.3410 F Lbr|20_V2.3410 C Lbr|20_V2.3410 C Lbr|20_V2.3340 P Lbr|20_V2.3340 P Lbr|21_V2.2020 P Lbr|21_V2.2020 F Lbr|21_V2.2020 C Lbr|21_V2.2020 C Lbr|21_V2.2020 C Lbr|32_V2.1550 P Lbr|32_V2.1550 P Lbr|32_V2.1550 F Lbr|32_V2.1550 F Lbr|25_V2.0180 P Lbr|25_V2.0180 P Lbr|25_V2.0180 P Lbr|25_V2.0180 P Lbr|25_V2.0180 P Lbr|25_V2.0180 F Lbr|25_V2.0180 F Lbr|25_V2.0180 F Lbr|25_V2.0180 F Lbr|25_V2.0180 C Lbr|29_V2.0590 Pand a want to take only seq and her combinations ex if that seq exist only ( C,P or F) send to file (C, P or F)
if are two send to ( CP ,CF, FP ) send to files corresponding and ifa the seq are three (CPF)send to a one file.
why i did wrong?
#!/usr/bin/perl use strict; use warnings; my @codigo; my @letra; my %dados; open(FILE,"/data/users/msilva/Lbr_Sprot_argot_Result/outpot_de_teste.txt") || die; #abrir o arquiovo while (<FILE>) { @codigo = split("\t",$_); #splitar o conteudo # "\t" tab->separacao @letra = split("\t",$_); $dados{$codigo[0]}{$letra[1]}++; #pegar o primeiro indice do hash -> tem que dar um valor #print $codigo[0] . "\n"; } close(FILE); foreach my $codigo (keys %dados) { #print "$codigo\n"; foreach my $letra (keys %{$dados{$codigo}}) { #print "$letra $dados{$codigo}{$letra}\n"; if ($dados{$codigo}{$letra} = 'P') { print "$codigo\n" } } }
Give a man a one-liner and he will do bioinformatics for a day.
Teach a man to correct his code, and he will do bioinformatics for life.
:-)
What is the best resource to learn advanced AWK ??