Perl 添加一个与蛋白质结构域位置的密码子对应的新列
我有两个包含数千种蛋白质的文件:(1)文件:蛋白质ID+氨基酸序列;(2) 文件:蛋白质ID+核苷酸序列。我的第三个文件是一个关于(这些蛋白质)结构域位置的文件,这些结构域与我的氨基酸序列和核苷酸序列文件有关。我将这三个文件与以下代码关联: acids.txt文件包含:Perl 添加一个与蛋白质结构域位置的密码子对应的新列,perl,sequence,Perl,Sequence,我有两个包含数千种蛋白质的文件:(1)文件:蛋白质ID+氨基酸序列;(2) 文件:蛋白质ID+核苷酸序列。我的第三个文件是一个关于(这些蛋白质)结构域位置的文件,这些结构域与我的氨基酸序列和核苷酸序列文件有关。我将这三个文件与以下代码关联: acids.txt文件包含: Q9ULW3; 46 142 ENST0000274849 | Q9ULW3 我方认为,本协议适用于风险管理、风险管理、风险管理和风险管理等领域* nucleotides.txt文件包含: Q9ULW3; 46
Q9ULW3; 46 142
ENST0000274849 | Q9ULW3
我方认为,本协议适用于风险管理、风险管理、风险管理和风险管理等领域*
nucleotides.txt文件包含:
Q9ULW3; 46 142
ENST0000274849 | Q9ULW3
ATGGAGGCAGAGAGGATCGGAGAGAGGCAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGTACACCAAGGACTACACACCCGAGGATGGATGGATGGATCCGTGACCAGGCATGCCAAGCCGCGCTACCACACACACGCATGGGTGCCCGCGCAGGCGCAGCCCCTTCCGTTAGTGATCAGTACTTGCACCCGTTTCAGTCAGCTCCCAGCAGCCAGCTCGAGCCAGGCGCGCGCTTAGGCAGGCAGGCGCAGGCGCAGAGGCTCATTCAGTCATTCAGTCATTCAGTCATTCAGTCAGTCAGGTCAGCGCAGGCGCGCGCGCAGGCGCGCGCGCGCAGAGGCGCTCATTCATTCTCAGTCATTCATTCTCAGTCAGTCAGTCATTCTCAGTCAGTCATTCAGTCAGTCAGTCAGTCAGTCATTCGACCCTGCTCGCCCAGATGGCTCCTGGATCATTGCCAGAGCGTCTCTACTGAGCAGCGGACTG AGGCCCAGGCGCGCGGGACGTGAGAGCGAGAGAGCGGCGCGCGCGCGCGCGCGCGGCAAGAGAGAGAGAGAGGCGCGCGCGCGCGCAGATGGAGCCAGGCGCGCGCGCGCAGAGAGGCAGGCGCGCGCGCAGAGAGAGGCGCGCGCGCGCGCAGAGAGAGAGGCGCGCGCGCAGAGAGAGAGAGGCGCGCGCGCGCTCAGAGAGAGAGGCGCGCGCGCGCTGAGAGAGAGGC
domain.txt文件包含:
Q9ULW3; 46 142
注意:这些数字表示我的序列中的位置域
脚本:
use strict;
use Bio::SeqIO;
####################################################
#MODULE 1: read protein file, and save it in a hash#
####################################################
my %hash1;
my $sequence = "acid.txt";
my $multifasta = Bio::SeqIO ->new (-file => "<$sequence",-format=> "fasta");
while (my $seq= $multifasta->next_seq()) {
my $na= $seq->display_id; #Saves the ID in $na
my $ss = $seq->seq;
$hash1{$na} = $ss;
}
#############################################################
#MODULE 2: read nucleotide file, and save it in another hash#
#############################################################
my %hash2;
my $genes = "nucleotides.txt";
my $multifasta = Bio::SeqIO ->new (-file => "<$genes",-format=> "fasta");
while (my $seq= $multifasta->next_seq()) {
my $na= $seq->display_id; #Saves the ID in $na
my $des=$seq->description;
my $ss = $seq->seq;
$hash2{$na} = $ss;
}
#####################
#MODULE 3: my $name;#
#####################
my $name; # Read from standard input
chomp $name;
##############################################################################
#MODULE 4: DOMAIN ANNOTATION + RELATED AMINO ACIDS AND NUCLEOTIDES IN COLUMNS#
##############################################################################
foreach my $name (keys %hash1) {
my $ac = (split(/\s*\|/, $name))[1];
#print "$ac\n" ;
####################################################
#MODULE 4.1: DOMAIN ANNOTATION: POSITION OF DOMAINS#
####################################################
open(FILE, "<" ,"domain.txt");
my @array = (<FILE>);
my @lines = grep (/$ac/, @array);
print for @lines;
close (FILE);
############################################################
#MODULE 4.2: RELATED AMINO ACIDS AND NUCLEOTIDES IN COLUMNS#
############################################################
my @array1 = split(//, $hash1{$name}, $hash2{$name}); #CUT SEQUENCE
my @array2 = unpack("a3" x (length($hash1{$name})),$hash2{$name}); #CUT
NUCLEOTIDE SEQUENCE
my $number = "$#array1+1";
foreach (my $count = 0; $count <= $number; $count++) {
print "$count\t@array1[$count]\t@array2[$count]\n";
}
}
现在我应该添加一个新的第四列,它将包含“是”或“不是”——这取决于哪些密码子在域中-是,哪些不在域中-不是。这里是从46到142的区域。我想获取此输出文件:
Q9ULW3; 46 142
0 M ATG NOT
1 E GAG NOT
2 A GCA NOT
3 E GAG NOT
4 E GAA NOT
5 S TCG NOT
6 E GAG NOT
7 K AAG NOT
8 A GCC NOT
9 A GCA NOT
10 T ACG NOT
11 E GAG NOT
12 Q CAA NOT
13 E GAG NOT
14 P CCG NOT
15 L CTG NOT
16 E GAA NOT
17 G GGG NOT
18 T ACA NOT
19 E GAA NOT
20 Q CAG NOT
21 T ACA NOT
22 L CTA NOT
23 D GAT NOT
24 A GCG NOT
25 E GAG NOT
26 E GAG NOT
27 E GAG NOT
28 Q CAG NOT
29 E GAG NOT
30 E GAA NOT
31 S TCC NOT
32 E GAA NOT
33 E GAA NOT
34 A GCG NOT
35 A GCC NOT
36 C TGT NOT
37 G GGC NOT
38 S AGC NOT
39 K AAG NOT
40 K AAA NOT
41 R CGG NOT
42 V GTA NOT
43 V GTG NOT
44 P CCA NOT
45 G GGT NOT
46 I ATT YES
47 V GTG YES
48 Y TAC YES
49 L CTG YES
50 G GGC YES
51 H CAT YES
52 I ATC YES
53 P CCG YES
54 P CCG YES
55 R CGC YES
56 F TTC YES
57 R CGG YES
58 P CCC YES
59 L CTG YES
60 H CAC YES
61 V GTC YES
62 R CGC YES
63 N AAC YES
64 L CTT YES
65 L CTC YES
66 S AGC YES
67 A GCC YES
68 Y TAT YES
69 G GGC YES
70 E GAG YES
71 V GTC YES
72 G GGA YES
73 R CGC YES
74 V GTC YES
75 F TTC YES
76 F TTT YES
77 Q CAG YES
78 A GCT YES
79 E GAG YES
80 D GAC YES
81 R CGG YES
82 F TTC YES
83 V GTG YES
84 R AGA YES
85 R CGC YES
86 K AAG YES
87 K AAG YES
88 K AAG YES
89 A GCA YES
90 A GCA YES
91 A GCA YES
92 A GCT YES
93 A GCC YES
94 G GGA YES
95 G GGA YES
96 K AAA YES
97 K AAG YES
98 R CGG YES
99 S TCC YES
100 Y TAC YES
101 T ACC YES
102 K AAG YES
103 D GAC YES
104 Y TAC YES
105 T ACC YES
106 E GAG YES
107 G GGA YES
108 W TGG YES
109 V GTG YES
110 E GAG YES
111 F TTC YES
112 R CGT YES
113 D GAC YES
114 K AAG YES
115 R CGC YES
116 I ATA YES
117 A GCC YES
118 K AAG YES
119 R CGC YES
120 V GTG YES
121 A GCG YES
122 A GCC YES
123 S AGT YES
124 L CTA YES
125 H CAC YES
126 N AAC YES
127 T ACG YES
128 P CCT YES
129 M ATG YES
130 G GGT YES
131 A GCC YES
132 R CGC YES
133 R AGG YES
134 R CGC YES
135 S AGC YES
136 P CCC YES
137 F TTC YES
138 R CGT YES
139 Y TAT YES
140 D GAT YES
141 L CTT YES
142 W TGG YES
143 N AAC NOT
144 L CTC NOT
145 K AAG NOT
146 Y TAC NOT
147 L TTG NOT
148 H CAC NOT
149 R CGT NOT
150 F TTC NOT
151 T ACC NOT
152 W TGG NOT
153 S TCC NOT
154 H CAC NOT
155 * TGA NOT
这是一种蛋白质的例子,我必须对数千种蛋白质进行分析。请问,你有什么建议吗
谢谢大家! 交叉张贴到。我的解决方案有什么问题吗?我不知道,你的代码和我的。。。。如果我应该使用这一个或这一个:我使用了两者,但我希望load_fasta部分只是复制了您通过BioPerl已经完成的工作。