Я хочу напечатать последовательность Ribose Puckering.Я хочу сортировать данные из pdb-файла в perl или python
сценария в Perl:
open (filehandler, "List_NAD_ID.txt") or die $!; #Input file
my @file1=<filehandler>;
my $OutputDir = 'C:\Users\result'; #output directory path
foreach my $line (@file1)
{
chomp $line;
open (fh,"$line") or die $!;
open (out, ">$OutputDir/$line.pdb") or die $!;
print out "\n" , "$line ";
print out "\n";
while($file = <fh>)
{
if($file =~/^HETATM.{7}(?:C4B|O4B|C1B|C2B|O4B|C1B|C2B|C3B|C1B|C2B|C3B|C4B|C2B|C3B|C4B|O4B|C3B|C4B|O4B|C1B)/)
{
print out "$file";
}
}
print "Completed", "\n";
}
У меня есть PDB входной файл:
HETATM 3934 C4B NAD A 255 10.495 -11.444 1.016 1.00 50.46 C
HETATM 3935 O4B NAD A 255 10.768 -11.615 2.448 1.00 48.17 O
HETATM 3936 C3B NAD A 255 10.445 -12.867 0.431 1.00 49.69 C
HETATM 3938 C2B NAD A 255 10.431 -13.759 1.675 1.00 48.46 C
HETATM 3940 C1B NAD A 255 11.323 -12.898 2.593 1.00 46.97 C
HETATM 3978 C4B NAD B 256 14.596 1.733 33.219 1.00 50.48 C
HETATM 3979 O4B NAD B 256 14.370 0.578 32.357 1.00 48.22 O
HETATM 3980 C3B NAD B 256 14.940 1.177 34.603 1.00 49.64 C
HETATM 3982 C2B NAD B 256 14.987 -0.347 34.401 1.00 48.48 C
HETATM 3984 C1B NAD B 256 14.066 -0.517 33.189 1.00 46.98 C
Ожидаемый результат:
Я хочу, чтобы скопировать следующий атом, а затем вставьте согласно следующей последовательности. Все должно быть целым. (Сеть "А, В, С, ..........")
HETATM 3934 **C4B** NAD **A** 255 10.495 -11.444 1.016 1.00 50.46 C
HETATM 3935 **O4B** NAD **A** 255 10.768 -11.615 2.448 1.00 48.17 O
HETATM 3938 **C2B** NAD **A** 255 10.431 -13.759 1.675 1.00 48.46 C
HETATM 3940 **C1B** NAD **A** 255 11.323 -12.898 2.593 1.00 46.97 C
HETATM 3935 **O4B** NAD **A** 255 10.768 -11.615 2.448 1.00 48.17 O
HETATM 3940 **C1B** NAD **A** 255 11.323 -12.898 2.593 1.00 46.97 C
HETATM 3938 **C2B** NAD **A** 255 10.431 -13.759 1.675 1.00 48.46 C
HETATM 3936 **C3B** NAD **A** 255 10.445 -12.867 0.431 1.00 49.69 C
.
.
.
У меня пять уровня последовательности пасты, v0, v1, v2, v3, v4.
Последовательность:
C4B-O4B-C1B-C2B
O4B-C1B-C2B-C3B
C1B-C2B-C3B-C4B
C2B-C3B-C4B-O4B
C3B-C4B-O4B-C1B
Это все последовательности, я хочу, чтобы распечатать данные в соответствии с приведенной выше последовательности. Я также отредактировал ожидаемый результат.
Я хочу сортировать данные в соответствии с вышеприведенной последовательностью, chain wise. Я не ожидаю результата. Я пробовал в perl. Я новичок в Perl и Python ... так что, пожалуйста, попытайтесь решить мою проблему
Его, как матричная задача:
, например, у нас есть пять значений: 1,2,3,4,5
Row 1 - 1 2 3 4
Row 2 - 2 3 4 5
Row 3 - 3 4 5 1
Row 4 - 4 5 1 2
Я хочу напечатать данные, подобные этим для каждой цепочки. Цепь от A до Z.
Не могли бы вы описать, как вы хотели бы, чтобы отсортировать данные? Правила не ясны из примера. – choroba
@ Choroba, я хочу скопировать все необходимые ATOM и затем распечатать только (C4B, O4B, C1B, C2B, C3B) в соответствии с последовательностью. – krish
Я не понимаю. Почему строка 3 идет до строки 4, когда C1B предшествует C2b в строке последовательности 1? Или вы сортируете по столбцу 2? Но тогда почему строка 7 не предшествует строке 6? – choroba