NAME

BioUtil::Seq - Utilities for operation on data or file

VERSION

Version 2014.0814

EXPORT

get_file_list

extract_parameters_from_string
get_parameters_from_file

get_list_from_file
get_column_data

read_json_file
write_json_file

SYNOPSIS

use BioUtil::Util;

SUBROUTINES/METHODS

get_file_list

Find files/directories with custom filter, max serach depth could be specified.

Example (searching perl scripts)

my $dir   = "~";
my $depth = 2;

my $list = get_file_list(
    $dir,
    sub {
        if ( -d or /^\./i ) {  # ignore configuration file and folders
            return 0;
        }
        if (/\.pm/i or /\.pl/i) {
            return 1;
        }
        return 0;
    },
    $depth
);
print "$_\n" for @$list;

extract_parameters_from_string

Extract parameters from string.

The regular expression is

/([\w\d\_\-\.]+)\s*=\s*([^\=;]*)[\s;]*/

Example:

# bad format, but could also be parsed
# my $s = " s = b; a=test; b_c=12 3; a.b =; b
# = asdf
# sd; ads-f = 12313";

# recommended
my $s = "key1=abcde; key2=123; conf.a=file; conf.b=12; ";

my $pa = extract_parameters_from_string($s);
print "=$_:$$p{$_}=\n" for sort keys %$pa;

get_parameters_from_file

Get parameters from a file. Comments start with # are allowed in file.

Example:

my $pa = get_parameters_from_file("d.txt");
print "$_: $$pa{$_}\n" for sort keys %$pa;

For a file with content:

# cell phone 
apple = 1 # note

nokia = 2 #

output is:

apple: 1
nokia: 2

get_list_from_file

Get list from a file. Comments start with # are allowed in file.

Example:

my $list = get_list_from_file("d.txt");
print "$_\n" for @$list;

For a file with content:

# cell phone 
apple # note

nokia

output is:

apple
nokia

get_column_data

Get one column of a file.

Example:

my $list = get_column_data("d.txt", 2);
print "$_\n" for @$list;

read_json_file

Read json file and decode it into a hash ref.

Example:

my $hashref = read_json_file($file);

write_json_file

Write a hash ref into a file.

Example:

my $hashref = { "a" => 1, "b" => 2 };
write_json_file($hashref, $file);