Leser: 1
|< 1 2 >| | 13 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
open (SEQUENZ, "pdaa_human.fasta")or die "Die Datei kann nicht geöffnet werden!";
my $Sequenz = ();
while ($line = <SEQUENZ>)
{
chomp($line);
if ($line =~ /^(>\w*)\|(\w+HUMAN)/)
{
if (defined $Sequence[1]) {
system ( blastall -p blastp -d uniprot_swissprot -i pdbaa_human.fasta -o seqme.blastp);
}
#neue Sequenz merken
$Sequence[0] = $2;
}
else {
$Sequence[1] .= $line; #sequenz weiter einlesen
}
}
if (defined $Sequence[1]) {
&printSeq(@Sequence);
}
close SEQUENZ;
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#####
#Defintion der Variablen
######
my %Optionen = (
'htmlAusgabe' => "C:\Perl\Ergebnis.html",
'pdbaaZiel' => "pdbaa",
'SwissprotQuelle' => "uniprotsprot_clean.fasta",
);
my $ergebnis = GetOptions(\%Optionen, 'SwissprotQuelle=s', 'pdbaa=s', 'htmlAusgabe=s');
# oeffnen der QuellenDatenbank
open (SEQUENZ, $Optionen->{'SwissprotQuelle'}) or die "Die Datei $Optionen->{'SwissprotQuelle'} kann nicht geoeffnet werden.";
# Define Variables
my $parseparameter = {
'accessionNr' => 0,
'laenge_query' => 0,
'laenge_match' => 0,
'laenge_alignment' => 0,
'seq_query' => '',
'seq_match' => '', # in %
'identität' => '', # in %
'similarity' => 0,
'e_value' => 0,
'raw_score' => 0,
'hits' => '',
'match' => '', #link zu PDB
'query' => '', }; #Link zu Swissprot
my $Sequenze = { 'anno' => '',
'sequenze' => ''}
#Schleife um nach Human Sequenzes zu selektieren
#mit Merkparametern um Übersicht zu waren und schreiben in Datei
while (<SEQUENZ>) {
$line = $_;
chomp($line);
if ($line =~ /^(>\w*)\|(\w+HUMAN)/) {
if (defined $Sequenze->{'sequenze'} &&
defined($Sequenze->{'anno'}))&& {
if (length($Sequenze->{'sequenze'}) < 150){
&printblast();
}
$Sequenze->{'anno'} = $line; # merkt sich den Identifier
$parseparameter->{'accessionNr'} = $1;
$Sequenze->{'sequenze'} = " "; #speichert
} else {
$Sequenze->{'sequenze'} .= $line; #verbindet die Sequenzen
}
}
# we still need to print the last sequenc
&printblast();
# close Input File
close SEQUENZ;
#####
#blasten
######
sub blasten {
system( "blastall -i temp.fasta -d $Optionen{'pdbaaZiel'} -p blastp -o C:\Perl\blast\Sequenze" .$parseparameter->{'acc'} .'.blastp'; ); #blastall, inputfile auswählen, ZielDB angeben, und Outputfiles angeben
&parseparameter();
};
}
#####
#sub für die Analyse der Sequenzen + herausselektieren der $parseparameter
######
sub Analyse Sequenzen {
# Anwendung BioPerl
my $Seq_in = Bio::SearchIO->new (-format => 'blast',
-file => 'C:\Perl\blast\Sequenze '.$parseparameter->{'accessionNr'} .'.blastp');
my $ergebnis = $Seq_in->next_ergebnis;
##
#Links
##
#Pdbaa
my $AccessionNrQuery = $ergebnis->query_accession;
$parseparameter->{'laenge_query'} = $ergebnis->query_length;
$parseparameter->{'match'} = "http://www.rcsb.org/pdb/explore/explore.do?structureId=" .$hit->accession;
# swissprot
$parseparameter->{'query'} = "http://www.expasy.org/uniprot/$parseparameter->{'accessionNr'}";
####
#Restliche Infos
###
my $AccessionNrHit = $ergebnis->hit_accession;
my $hit = $ergebnis->next_hit;
if (defined($hit)){
$parseparameter->{'hits'} = 'C:\Perl\blast'.$parseparameter->{'accessionNr'} .'.blastp';
$parseparameter->{'raw_score'} = $hit->raw_score;
$parseparameter->{'length_match'} = $hit->length;
my $hsp = $hit->next_hsp;
$parseparameter->{'seq_query'} = $hsp->query_string;
$parseparameter->{'seq_match'} = $hsp->hit_string;
$parseparameter->{'identitaet'}= substr($hsp->percent_identity, 0, 5);
$parseparameter->{'e_value'} = $hsp->evalue;
$parseparameter->{'laenge_alignment'} =$hsp->length('total');
}
#####
#Ausgabe in ein .fasta für die sub blasten
######
sub printblast {
open (FH, ">temp.fasta"); #open File mit FileHandler
print (FH $parseparameter->{'accessionNr'} . "\n" . $Sequenze->{'sequenze'} );
close FH;
&blasten();
}
|< 1 2 >| | 13 Einträge, 2 Seiten |