la has asked for the wisdom of the Perl Monks concerning the following question:
Hello,
I am trying to write a perl one liner that I can input a txt file into, and output the contents of that text file in fasta format.
Text file attributes: -100,000 rows (100,000 sequences) in text file -Headings of my txt file are: Sequence, Name, Count, Countb
I want the output to look like:
>Sequence1_Name_Count_Countb
Sequence1
>Sequence2_Name_Count_Countb
Sequence2
...
>Sequence100000_Name_Count_Countb
Sequence100000
The Perl one liner I have so far is:
cat file.txt | perl -ne 'chomp;@a=split(/\t/);$a[0]=~s/\s+//g;$a[1]=~s/\s+//g;$a[2]=~s/\s+//g;$a[3]=~s/\s+//g; print ">$a[0]_$a[2]_$a[1]_$a[3]\n$a[0]\n";' > fastafile.fa
THe only thing that ends up printing at all, is the first sequence in fasta format. Nothing else prints at all. Can someone help me modify my one liner so that it prints every row of the txt file in the correct format rather than just the first? Am I missing a loop??
Thank you in advance.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Printing all lines of a file using a perl one liner
by eyepopslikeamosquito (Archbishop) on Sep 28, 2011 at 22:31 UTC | |
|
Re: Printing all lines of a file using a perl one liner
by Util (Priest) on Sep 28, 2011 at 21:56 UTC | |
by la (Novice) on Sep 28, 2011 at 22:29 UTC | |
|
Re: Printing all lines of a file using a perl one liner
by Marshall (Canon) on Sep 28, 2011 at 23:03 UTC | |
by la (Novice) on Sep 29, 2011 at 17:03 UTC |