Bio-ViennaNGS
view release on metacpan or search on metacpan
lib/Bio/ViennaNGS/UCSC.pm view on Meta::CPAN
my $visibility = "full";
my $priority = "1500";
my $color = "38,140,210";
my $track_string = make_bigwig_track($tag, $track, $bigDataUrl, $shortLabel, $longLabel, $type, $autoScale, $visibility, $priority, $color);
$bigwigtracks .= $track_string;
}
}
chdir $currentDirectory or croak $!;
return $bigwigtracks;
}
sub retrieve_color{
my $counter = shift;
my $digitnumber = length($counter);
my $colorcode;
if($digitnumber>1){
$colorcode = $counter % 10;
}else{
$colorcode = $counter;
}
my @color;
#green
$color[0] = "133,154,0 133,154,0";
#cyan
$color[1] = "42,162,152 42,162,152";
#blue
$color[2] = "38,140,210 38,140,210";
#violet
$color[3] = "108,114,196 108,114,196";
#magenta
$color[4] = "211,55,130 211,55,130";
#red
$color[5] = "220,51,47 220,51,47";
#orange
$color[6] = "203,76,22 203,76,22";
#yellow
$color[7] = "181,138,0 181,138,0";
#black
$color[8] = "0,44,54 0,44,54";
#grey
$color[9] = "88,111,117 88,111,117";
return $color[$colorcode];
}
sub make_group{
my ($name, $label, $priority, $defaultIsClosed) = @_;
my $group ="name $name\nlabel $label\npriority $priority\ndefaultIsClosed $defaultIsClosed\n";
return $group;
}
sub make_track{
my ($tag, $track, $bigDataUrl, $shortLabel, $longLabel, $type, $autoScale, $bedNameLabel, $searchIndex, $colorByStrand, $visibility, $group, $priority) = @_;
my $trackEntry ="#$tag\ntrack $track\nbigDataUrl $bigDataUrl\nshortLabel $shortLabel\nlongLabel $longLabel\ntype $type\nautoScale $autoScale\nbedNameLabel $bedNameLabel\nsearchIndex $searchIndex\ncolorByStrand $colorByStrand\nvisibility $visibility...
return $trackEntry;
}
sub make_multi_bigwig_container_track{
my ($tag, $track, $shortLabel, $longLabel, $type, $autoScale, $visibility, $priority) = @_;
my $trackEntry ="#$tag\ntrack $track\ncontainer multiWig\nnoInherit on\nshortLabel $shortLabel\nlongLabel $longLabel\ntype $type\nconfigureable on\nvisibility $visibility\naggregate transparentOverlay\nshowSubtrackColorOnUi on\nautoScale $autoScale...
return $trackEntry;
}
sub make_bigwig_container_track{
my ($track, $bigDataUrl, $shortLabel, $longLabel, $type, $parent, $color) = @_;
my $trackEntry = "track $track\nbigDataUrl $bigDataUrl\nshortLabel $shortLabel\nlongLabel $longLabel\ntype $type\nparent $parent\ncolor $color\n\n";
return $trackEntry;
}
sub make_bigwig_track{
my ($tag, $track, $bigDataUrl, $shortLabel, $longLabel, $type, $autoScale, $visibility, $priority, $color) = @_;
my $trackEntry ="#$tag\ntrack $track\nbigDataUrl $bigDataUrl\nshortLabel $shortLabel\nlongLabel $longLabel\ntype $type\nvisibility $visibility\nautoScale $autoScale\npriority $priority\nalwaysZero on\nyLineMark 0\nyLineOnOff on\nmaxHeightPixels 125...
return $trackEntry;
}
sub valid_ncbi_accession{
# receives a NCBI accession ID, with or without version number
# checks for validity and returns the accession number as is
my $acc = shift;
if ($acc =~ /^(N[CSTZ]\_[A-Z]*\d{6})\.\d+?$/){
return $acc;
}
elsif ($acc =~ /^(N[CSTZ]\_[A-Z]*\d{6})$/){
return $1;
}
else {
return 0;
}
}
sub parse_fasta_header{
my $filepath = shift;
my $this_function = (caller(0))[3];
open my $file, '<', "$filepath" or die $!;
my $fastaheader = <$file>;
chomp $fastaheader;
close $file;
my @ids = ();
#>gi|556503834|ref|NC_000913.3| Escherichia coli str. K-12 substr. MG1655
if($fastaheader=~/^>gi/){
my @headerfields = split(/\|/, $fastaheader);
my $accession = $headerfields[3];
my $scientificName = $headerfields[4];
push(@ids,$accession);
push(@ids,$scientificName);
return \@ids;
}else{
$fastaheader=~s/^>//;
carp "INFO [$this_function] It looks like your input Fasta header does not contain a valid NCBI accession number. Continuing with:\n $fastaheader\n"
unless ( valid_ncbi_accession($fastaheader) );
push(@ids,$fastaheader);
push(@ids,"scientific name not set");
return \@ids;
}
}
sub write_chromosome_size_file{
my $filepath = shift;
my $chromosome_name = shift;
my $chromosome_size = shift;
( run in 1.138 second using v1.01-cache-2.11-cpan-5a3173703d6 )