Unconfigured Ad

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ETHANol
    Senior Member
    • Feb 2010
    • 308

    #1

    Reads mapping of ends of chromosomes

    First, does anybody have a script that will trim reads that map off the ends of chromosomes in SAM files?

    Second, in case anyone needs a perl script that will 'take care' of reads that map off the ends of chromosomes in BED files I wrote one. Seems like it works. Maybe trivial to some but not bad for a salty old bench scientist. I think it works but I am no scripting expert. If anyone has reason to believe otherwise I'd like to know.

    Code:
    #/usr/bin/perl
    use strict; use warnings;
    
    #bedEndRepair.pl by Ethan Ford.  Use at own risk!!!!!
    
    
    #bedEndRepair.pl:  Takes reads that map off the end of chromosomes in a bed file and repositions them as a two nucleotide read at
    #					end of the chromosome.
    
    #Usage: 1) make a fasta index file with samtools with the following command: 'samtools faidx <ref.fasta>' or
    #			make a 2 column tab deliminted text file. The first column contains the chromosome name written as it is in column 1 of your bed file, e.g. chr1,
    #			and the second column has the length of the corresponding chromosome (and integer)
    
    #		2) type: "perl bedEndRepair.pl path/to/your/indexfile.fai path/to/your/bedfile.bed" into the command line.
    #		3) Output is saved in your current working dirctory with the name yourbedfile.repaired.bed
    
    my $outfile = $ARGV[1];
    $outfile =~ s/\.bed$/\.repaired.bed/;
    open(BEDOUT, ">$outfile") or die("Failed to open output file");
    
    open(INDEXFILE, $ARGV[0]) or die "Failed to open bed file";
    open(BEDFILE, $ARGV[1]) or die "Failed to open index file";
    
    
    # turns indexfile.fai into a hash
    my %indexhash;
    
    while (<INDEXFILE>) {	
    	chomp;
    	my ($indexchr, $indexlength) = split("\t", $_);
    	$indexhash{$indexchr} = $indexlength;
    };
    
    while (<BEDFILE>) {
    	chomp;
    	(my ($chr), my ($start), my ($stop), my ($c4), my ($c5), my ($strand)) = split("\t");
    		
    	if ($start < 1) 
    			{print BEDOUT $chr, "\t", '1', "\t", '2', "\t", $c4, "\t", $c5, "\t", $strand, "\n";}
    			
    	elsif ($stop > $indexhash{"$chr"})
    			{print BEDOUT $chr, "\t", $indexhash{"$chr"}-1, "\t", $indexhash{"$chr"}, "\t", $c4, "\t", $c5, "\t", $strand, "\n";}
    						
    	else
    			{print BEDOUT $chr, "\t", $start, "\t", $stop, "\t", $c4, "\t", $c5, "\t", $strand, "\n";}
    							
    						
    };	
    	
    close (BEDFILE); close (INDEXFILE); close (BEDOUT);
    exit;
    --------------
    Ethan

Latest Articles

Collapse

  • SEQadmin2
    16S/ITS Profiling vs. Shotgun Metagenomics: What Changes in Your Workflow?
    by SEQadmin2




    NGS has revolutionized clinical microbiology by offering new ways to identify and surveil pathogens without prior knowledge of the target. One popular approach is 16S rRNA and ITS amplicon sequencing, which targets specific microbial markers. But studies are increasingly incorporating shotgun metagenomics, a technique that sequences all DNA from a sample without targeting specific microbial markers. This approach allows more detailed taxonomic classification, detection...
    10-30-2026, 06:46 AM
  • 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

ad_right_rmr

Collapse

News

Collapse

Topics Statistics Last Post
Started by SEQadmin2, 10-28-2026, 09:57 AM
0 responses
45 views
0 reactions
Last Post SEQadmin2  
Started by SEQadmin2, 10-28-2026, 09:51 AM
0 responses
26 views
0 reactions
Last Post SEQadmin2  
Started by SEQadmin2, 10-22-2026, 11:13 AM
0 responses
74 views
0 reactions
Last Post SEQadmin2  
Started by SEQadmin2, 10-22-2026, 10:48 AM
0 responses
48 views
0 reactions
Last Post SEQadmin2  
Working...