Read split.pl: Difference between revisions

From RAJ INFO
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
Line 19: Line 19:
   
   
# Variables
# Variables
my $path       = "/home/raj/bio/user/raja";
my $file = "set9"; # change this for each file
my $multifasta = "$path/set_1.txt";
my $path = "/home/raj/bio/user/raja";
my $file1      = "reads_0bp.txt";
my $multifasta = "$path/data/$file.txt";
my $file2      = "reads_1-80bp.txt";
my $file1      = "$file.reads_0bp.txt";
my $file3      = "reads_80+bp.txt";
my $file2      = "$file.reads_1-80bp.txt";
my $statfile  = "stat.txt";
my $file3      = "$file.reads_80+bp.txt";
my $idfile    = "id_size.txt";
my $statfile  = "$file.stat.txt";
my $idfile    = "$file.id_size.txt";
   
   
# Getting the grip of files
# Getting the grip of files
Line 32: Line 33:
if (-e "$file3") {`rm  $file3`;}
if (-e "$file3") {`rm  $file3`;}
  if (-e "$idfile") {`rm  $idfile`;}
  if (-e "$idfile") {`rm  $idfile`;}
 
# Let's Hack
# Let's Hack
my $in  = Bio::SeqIO->new(-file => "$multifasta", -format => 'Fasta');
my $in  = Bio::SeqIO->new(-file => "$multifasta", -format => 'Fasta');
Line 40: Line 41:
   $sequence = $seq->seq;
   $sequence = $seq->seq;
   
   
 
my $count_seq = length($sequence);
my $count_seq = length($sequence);
my $fasta = ">".$identifier."_Size:".$count_seq."bp\n".$sequence."\n";
my $fasta = ">".$identifier."_Size:".$count_seq."bp\n".$sequence."\n";
Line 49: Line 50:
print FH $fasta ;
print FH $fasta ;
close FH ;
close FH ;
 
open (FH, ">>".$idfile);
open (FH, ">>".$idfile);
print FH $id_size ;
print FH $id_size ;
close FH ;
close FH ;
}
}
   
   
Line 60: Line 61:
print FH $fasta ;
print FH $fasta ;
close FH ;
close FH ;
 
open (FH, ">>".$idfile);
open (FH, ">>".$idfile);
print FH $id_size ;
print FH $id_size ;
Line 70: Line 71:
print FH $fasta ;
print FH $fasta ;
close FH ;
close FH ;
 
 
open (FH, ">>".$idfile);
open (FH, ">>".$idfile);
print FH $id_size ;
print FH $id_size ;

Latest revision as of 16:37, 8 April 2010

#! /usr/bin/perl -w
# *************************************************************
# This Programme does the following in sequence
# -> Parses a multi fasta
# -> Count characters and splits as (1) 0 (2) <=80 (3) >80
# -> Capture the results in files in 3 catogories
# -> Generates the statistics
# -> Generates Tab delimited file with ID and size
# Author : Rajkumar (itc@rajkumar.in)
# Release: MAR 2010
# *************************************************************
 
# Libraries
	use strict;
	use Bio::Perl;
	use Bio::SeqIO;
 
# Variables
	my $file = "set9"; # change this for each file	
	my $path = "/home/raj/bio/user/raja";
	my $multifasta = "$path/data/$file.txt";
	my $file1      = "$file.reads_0bp.txt";
	my $file2      = "$file.reads_1-80bp.txt";
	my $file3      = "$file.reads_80+bp.txt";
	my $statfile   = "$file.stat.txt";
	my $idfile     = "$file.id_size.txt";
 
# Getting the grip of files
 	if (-e "$file1") {`rm  $file1`;}
	if (-e "$file2") {`rm  $file2`;}
	if (-e "$file3") {`rm  $file3`;}
 	if (-e "$idfile") {`rm  $idfile`;}
 
# Let's Hack
	my $in  = Bio::SeqIO->new(-file => "$multifasta", -format => 'Fasta');
	my ($identifier, $sequence) = $_;
 	while ( my $seq = $in->next_seq() ) {
		$identifier = $seq->id;
  		$sequence = $seq->seq;
 
 
		my $count_seq = length($sequence);
		my $fasta = ">".$identifier."_Size:".$count_seq."bp\n".$sequence."\n";
		my $id_size = "$identifier\t$count_seq\n";
 
		if ($count_seq eq 0){ 
			open (FH, ">>".$file1);
			print FH $fasta ;
			close FH ;
 
			open (FH, ">>".$idfile);
			print FH $id_size ;
			close FH ;
 
		}
 
		if ( $count_seq < 81 && $count_seq > 0){ 
			open (FH, ">>".$file2);
			print FH $fasta ;
			close FH ;
 
			open (FH, ">>".$idfile);
			print FH $id_size ;
			close FH ;
		}
 
		if ( $count_seq > 80){ 
			open (FH, ">>".$file3);
			print FH $fasta ;
			close FH ;
 
 
			open (FH, ">>".$idfile);
			print FH $id_size ;
			close FH ;
		}		
	}
# statistics
	my $stat1 = `grep -c ">" $file1`; chomp $stat1;
	my $stat2 = `grep -c ">" $file2`; chomp $stat2;
	my $stat3 = `grep -c ">" $file3`; chomp $stat3;		
 
 
	my $stat = "Statistics\n==========\n$file1    $stat1 sequences\n$file2 $stat2 sequences\n$file3  $stat3 sequences\n";
	open (FH, ">".$statfile);
	print FH $stat ;
	close FH ;		
 
# END