Skip to content

Commit 5218e59

Browse files
authored
Merge pull request #1055 from josemduarte/fixCifSrcNatParsing
Fixing issue with an edge case CIF parsing
2 parents 3747e5d + 5b99e7a commit 5218e59

File tree

1 file changed

+22
-16
lines changed

1 file changed

+22
-16
lines changed

biojava-structure/src/main/java/org/biojava/nbio/structure/io/cif/CifStructureConsumerImpl.java

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import java.util.NoSuchElementException;
1515
import java.util.Optional;
1616
import java.util.OptionalInt;
17-
import java.util.stream.Collectors;
1817
import java.util.stream.IntStream;
1918

2019
import javax.vecmath.Matrix4d;
@@ -1397,27 +1396,34 @@ private void addAncilliaryEntityData(int asymRowIndex, EntityInfo entityInfo) {
13971396
}
13981397

13991398
private void addInformationFromEntitySrcSyn(int rowIndex, EntityInfo entityInfo) {
1400-
entityInfo.setOrganismCommon(entitySrcSyn.getOrganismCommonName().get(rowIndex));
1401-
entityInfo.setOrganismScientific(entitySrcSyn.getOrganismScientific().get(rowIndex));
1402-
entityInfo.setOrganismTaxId(entitySrcSyn.getNcbiTaxonomyId().get(rowIndex));
1399+
entityInfo.setOrganismCommon(getCifFieldNullAware(entitySrcSyn.getOrganismCommonName(), rowIndex, null));
1400+
entityInfo.setOrganismScientific(getCifFieldNullAware(entitySrcSyn.getOrganismScientific(), rowIndex, null));
1401+
entityInfo.setOrganismTaxId(getCifFieldNullAware(entitySrcSyn.getNcbiTaxonomyId(), rowIndex, null));
14031402
}
14041403

14051404
private void addInformationFromEntitySrcNat(int rowIndex, EntityInfo entityInfo) {
1406-
entityInfo.setAtcc(entitySrcNat.getPdbxAtcc().get(rowIndex));
1407-
entityInfo.setCell(entitySrcNat.getPdbxCell().get(rowIndex));
1408-
entityInfo.setOrganismCommon(entitySrcNat.getCommonName().get(rowIndex));
1409-
entityInfo.setOrganismScientific(entitySrcNat.getPdbxOrganismScientific().get(rowIndex));
1410-
entityInfo.setOrganismTaxId(entitySrcNat.getPdbxNcbiTaxonomyId().get(rowIndex));
1405+
entityInfo.setAtcc(getCifFieldNullAware(entitySrcNat.getPdbxAtcc(), rowIndex, null));
1406+
entityInfo.setCell(getCifFieldNullAware(entitySrcNat.getPdbxCell(), rowIndex, null));
1407+
entityInfo.setOrganismCommon(getCifFieldNullAware(entitySrcNat.getCommonName(), rowIndex, null));
1408+
entityInfo.setOrganismScientific(getCifFieldNullAware(entitySrcNat.getPdbxOrganismScientific(), rowIndex, null));
1409+
entityInfo.setOrganismTaxId(getCifFieldNullAware(entitySrcNat.getPdbxNcbiTaxonomyId(), rowIndex, null));
14111410
}
14121411

14131412
private void addInformationFromEntitySrcGen(int rowIndex, EntityInfo entityInfo) {
1414-
entityInfo.setAtcc(entitySrcGen.getPdbxGeneSrcAtcc().get(rowIndex));
1415-
entityInfo.setCell(entitySrcGen.getPdbxGeneSrcCell().get(rowIndex));
1416-
entityInfo.setOrganismCommon(entitySrcGen.getGeneSrcCommonName().get(rowIndex));
1417-
entityInfo.setOrganismScientific(entitySrcGen.getPdbxGeneSrcScientificName().get(rowIndex));
1418-
entityInfo.setOrganismTaxId(entitySrcGen.getPdbxGeneSrcNcbiTaxonomyId().get(rowIndex));
1419-
entityInfo.setExpressionSystemTaxId(entitySrcGen.getPdbxHostOrgNcbiTaxonomyId().get(rowIndex));
1420-
entityInfo.setExpressionSystem(entitySrcGen.getPdbxHostOrgScientificName().get(rowIndex));
1413+
entityInfo.setAtcc(getCifFieldNullAware(entitySrcGen.getPdbxGeneSrcAtcc(), rowIndex, null));
1414+
entityInfo.setCell(getCifFieldNullAware(entitySrcGen.getPdbxGeneSrcCell(), rowIndex, null));
1415+
entityInfo.setOrganismCommon(getCifFieldNullAware(entitySrcGen.getGeneSrcCommonName(), rowIndex, null));
1416+
entityInfo.setOrganismScientific(getCifFieldNullAware(entitySrcGen.getPdbxGeneSrcScientificName(), rowIndex, null));
1417+
entityInfo.setOrganismTaxId(getCifFieldNullAware(entitySrcGen.getPdbxGeneSrcNcbiTaxonomyId(), rowIndex, null));
1418+
entityInfo.setExpressionSystemTaxId(getCifFieldNullAware(entitySrcGen.getPdbxHostOrgNcbiTaxonomyId(), rowIndex, null));
1419+
entityInfo.setExpressionSystem(getCifFieldNullAware(entitySrcGen.getPdbxHostOrgScientificName(), rowIndex, null));
1420+
}
1421+
1422+
private String getCifFieldNullAware(StrColumn column, int rowIndex, String defaultValue) {
1423+
if (column.isDefined())
1424+
return column.get(rowIndex);
1425+
else
1426+
return defaultValue;
14211427
}
14221428

14231429
private void setStructNcsOps() {

0 commit comments

Comments
 (0)