Unconfigured Ad

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • garethboy
    Member
    • Feb 2012
    • 19

    problem with adding numerical sequence at the end of line

    Hi,

    Anyone has any idea how to get this:

    >no_name
    TATGCATCGATGCACATATGCTAGTGCGCTAGTGTCGAGGCTAGCTACG
    >no_name
    GACGTACGTAGCATGCATGCATGCGTAGCTGTAGCTAGC
    >no_name
    GCTAGCTAGGTAGGTCATGTAGTAGGTGCACTGAGCTAGCTAGCTAGCTAGCAGC
    >no_name
    GCTAGCATGCTAGCTAGCTAGCACTAGCTAGCTAGCTAGCTAATGCATCATC
    >no_name
    GCTACGTAGCATGCTAGCGGATCATGCATGCATGCTAGCATCGATGCTAGCATGCAT

    become this:

    >no_name_1
    TATGCATCGATGCACATATGCTAGTGCGCTAGTGTCGAGGCTAGCTACG
    >no_name_2
    GACGTACGTAGCATGCATGCATGCGTAGCTGTAGCTAGC
    >no_name_3
    GCTAGCTAGGTAGGTCATGTAGTAGGTGCACTGAGCTAGCTAGCTAGCTAGCAGC
    >no_name_4
    GCTAGCATGCTAGCTAGCTAGCACTAGCTAGCTAGCTAGCTAATGCATCATC
    >no_name_5
    GCTACGTAGCATGCTAGCGGATCATGCATGCATGCTAGCATCGATGCTAGCATGCAT
  • atcghelix
    Member
    • Jul 2013
    • 74

    #2
    Here's one way using Perl. Save the text in a file named numbers.pl (or whatever). Usage would be:

    perl numbers.pl --in file_to_change.fasta --out revised_file.fasta


    Code:
    #!/usr/bin/perl
    
    use strict;
    use warnings;
    use Getopt::Long;
    
    my $inFile;
    my $outFile;
    
    GetOptions  ("in=s"      => \$inFile,
                 "out=s"      => \$outFile);
    
    if (!$inFile or !$outFile) {
        die "Must supply both infile and outfile as command line arguments.\n";
    }
    
    open(my $inFH, "<", $inFile) or die "couldn't open infile for reading.\n";
    if (-e $outFile) {
        die "Output file $outFile already exists--aborting so you don't overwrite.\n";
    }
    open(my $outFH, ">", $outFile) or die "couldn't open outfile for writing.\n";
        
    my $counter = 1;
    while (my $line = <$inFH>) {
        chomp $line;
        if ($line =~ /^(>.*)/) {
            print $outFH $1 . "_$counter\n";
            $counter++;
        } else {
            print $outFH "$line\n";
        }
    }
    Last edited by atcghelix; 09-26-2013, 09:57 PM. Reason: Edited to move $counter++ so that you didn't just get odd-numbered sequences

    Comment

    • Jeremy
      Senior Member
      • Nov 2009
      • 190

      #3
      Heres another way: R

      Code:
      library(seqinr)
      read.fasta("fastafile.fa")->fa
      write.fasta(fa,names=paste(getName(fa),1:5,sep="_"),file.out="fa_new_name.fa")
      where you swap '1:5' with '1:n', n being the number of sequences you have.

      Comment

      • garethboy
        Member
        • Feb 2012
        • 19

        #4
        Anyone know how to use AWK to do this task?

        Comment

        • garethboy
          Member
          • Feb 2012
          • 19

          #5
          Thanks. I am pretty weak in Perl. Do you have any idea using AWK to do this?

          Comment

          • atcghelix
            Member
            • Jul 2013
            • 74

            #6
            What version of Awk are you running/what operating system?

            Comment

            • garethboy
              Member
              • Feb 2012
              • 19

              #7
              Running is UNIX

              Comment

              • atcghelix
                Member
                • Jul 2013
                • 74

                #8
                This work? (It assumes all sequence strings are on a single line)

                Code:
                awk '{if($0 ~ /^>/){print $0"_"(NR+1)/2}else{print $0}}' input.fasta > changed.fasta
                Last edited by atcghelix; 09-26-2013, 11:33 PM. Reason: Less confusing regex

                Comment

                • Kennels
                  Senior Member
                  • Feb 2011
                  • 149

                  #9
                  try this

                  Code:
                  paste - - < input.fa | awk ' { print $1"_"NR"\n"$2 } ' > output.fa
                  make sure to have spaces between the hyphens for 'paste'

                  Comment

                  • garethboy
                    Member
                    • Feb 2012
                    • 19

                    #10
                    Thank you everybody. I have done my task. =)

                    Comment

                    Latest Articles

                    Collapse

                    • GATTACAT
                      Reply to Nine Things a Sample Prep Scientist Thinks About Before Sequencing
                      by GATTACAT
                      Love this - good data definitely starts from good input, and poor input can only give relatively poor data. I particularly like the mention of Nanodrop/absorbance based methods for quantification. It's such a toss up if you'll get an accurate reading or what amounts to a randomly generated number, and a lot of library/sequencing related issues can be traced back to poor quant.
                      07-01-2026, 11:43 AM
                    • SEQadmin2
                      Nine Things a Sample Prep Scientist Thinks About Before Sequencing
                      by SEQadmin2


                      I’m not a sequencing expert. I’m a purification scientist who uses NGS to evaluate workflows my group develops. With this perspective, we think about the sample first and the NGS workflow second. The sequencer is an exceptionally honest reporter, but it can only report on what you give it, so whether you get clean, interpretable data from an NGS workflow is largely determined before you begin.

                      Here are nine questions we think about, in roughly the order they matter, before...
                      06-18-2026, 07:11 AM

                    ad_right_rmr

                    Collapse

                    News

                    Collapse

                    Topics Statistics Last Post
                    Started by SEQadmin2, 07-02-2026, 11:08 AM
                    0 responses
                    12 views
                    0 reactions
                    Last Post SEQadmin2  
                    Started by SEQadmin2, 06-30-2026, 05:37 AM
                    0 responses
                    14 views
                    0 reactions
                    Last Post SEQadmin2  
                    Started by SEQadmin2, 06-26-2026, 11:10 AM
                    0 responses
                    20 views
                    0 reactions
                    Last Post SEQadmin2  
                    Started by SEQadmin2, 06-17-2026, 06:09 AM
                    0 responses
                    54 views
                    0 reactions
                    Last Post SEQadmin2  
                    Working...