I think wc -m counts the newline characters as well. What we actually want is total_chars - newline_chars = bases.
Fasta length does not match Ensembl info
I am calculating the total genome length from a fasta file using the following code
zcat genome.fa.gz | grep -v ">" | wc | awk '{print $3-$1}'
For Yeast, I get 12,157,105, and the Ensembl info indicates exactly 12,157,105. So, that adds up.
For Human, I get 56,917,651,860, but the Ensembl info indicates 3,609,003,417.
Anyone know why? I must be missing something.
• 1,884 views
•
link
1 answer
here you are counting the number of lines.
You should try wc -m as mentionned in wc man page :
-m
displays a character count. You cannot specify this option with -c.
Thus :
zcat genome.fa.gz | grep -v ">" | wc -m
-
edit : to count only character and not newlines :
zcat genome.fa.gz | grep -v ">" | tr -d '\n' | wc -m
• 1 views
•
link
• 1 views
•
link
I edit my answer accordingly. You have to use tr -d '\n' to remove newlines
• 1 views
•
link
Log in to answer this question.
From the ftp://ftp.ensembl.org/pub/release-94/fasta/homo_sapiens/dna/README:
Ah right! Ensembl count for human is based on the primary assembly. And some organisms don't have primary assemblies, just the top-level.