Unconfigured Ad

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Giorgio C
    Member
    • Oct 2010
    • 89

    #1

    Add count numbers to headers in a fasta file

    Hi all,

    I have a fasta file with the same header for each sequence, I would like to add natural numbers at the end of each line:

    >OakDna
    ACTCTAAATCAGTGCGAG...
    >OakDna
    AAAAACCCTTTACACTTT...
    >OakDna
    CTCTAAACCTTTAACCTT..
    etc.

    I want something like this:

    >OakDna_1
    ACTCTAAATCAGTGCGAG...
    >OakDna_2
    AAAAACCCTTTACACTTT...
    >OakDna_3
    CTCTAAACCTTTAACCTT..
    etc.
    >OakDna_n
    ACTCATCCAAAACTTTTT..

    Where n is the last number of the sequence in the file.

    Any quick suggestion?

    Thanks in advance,
    Giorgio
  • Heisman
    Senior Member
    • Dec 2010
    • 534

    #2
    Google is your friend in situations like these:

    http://www.linuxquestions.org/questi...f-line-803625/

    Comment

    • Giorgio C
      Member
      • Oct 2010
      • 89

      #3
      I tried to google it, but couldn't find what I was looking for. Btw the link you posted seems to be good...THANKS a lot!

      Comment

      • gsgs
        Senior Member
        • Oct 2009
        • 139

        #4
        I'd just write a simple program to do it

        5 min ?

        Comment

        • wieni
          Junior Member
          • Jun 2012
          • 6

          #5
          Here a quick and dirty solution in python - was still missing :-)


          #!/usr/bin/env python

          import re
          import string
          import sys


          infile = open(sys.argv[1])
          data = infile.readlines()
          infile.close()

          outfile = open(sys.argv[2], "w")
          c = 1
          l = 1
          for i in data:
          i = re.sub("\n|\r", "", i)
          if c%2 != 0:
          outfile.write(i+"_" +str(l) +"\n")
          l+=1
          else:
          outfile.write(i +"\n")
          c += 1
          outfile.close()


          save the upper code in a file called for example "numberFasta.py"
          on a terminal call the program with: python numberFasta.py <yourInfile> <outfilename>

          Comment

          • wieni
            Junior Member
            • Jun 2012
            • 6

            #6
            ah..and correct the indention - was lost here...

            Comment

            • Heisman
              Senior Member
              • Dec 2010
              • 534

              #7
              Originally posted by wieni View Post
              Here a quick and dirty solution in python - was still missing :-)


              #!/usr/bin/env python

              import re
              import string
              import sys


              infile = open(sys.argv[1])
              data = infile.readlines()
              infile.close()

              outfile = open(sys.argv[2], "w")
              c = 1
              l = 1
              for i in data:
              i = re.sub("\n|\r", "", i)
              if c%2 != 0:
              outfile.write(i+"_" +str(l) +"\n")
              l+=1
              else:
              outfile.write(i +"\n")
              c += 1
              outfile.close()


              save the upper code in a file called for example "numberFasta.py"
              on a terminal call the program with: python numberFasta.py <yourInfile> <outfilename>
              You can use the "code" tags to make this work (surround the code with [code ] and [/code ] (but no spaces):

              Code:
              #!/usr/bin/env python
              
              import re
              import string
              import sys
              
              
              infile = open(sys.argv[1])
              data = infile.readlines()
              infile.close()
              
              outfile = open(sys.argv[2], "w")
              c = 1
              l = 1
              for i in data:
                  i = re.sub("\n|\r", "", i)
                  if c%2 != 0:
                      outfile.write(i+"_" +str(l) +"\n")
                      l+=1
                  else:
                      outfile.write(i +"\n")
                  c += 1
              outfile.close()

              Comment

              • syfo
                Just a member
                • Nov 2012
                • 103

                #8
                A short one:

                Code:
                awk '/^>/{$0=$0"_"(++i)}1' infile

                Comment

                Latest Articles

                Collapse

                • SEQadmin2
                  Multiomic Liquid Biopsy: What DNA/RNA Panels Reveal That DNA Alone Can’t
                  by SEQadmin2



                  Tumors contain complex mixtures of cell populations that evolve in response to treatment and host-specific factors. Tissue biopsies provide only static snapshots of a tumor’s state. But what if we could follow that evolution over time using a minimally invasive technique?

                  Liquid biopsies can detect tumor-derived material circulating in the bloodstream, providing a way to study treatment response, detect emerging resistance, and discover new biomarkers. Circulating
                  ...
                  10-14-2026, 09:55 AM
                • SEQadmin2
                  New Genomics Technologies Take Aim at Long-Standing Limits
                  by SEQadmin2


                  Researchers using sequencing and genomics tools often have to make trade-offs. They can choose between speed or scale, short reads or long-range information, or targeted panels or a view of the whole transcriptome. New technologies that have been released this year are built to address those tough choices.

                  We asked six companies the same four questions to learn about their latest products. The new technologies bring a lot to the table, including rethinking sequencing
                  ...
                  09-28-2026, 10:25 AM

                ad_right_rmr

                Collapse

                News

                Collapse

                Topics Statistics Last Post
                Started by SEQadmin2, 10-22-2026, 11:13 AM
                0 responses
                30 views
                0 reactions
                Last Post SEQadmin2  
                Started by SEQadmin2, 10-22-2026, 10:48 AM
                0 responses
                22 views
                0 reactions
                Last Post SEQadmin2  
                Started by SEQadmin2, 10-15-2026, 10:52 AM
                0 responses
                39 views
                0 reactions
                Last Post SEQadmin2  
                Started by SEQadmin2, 10-14-2026, 05:39 AM
                0 responses
                45 views
                0 reactions
                Last Post SEQadmin2  
                Working...