How to count the length of fasta sequences?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How to count the length of fasta sequences?
# 8  
Old 04-09-2019
Another option to try:
Code:
awk 'NR>1{print $1, length($2)}' FS='\n' RS=\> OFS='\t' file

This User Gave Thanks to Scrutinizer For This Post:
# 9  
Old 04-10-2019
If - as specified - you want the sequences in id.txt ONLY, amend scrutinizer's proposal like
Code:
awk 'FNR == NR {T[$1]; next} $1 in T {print $1, length($2)}' id.txt FS='\n' RS=\> OFS='\t' unique.fasta
seq1    6
seq2    7

This User Gave Thanks to RudiC For This Post:
# 10  
Old 04-10-2019
is it possible to print the order as same as id.txt. The command works fine, but the order has been changed. For example, id.txt file listed the headers as follows,
Code:
seq1
seq2

Where as my unique.fasta file has the sequences in the following order,
Code:
>seq2
ATGCTTA
>seq1
GCTAGT

But, the command print seq2 length first followed by seq1 as shown below.
Code:
seq2     7
seq1      6

Therefore, is it possible to keep the order as same as id.txt.

--- Post updated at 09:43 AM ---

Dear singh,
Is it possible to print the order as same as id.txt. The command works fine, but the order has been changed. For example, id.txt file listed the headers as follows,
Code:
seq1
seq2

Whereas, my unique.fasta file has the sequences in the following order,
Code:
>seq2
ATGCTTA
>seq1
GCTAGT

But, the command print seq2 length first followed by seq1 as shown below.
Code:
seq2     7
seq1    6

Therefore, is it possible to keep the order as same as id.txt.
# 11  
Old 04-10-2019
Well, yes, try
Code:
awk '
FNR == NR       {T[$1] = length($2)
                 next
                }
                {print $1, T[$1]
                }
' FS='\n' RS=\> OFS='\t' unique.fasta RS="\n" id.txt

This has been tested for exactly your setup; for larger or more complex data there may be hickups. Give it a try and report back.
This User Gave Thanks to RudiC For This Post:
# 12  
Old 04-10-2019
Hello dineshkumarsrk,

Could you please try following.
Code:
awk '
FNR==NR{
  if($0~/^>/){
    sub(/^>/,"")
    val=$0;
    next
  }
  a[val]=(a[val]?a[val] OFS:"")length($0)
  next
}
($0 in a){
  print $0,a[$0]
}
'  Input_file  id.txt

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 13  
Old 04-10-2019
Dear rudic
It works perfectly. But, it prints "0" at last column.
Though it is not a issue at all, but I am reporting the same for your reference.

--- Post updated at 11:52 AM ---

Dear Singh,
It works perfectly fine.
# 14  
Old 04-10-2019
Surprising. This is what I get from your sample data:
Code:
seq1    6
seq2    7

Please show your results...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to add specific bases at the beginning and ending of all the fasta sequences?

Hi, I have to add 7 bases of specific nucleotide at the beginning and ending of all the fasta sequences of a file. For example, I have a multi fasta file namely test.fasta as given below test.fasta >TalAA18_Xoo_CIAT_NZ_CP033194.1:_2936369-2939570:+1... (1 Reply)
Discussion started by: dineshkumarsrk
1 Replies

2. Shell Programming and Scripting

Shorten header of protein sequences in fasta file to only organism name

I have a fasta file as follows >sp|Q8WWQ8|STAB2_HUMAN Stabilin-2 OS=Homo sapiens OX=9606 GN=STAB2 PE=1 SV=3 MMLQHLVIFCLGLVVQNFCSPAETTGQARRCDRKSLLTIRTECRSCALNLGVKCPDGYTM ITSGSVGVRDCRYTFEVRTYSLSLPGCRHICRKDYLQPRCCPGRWGPDCIECPGGAGSPC NGRGSCAEGMEGNGTCSCQEGFGGTACETCADDNLFGPSCSSVCNCVHGVCNSGLDGDGT... (3 Replies)
Discussion started by: jerrild
3 Replies

3. Shell Programming and Scripting

Outputting sequences based on length with sed

I have this file: >ID1 AA >ID2 TTTTTT >ID-3 AAAAAAAAA >ID4 TTTTTTGGAGATCAGTAGCAGATGACAG-GGGGG-TGCACCCC Add I am trying to use this script to output sequences longer than 15 characters: sed -r '/^>/N;{/^.{,15}$/d}' The desire output would be this: >ID4... (8 Replies)
Discussion started by: Xterra
8 Replies

4. Shell Programming and Scripting

Getting unique sequences from multiple fasta file

Hi, I have a fasta file with multiple sequences. How can i get only unique sequences from the file. For example my_file.fasta >seq1 TCTCAAAGAAAGCTGTGCTGCATACTGTACAAAACTTTGTCTGGAGAGATGGAGAATCTCATTGACTTTACAGGTGTGGACGGTCTTCAGAGATGGCTCAAGCTAACATTCCCTGACACACCTATAGGGAAAGAGCTAAC >seq2... (3 Replies)
Discussion started by: Ibk
3 Replies

5. UNIX for Dummies Questions & Answers

Select distinct sequences from fasta file and list

Hi How can I extract sequences from a fasta file with respect a certain criteria? The beginning of my file (containing in total more than 1000 sequences) looks like this: >H8V34IS02I59VP SDACNDLTIALLQIAREVRVCNPTFSFRWHPQVKDEVMRECFDCIRQGLG YPSMRNDPILIANCMNWHGHPLEEARQWVHQACMSPCPSTKHGFQPFRMA... (6 Replies)
Discussion started by: Marion MPI
6 Replies

6. Shell Programming and Scripting

Shorten header of protein sequences in fasta file

I have a fasta file as follows >sp|O15090|FABP4_HUMAN Fatty acid-binding protein, adipocyte OS=Homo sapiens GN=FABP4 PE=1 SV=3 MCDAFVGTWKLVSSENFDDYMKEVGVGFATRKVAGMAKPNMIISVNGDVITIKSESTFKN TEISFILGQEFDEVTADDRKVKSTITLDGGVLVHVQKWDGKSTTIKRKREDDKLVVECVM KGVTSTRVYERA >sp|L18484|AP2A2_RAT AP-2... (3 Replies)
Discussion started by: alexypaul
3 Replies

7. Shell Programming and Scripting

Count and search by sequence in multiple fasta file

Hello, I have 10 fasta files with sequenced reads information with read sizes from 15 - 35 . I have combined the reads and collapsed in to unique reads and filtered for sizes 18 - 26 bp long unique reads. Now i wanted to count each unique read appearance in all the fasta files and make a table... (5 Replies)
Discussion started by: empyrean
5 Replies

8. Shell Programming and Scripting

Extract sequences from a FASTA file based on another file

I have two files. File1 is shown below. >153L:B|PDBID|CHAIN|SEQUENCE RTDCYGNVNRIDTTGASCKTAKPEGLSYCGVSASKKIAERDLQAMDRYKTIIKKVGEKLCVEPAVIAGIISRESHAGKVL KNGWGDRGNGFGLMQVDKRSHKPQGTWNGEVHITQGTTILINFIKTIQKKFPSWTKDQQLKGGISAYNAGAGNVRSYARM DIGTTHDDYANDVVARAQYYKQHGY >16VP:A|PDBID|CHAIN|SEQUENCE... (7 Replies)
Discussion started by: nelsonfrans
7 Replies

9. Shell Programming and Scripting

Shell script for changing the accession number of DNA sequences in a FASTA file

Hi, I am having a file of dna sequences in fasta format which look like this: >admin_1_45 atatagcaga >admin_1_46 atatagcagaatatatat with many such thousands of sequences in a single file. I want to the replace the accession Id "admin_1_45" similarly in following sequences to... (5 Replies)
Discussion started by: margarita
5 Replies

10. Shell Programming and Scripting

Extract length wise sequences from fastq file

I have a fastq file from small RNA sequencing with sequence lengths between 15 - 30. I wanted to filter sequence lengths between 21-25 and write to another fastq file. how can i do that? (4 Replies)
Discussion started by: empyrean
4 Replies
Login or Register to Ask a Question