Announcement

Collapse
No announcement yet.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

  • #2
    Google is your friend in situations like these:

    Comment


    • #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


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

        5 min ?

        Comment


        • #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


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

            Comment


            • #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


              • #8
                A short one:

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

                Comment

                Latest Articles

                Collapse

                • seqadmin
                  Advanced Tools Transforming the Field of Cytogenomics
                  by seqadmin


                  At the intersection of cytogenetics and genomics lies the exciting field of cytogenomics. It focuses on studying chromosomes at a molecular scale, involving techniques that analyze either the whole genome or particular DNA sequences to examine variations in structure and behavior at the chromosomal or subchromosomal level. By integrating cytogenetic techniques with genomic analysis, researchers can effectively investigate chromosomal abnormalities related to diseases, particularly...
                  09-26-2023, 06:26 AM
                • seqadmin
                  How RNA-Seq is Transforming Cancer Studies
                  by seqadmin



                  Cancer research has been transformed through numerous molecular techniques, with RNA sequencing (RNA-seq) playing a crucial role in understanding the complexity of the disease. Maša Ivin, Ph.D., Scientific Writer at Lexogen, and Yvonne Goepel Ph.D., Product Manager at Lexogen, remarked that “The high-throughput nature of RNA-seq allows for rapid profiling and deep exploration of the transcriptome.” They emphasized its indispensable role in cancer research, aiding in biomarker...
                  09-07-2023, 11:15 PM

                ad_right_rmr

                Collapse

                News

                Collapse

                Topics Statistics Last Post
                Started by seqadmin, 09-29-2023, 09:38 AM
                0 responses
                10 views
                0 likes
                Last Post seqadmin  
                Started by seqadmin, 09-27-2023, 06:57 AM
                0 responses
                13 views
                0 likes
                Last Post seqadmin  
                Started by seqadmin, 09-26-2023, 07:53 AM
                0 responses
                30 views
                0 likes
                Last Post seqadmin  
                Started by seqadmin, 09-25-2023, 07:42 AM
                0 responses
                18 views
                0 likes
                Last Post seqadmin  
                Working...
                X