Question: Want to edit bioperl script for making .ptt files (for each contig) from .gbk files.
0
gravatar for Bioinfo_learner
10 months ago by
Bioinfo_learner20 wrote:

Hello. I am currently doing pangenome analysis of multiple genome strains simultaneously.I am using PGAP-X pipeline. For this purpose, I have to convert .gbk files into .ptt file.My questions are: 1) Is there any on click tool or Python code to convert the .gbk files into .ptt files? 2) From Biostars website, I have found a Bioperl script for the conversion, However since I am a newbie in script writing; I am unable to understand the errors present in the script. I have tried running it on Padre The Perl and it shows error in line 3 (BOLD) 3) I don't know where and how to take my saved .gbk file as an input to get the desired output. Do I have to take one file at a a time?

#!/usr/bin/env perl
use strict;
**use Bio::SeqIO;**
my $gbk = Bio::SeqIO->new(-fh=>\*STDIN, -format=>'genbank');
my $seq = $gbk->next_seq;
my @cds = grep { $_->primary_tag eq 'CDS' } $seq->get_SeqFeatures;

print $seq->description, " - 0..",$seq->length,"\r\n";
print scalar(@cds)," proteins\r\n";
print join("\t", qw(Location Strand Length PID Gene Synonym Code COG 
Product)),"\r\n";

for my $f (@cds) {
   my $gi = '-';
   $gi = $1 if tag($f, 'db_xref') =~ m/\bGI:(\d+)\b/;
   my $cog = '-';
   $cog = $1 if tag($f, 'product') =~ m/^(COG\S+)/;
   my @col = (
     $f->start.'..'.$f->end,
     $f->strand >= 0 ? '+' : '-',
     ($f->length/3)-1,
     $gi,
     tag($f, 'gene'),
     tag($f, 'locus_tag'),
     $cog,
     tag($f, 'product'),
   );
   print join("\t", @col), "\r\n";
}

sub tag {
   my($f, $tag) = @_;
   return '-' unless $f->has_tag($tag);
   return join(' ', $f->get_tag_values($tag));
}`
ADD COMMENTlink modified 9 months ago by genomax91k • written 10 months ago by Bioinfo_learner20
1

Does Padre show any error message? In any case you should use #!/usr/bin/env perl instead of !/usr/bin/env perl. And error with use Bio::SeqIO could be because this module is not installed. You can install it by opening CPAN client from start menu and running these commands:

get Bio::SeqIO
make Bio::SeqIO
test Bio::SeqIO
install Bio::SeqIO

You may also try Unix & Perl Primer book which is suited for beginners in programming.

ADD REPLYlink written 10 months ago by zubenel110
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1006 users visited in the last hour