-
Notifications
You must be signed in to change notification settings - Fork 182
/
change_gene.pl
executable file
·58 lines (47 loc) · 1.79 KB
/
change_gene.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/perl
use strict;
use Bio::LiveSeq::IO::BioPerl;
use Bio::LiveSeq::Mutator;
use Bio::LiveSeq::Mutation;
use Bio::Variation::IO;
if ($#ARGV < 1) { # one argument input
print <<USAGE;
LiveSeq::Mutator example by Joseph Insana
Arguments: filename containing embl entry, gene_name
It will create that Bio::LiveSeq::Gene and print out some
basic informations about it.
It will then issue mutations and print results
Usage: change_gene.pl filename genename
Example: change_gene.pl ../../t/data/ar.embl AR
USAGE
exit;
} else {
my $filename=$ARGV[0];
my $loader=Bio::LiveSeq::IO::BioPerl->load(-file => "$filename");
my $gene_name=$ARGV[1];
my $gene=$loader->gene2liveseq(-gene_name => $gene_name,
-getswissprotinfo => 0);
print STDERR "Gene: ",$gene->name,"\n";
print STDERR " Moltype: ", $gene->get_DNA->alphabet, "\n";
print STDERR " Features:\n";
print STDERR $gene->printfeaturesnum();
print STDERR " Gene has boundaries ",$gene->upbound," - ",$gene->downbound,"\n";
print STDERR " Gene has maxtranscript with start ",$gene->maxtranscript->start,
" end ",$gene->maxtranscript->end," strand ",$gene->maxtranscript->strand,"\n";
print STDERR " DNA has boundaries ",$gene->get_DNA->start," - ",$gene->get_DNA->end,"\n";
print STDERR "\n";
print STDERR "Now issuing mutations to the gene....\n";
my $mutation = new Bio::LiveSeq::Mutation (-seq =>'A',
-pos => 64
);
my $mutate = Bio::LiveSeq::Mutator->new(-gene => $gene,
-numbering => "coding"
);
$mutate->add_Mutation($mutation);
my $results=$mutate->change_gene();
print "\n";
if ($results) {
my $out = Bio::Variation::IO->new( '-format' => 'flat');
$out->write($results);
}
}