Header Leaderboard Ad

Collapse

Bowtie output to BED format

Collapse

Announcement

Collapse

SEQanswers June Challenge Has Begun!

The competition has begun! We're giving away a $50 Amazon gift card to the member who answers the most questions on our site during the month. We want to encourage our community members to share their knowledge and help each other out by answering questions related to sequencing technologies, genomics, and bioinformatics. The competition is open to all members of the site, and the winner will be announced at the beginning of July. Best of luck!

For a list of the official rules, visit (https://www.seqanswers.com/forum/sit...wledge-and-win)
See more
See less
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bowtie output to BED format

    Hi - Can any one please suggest a method to convert Bowtie output to BED format? Is there a bioperl script or any software for that?

    thanks in advance.

  • #2
    Originally posted by polsum View Post
    Hi - Can any one please suggest a method to convert Bowtie output to BED format? Is there a bioperl script or any software for that?

    thanks in advance.
    Ok I just found out. Save the bowtie output in Sam format, convert it to Bam format by samtools and convert Bam to BED by Bedtools.

    Comment


    • #3
      Originally posted by polsum View Post
      Ok I just found out. Save the bowtie output in Sam format, convert it to Bam format by samtools and convert Bam to BED by Bedtools.
      hi, thanks for the question + answer and good parsing..

      Comment


      • #4
        Hi polsum,

        Do you know any Perl ? I have a perl script that will convert bowtie .map file to a .bed file, but you may have to know a little perl to work with it.

        Comment


        • #5
          bowtie to BED format

          awk 'BEGIN {FS= "\t"; OFS="\t"} {print $3, $4, $4+length($5)-1, $1,
          H=111 $H, $2}' Bowtie_output > Bowtie_output.BED


          This is a shell command, give this command in "$" prompt, it will convert your input file (Bowtie_output) file to BED format (Bowtie_output.BED)

          Last edited by arun; 12-23-2010, 01:16 AM.

          Comment


          • #6
            awk 'BEGIN {FS= "\t"; OFS="\t"} {print $3, $4, $4+length($5)-1, $1,
            H=111 $H, $2}' Bowtie_output > Bowtie_output.BED

            This is a shell command, give this command in "$" prompt, it will convert your input file (Bowtie_output) file to BED format (Bowtie_output.BED)

            Comment


            • #7
              Originally posted by arun View Post
              awk 'BEGIN {FS= "\t"; OFS="\t"} {print $3, $4, $4+length($5)-1, $1,
              H=111 $H, $2}' Bowtie_output > Bowtie_output.BED


              This is a shell command, give this command in "$" prompt, it will convert your input file (Bowtie_output) file to BED format (Bowtie_output.BED)

              Hi,

              what is H=111 $H,$2 doing in your command?

              Thanks

              Comment


              • #8
                Originally posted by ysccseqanswers View Post
                Hi,

                what is H=111 $H,$2 doing in your command?

                Thanks
                With the H=111 and $H I think arun is just setting an awk variable. I'm not sure what use it has actually in this case. The exact same result can be achieved with "...$1,111,$2}..." The 5th column in a bed file is for a score to set the level of gray for each item (http://genome.ucsc.edu/FAQ/FAQformat.html#format1).

                $2 is the 6th column - the strand the read maps to.

                If you wanted a random score for column 5 you could use this in the awk command instead:
                "...$1,int(rand()*1000),$2}..."

                Comment


                • #9
                  Code:
                  #!/usr/bin/perl
                  
                  use strict;
                  use warnings;
                  
                  # get file names from the command line
                  my ($input, $output) = @ARGV;
                  
                  # exceptions and usage
                  if (!defined $input or !defined $output) {
                      die "Usage: bedFromBowtie.pl <input> <output>\n";
                  }
                  
                  # open the input/output file
                  open my $out, ">", "$output" or die "Cannot open $output: $!\n";
                  open my $in, "<", "$input" or die "Cannot open $input: $!\n";
                  
                  while ( <$in> ) {
                      chomp;
                      my (undef, $strand, $chr, $start, $sequence) = split "\t"; # assumes standard bowtie output
                      my @sequence = split '', $sequence; # extra work, but allows for variable-length sequences
                      my $length = @sequence;
                      my $end;
                      if ($strand eq '+') {
                          $end = $start + $length - 1;
                      }
                      elsif ($strand eq '-') {
                          $end = $start;
                          $start = $end - $length + 1;
                      }
                      else {
                          die "We have a formatting problem: strand is set to $strand\n";
                      }
                      print $out "$chr\t$start\t$end\tU0\t0\t$strand\n";
                  }
                  
                  print "Done!\n";
                  
                  close $in; close $out; exit;

                  Comment


                  • #10
                    Thanks dnewkirk, could you tell us what would be the advantage to using your perl script would be over an awk command? I'm not criticizing, just wondering. I use an awk command in a shell script to convert.

                    Comment


                    • #11
                      I had posted per the original question without noticing the dates . Either or works, but it may help someone who isn't as familiar with Perl on how to convert between file formats.

                      Comment


                      • #12
                        Thanks dnewkirk

                        I always ignore the dates. A question with an answer many months after the OP is still likely to be valuable for someone out there.

                        Comment

                        Latest Articles

                        Collapse

                        ad_right_rmr

                        Collapse

                        News

                        Collapse

                        Topics Statistics Last Post
                        Started by seqadmin, Yesterday, 07:14 AM
                        0 responses
                        5 views
                        0 likes
                        Last Post seqadmin  
                        Started by seqadmin, 06-06-2023, 01:08 PM
                        0 responses
                        6 views
                        0 likes
                        Last Post seqadmin  
                        Started by seqadmin, 06-01-2023, 08:56 PM
                        0 responses
                        155 views
                        0 likes
                        Last Post seqadmin  
                        Started by seqadmin, 06-01-2023, 07:33 AM
                        0 responses
                        290 views
                        0 likes
                        Last Post seqadmin  
                        Working...
                        X