Как рассчитать массу атомов из нескольких файлов формата XYZ?
У меня есть несколько файлов XYZ, в которых содержится более 2000 лекарств, и я хочу подсчитать массу атомов для каждого лекарства. Как я могу это сделать?
1 ответ
Вопрос прост и поэтому для ответа используйте команду Perl "map". Плакат имеет 2000 файлов, каждый из которых содержит химическую формулу. Вот скелеты, вам нужно будет существенно изменить, чтобы цифры оставались четкими, чтобы их можно было сложить вместе. Я надеюсь, что вы поняли, это довольно легко.
Обратите внимание, что следующее не является жизнеспособным сценарием, я просто бросил несколько вещей вместе. Пожалуйста, не копируйте вставку - я исправлю это в ближайшее время, у меня есть крайний срок прямо сейчас. Извинения -
my $files = load_files ()
my $compound;
foreach my $f (@$files){
open (FH, $f);
while (<FH>){
$compound .= $_;
}
my $mm = map {
s/(.\d?\d?)/$comps{$1}||'?'/eg; $_
} $compound
sub load_files {
my ($input) = @_;
opendir ("IN", "$$input");
my @rf = grep{/\.out/} readdir(IN);
closedir IN;
return \@rf;
}
my %comps = (
'C' => '12', 'H' => '1', etc...)