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).