use of de.bioforscher.jstructure.model.structure.Group in project jstructure by JonStargaryen.
the class ProteinParserTest method shouldParseInsertedAminoAcids.
@Test
public void shouldParseInsertedAminoAcids() {
Protein protein = ProteinParser.source("2w0l").parse();
List<Group> groups = protein.select().chainName("A").residueNumber(95).asFilteredGroups().collect(Collectors.toList());
Assert.assertEquals(2, groups.size());
groups.forEach(System.out::println);
}
use of de.bioforscher.jstructure.model.structure.Group in project jstructure by JonStargaryen.
the class ProteinLigandInteractionProfiler method parseWaterBridge.
private Optional<WaterBridge> parseWaterBridge(Structure structure, Element element) {
Optional<Atom> optionalDonor = selectAtom(structure, element.getElementsByTag("donor_idx").first().text());
Optional<Atom> optionalAcceptor = selectAtom(structure, element.getElementsByTag("acceptor_idx").first().text());
if (!(optionalDonor.isPresent() && optionalAcceptor.isPresent())) {
return Optional.empty();
}
Atom donor = optionalDonor.get();
Atom acceptor = optionalAcceptor.get();
Group donorGroup = donor.getParentGroup();
Group acceptorGroup = acceptor.getParentGroup();
return Optional.of(new WaterBridge(donor, acceptor, donorGroup, acceptorGroup));
}
use of de.bioforscher.jstructure.model.structure.Group in project jstructure by JonStargaryen.
the class ProteinLigandInteractionProfiler method parseHydrophobicInteraction.
private Optional<HydrophobicInteraction> parseHydrophobicInteraction(Structure structure, Element element) {
Optional<Atom> optionalAtom1 = selectAtom(structure, element.getElementsByTag("ligcarbonidx").first().text());
Optional<Atom> optionalAtom2 = selectAtom(structure, element.getElementsByTag("protcarbonidx").first().text());
if (!(optionalAtom1.isPresent() && optionalAtom2.isPresent())) {
return Optional.empty();
}
Atom atom1 = optionalAtom1.get();
Atom atom2 = optionalAtom2.get();
Group group1 = atom1.getParentGroup();
Group group2 = atom2.getParentGroup();
return Optional.of(new HydrophobicInteraction(atom1, atom2, group1, group2));
}
use of de.bioforscher.jstructure.model.structure.Group in project jstructure by JonStargaryen.
the class ProteinLigandInteractionProfiler method parseSaltBridge.
private Optional<SaltBridge> parseSaltBridge(Structure structure, Element element) {
// TODO: potentially half interaction
Optional<Element> optionalCoordinateElement = element.getElementsByTag("protcoo").stream().findFirst();
if (!optionalCoordinateElement.isPresent()) {
return Optional.empty();
}
Element coordinateElement = optionalCoordinateElement.get();
double[] coordinates = new double[] { Double.valueOf(coordinateElement.getElementsByTag("x").first().text()), Double.valueOf(coordinateElement.getElementsByTag("y").first().text()), Double.valueOf(coordinateElement.getElementsByTag("z").first().text()) };
String chainId = element.getElementsByTag("reschain").first().text();
int residueNumber = Integer.valueOf(element.getElementsByTag("resnr").first().text());
Optional<Group> optionalGroup1 = structure.select().chainId(chainId).residueNumber(residueNumber).asOptionalGroup();
if (!optionalGroup1.isPresent()) {
return Optional.empty();
}
Group group1 = optionalGroup1.get();
Optional<Atom> optionalAtom1 = group1.atoms().min(Comparator.comparingDouble(atom -> atom.calculate().distanceFast(coordinates)));
if (!optionalAtom1.isPresent()) {
return Optional.empty();
}
Atom atom1 = optionalAtom1.get();
List<Atom> saltAtoms = element.getElementsByTag("idx").stream().map(Element::text).map(pdbSerial -> selectAtom(structure, pdbSerial)).filter(Optional::isPresent).map(Optional::get).collect(Collectors.toList());
if (saltAtoms.isEmpty()) {
return Optional.empty();
}
Group saltGroup = saltAtoms.get(0).getParentGroup();
return Optional.of(new SaltBridge(atom1, saltAtoms, group1, saltGroup));
}
use of de.bioforscher.jstructure.model.structure.Group in project jstructure by JonStargaryen.
the class ProteinLigandInteractionProfiler method parseHalogenBond.
private Optional<HalogenBond> parseHalogenBond(Structure structure, Element element) {
Optional<Atom> optionalDonor = selectAtom(structure, element.getElementsByTag("don_idx").first().text());
Optional<Atom> optionalAcceptor = selectAtom(structure, element.getElementsByTag("acc_idx").first().text());
if (!(optionalDonor.isPresent() && optionalAcceptor.isPresent())) {
return Optional.empty();
}
Atom donor = optionalDonor.get();
Atom acceptor = optionalAcceptor.get();
Group donorGroup = donor.getParentGroup();
Group acceptorGroup = acceptor.getParentGroup();
return Optional.of(new HalogenBond(donor, acceptor, donorGroup, acceptorGroup));
}
Aggregations