1 つのデータ セットを取り、そのデータの各値を別のデータ セットで減算しようとしています。
例えば:
Data set one (1, 2, 3)
Data set two (1, 2, 3, 4, 5)
だから私はそのようなものを手に入れるべき(1 - (1 .. 5))
です(2 - (1..5))
。
私は現在持っています:
#!/usr/bin/perl
use strict;
use warnings;
my $inputfile = $ARGV[0];
open( INPUTFILE, "<", $inputfile ) or die $!;
my @array = <INPUTFILE>;
my $protein = 'PROT';
my $chain = 'P';
my $protein_coords;
for ( my $line = 0; $line <= $#array; ++$line ) {
if ( $array[$line] =~ m/\s+$protein\s+/ ) {
chomp $array[$line];
my @splitline = ( split /\s+/, $array[$line] );
my %coordinates = (
x => $splitline[5],
y => $splitline[6],
z => $splitline[7],
);
push @{ $protein_coords->[0] }, \%coordinates;
}
}
print "$protein_coords->[0]->[0]->{'z'} \n";
my $lipid1 = 'MEM1';
my $lipid2 = 'MEM2';
my $lipid_coords;
for ( my $line = 0; $line <= $#array; ++$line ) {
if ( $array[$line] =~ m/\s+$lipid1\s+/ || $array[$line] =~ m/\s+$lipid2\s+/ ) {
chomp $array[$line];
my @splitline = ( split /\s+/, $array[$line] );
my %coordinates = (
x => $splitline[5],
y => $splitline[6],
z => $splitline[7],
);
push @{ $lipid_coords->[1] }, \%coordinates;
}
}
print "$lipid_coords->[1]->[0]->{'z'} \n";
$protein_coords->[0]->[$ticker]->{'z'}
のすべての値から の各値を差し引いたものを取得しようとしています$lipid_coords->[1]->[$ticker]->{'z'}
。
(z2-z1)^2
私の全体的な目的は、方程式を見つけることd = sqrt((x2-x1)^2+(y2-y1)^2-(z2-z1)^2)
です。これが一度できれば、XとYもできると思います。技術的には、同じ PDB 内のすべての脂質原子に対して PDB ファイル内のすべての原子間の距離を見つけ、5A 未満の距離の ResID を出力しようとしています。