$tmp_dir = Maasha::Biopieces::get_tmpdir();
$default = $ENV{ 'BP_DATA' };
-$formats = 'fasta,blast,vmatch,phastcons';
+$formats = 'fasta,blast,vmatch,bowtie,phastcons';
$options = Maasha::Biopieces::parse_options(
[
Maasha::Filesys::dir_create_if_not_exists( "$dir/genomes" );
Maasha::Filesys::dir_create_if_not_exists( "$dir/genomes/$genome" );
-if ( grep { $_ =~ /fasta|blast|vmatch/i } @{ $options->{ "formats" } } )
+if ( grep { $_ =~ /fasta|blast|vmatch|bowtie/i } @{ $options->{ "formats" } } )
{
if ( -f "$dir/genomes/$genome/fasta/$genome.fna" )
{
{
if ( $format =~ /^fasta$/i ) { Maasha::Fasta::fasta_index( "$fasta_dir/$genome.fna", "$dir/genomes/$genome/fasta/$genome.index" ) }
elsif ( $format =~ /^blast$/i ) { Maasha::NCBI::blast_index( "$genome.fna", $fasta_dir, "$dir/genomes/$genome/blast", "dna", $genome ) }
- elsif ( $format =~ /^blat$/i ) { print STDERR "BLAT FORMAT NOT IMPLEMENTED" }
+ elsif ( $format =~ /^blat$/i ) { warn "BLAT FORMAT NOT IMPLEMENTED" }
elsif ( $format =~ /^vmatch$/i ) { Maasha::Match::vmatch_index( "$genome.fna", $fasta_dir, "$dir/genomes/$genome/vmatch", $tmp_dir ) }
+ elsif ( $format =~ /^bowtie$/i ) { bowtie_index( "$fasta_dir/$genome.fna", "$dir/genomes/$genome/bowtie", $genome, $option->{ 'verbose' } ) }
elsif ( $format =~ /^phastcons$/i ) { Maasha::UCSC::phastcons_index( "$genome.pp", $phastcons_dir ) }
}
Maasha::Biopieces::close_stream( $out );
+# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> SUBROUTINES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+
+sub bowtie_index
+{
+ # Martin A. Hansen, July 2009.
+
+ # Create a bowtie index for fast sequence mapping.
+
+ my ( $src_file, # filename of source file
+ $dst_dir, # destination dir to store index
+ $base_name, # base name of index
+ $verbose, # verbose flag
+ ) = @_;
+
+ Maasha::Filesys::dir_create_if_not_exists( $dst_dir );
+
+ if ( $verbose ) {
+ Maasha::Common::run( "bowtie-build", "$src_file $dst_dir/$base_name" );
+ } else {
+ Maasha::Common::run( "bowtie-build", "$src_file $dst_dir/$base_name > /dev/null 2>&1" );
+ }
+}
+
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<