Biojava: HET аминокислоты

Чтение структуры pdb 2a65 Я сталкиваюсь со случаем аминокислотного остатка, который следует считать "лигандом белка", а не "частью белка".

В файле PDB, а также в файлах cif этот остаток LEU.601 помечен как HET, к сожалению, имея имя LEU, кажется, что Biojava помечает его автоматически как ATOM. Кто-нибудь знает способ провести различие между "белковой цепью А" и лигандом "LEU.601"?

Образец 2a65.pdb:

HETATM 4149  N   LEU A 601      24.537  32.416  18.866  1.00 15.26           N
HETATM 4150  CA  LEU A 601      25.812  31.696  18.815  1.00 16.66           C
HETATM 4151  C   LEU A 601      25.693  30.381  18.046  1.00 16.48           C
...

Фрагмент моего кода биожавы:

Group g=s.findGroup("A", "601");
System.out.println(g);
System.out.println(g.getType());

g=s.findGroup("A", "701");
System.out.println(g);
System.out.println(g.getType());

И что он генерирует:

AminoAcid ATOM:LEU L 601 true ATOM atoms: 9
amino
Hetatom 701 BOG true atoms: 20
hetatm

1 ответ

В biojava 4, это обрабатывается через группы seqres и группы атомов. Группы, которые являются частью лиганда, вообще не будут в секрециях. Это фрагмент, который демонстрирует, как пройти через них:

import org.biojava.nbio.structure.Chain;
import org.biojava.nbio.structure.Group;
import org.biojava.nbio.structure.Structure;
import org.biojava.nbio.structure.StructureIO;

public class StackruIssue {

    public static void main(String[] args) throws Exception {

        Structure s = StructureIO.getStructure("2a65");         

        Chain c = s.getChainByPDB("A");

        for (Group gr : c.getSeqResGroups()) {
            System.out.println(gr.getResidueNumber()+" "+gr.getPDBName());
        }

        for (Group gr : c.getAtomGroups()) {
            if (!gr.isWater())
                System.out.println(gr.getResidueNumber()+" "+gr.getPDBName());
        }

    }

}

Вывод этого покажет, как группы seqres содержат LEU 601, на который вы ссылаетесь, в то время как группы атомов не содержат его.

В biojava 5 (еще не выпущен, но вы можете использовать сборки SNAPSHOT или напрямую получить ветку master из github: https://github.com/biojava/biojava), полимерные и неполимерные сущности рассматриваются в значительной степени лучший путь. По сути, каждая молекула лиганда относится к своей собственной цепи, так что легко отделить то, что является полимером (белок или нуклеиновая кислота) от того, что является лигандом.

Если вы продолжаете использовать 4, используйте последнюю версию 4.2.1 (или подождите несколько дней, пока не выйдет 4.2.2).

Другие вопросы по тегам