@@ -975,7 +975,7 @@ public void consumeStructRefSeq(StructRefSeq structRefSeq) {
975975 dbRef .setIdCode (structRefSeq .getPdbxPDBIdCode ().isDefined ()? structRefSeq .getPdbxPDBIdCode ().get (rowIndex ):null );
976976 dbRef .setDbAccession (structRefSeq .getPdbxDbAccession ().isDefined ()? structRefSeq .getPdbxDbAccession ().get (rowIndex ):null );
977977 dbRef .setDbIdCode (structRefSeq .getPdbxDbAccession ().isDefined ()? structRefSeq .getPdbxDbAccession ().get (rowIndex ):null );
978- dbRef .setChainName (structRefSeq .getPdbxStrandId ().get (rowIndex ));
978+ dbRef .setChainName (structRefSeq .getPdbxStrandId ().isDefined ()? structRefSeq . getPdbxStrandId (). get (rowIndex ): null );
979979
980980 OptionalInt structRefRowIndex = IntStream .range (0 , structRef .getRowCount ())
981981 .filter (i -> structRef .getId ().get (i ).equals (refId ))
@@ -990,34 +990,39 @@ public void consumeStructRefSeq(StructRefSeq structRefSeq) {
990990
991991 int seqBegin ;
992992 int seqEnd ;
993+ char beginInsCode = ' ' ;
994+ char endInsCode = ' ' ;
993995
994- try {
995- seqBegin = Integer .parseInt (structRefSeq .getPdbxAuthSeqAlignBeg ().get (rowIndex ));
996- seqEnd = Integer .parseInt (structRefSeq .getPdbxAuthSeqAlignEnd ().get (rowIndex ));
997- } catch (NumberFormatException e ) {
998- // this happens in a few entries, annotation error? e.g. 6eoj
999- logger .warn ("Couldn't parse pdbx_auth_seq_align_beg/end in _struct_ref_seq. Will not store dbref " +
1000- "alignment info for accession {}. Error: {}" , dbRef .getDbAccession (), e .getMessage ());
1001- return ;
1002- }
996+ if (structRefSeq .getPdbxAuthSeqAlignBeg ().isDefined () && structRefSeq .getPdbxAuthSeqAlignEnd ().isDefined ()) {
997+ try {
998+ seqBegin = Integer .parseInt (structRefSeq .getPdbxAuthSeqAlignBeg ().get (rowIndex ));
999+ seqEnd = Integer .parseInt (structRefSeq .getPdbxAuthSeqAlignEnd ().get (rowIndex ));
1000+ } catch (NumberFormatException e ) {
1001+ // this happens in a few entries, annotation error? e.g. 6eoj
1002+ logger .warn ("Couldn't parse pdbx_auth_seq_align_beg/end in _struct_ref_seq. Will not store dbref " +
1003+ "alignment info for accession {}. Error: {}" , dbRef .getDbAccession (), e .getMessage ());
1004+ return ;
1005+ }
10031006
1004- char beginInsCode = ' ' ;
1005- String pdbxSeqAlignBegInsCode = structRefSeq .getPdbxSeqAlignBegInsCode ().get (rowIndex );
1006- if (pdbxSeqAlignBegInsCode .length () > 0 ) {
1007- beginInsCode = pdbxSeqAlignBegInsCode .charAt (0 );
1008- }
1007+ String pdbxSeqAlignBegInsCode = structRefSeq .getPdbxSeqAlignBegInsCode ().get (rowIndex );
1008+ if (pdbxSeqAlignBegInsCode .length () > 0 ) {
1009+ beginInsCode = pdbxSeqAlignBegInsCode .charAt (0 );
1010+ }
10091011
1010- char endInsCode = ' ' ;
1011- String pdbxSeqAlignEndInsCode = structRefSeq .getPdbxSeqAlignEndInsCode ().get (rowIndex );
1012- if (pdbxSeqAlignEndInsCode .length () > 0 ) {
1013- endInsCode = pdbxSeqAlignEndInsCode .charAt (0 );
1014- }
1012+ String pdbxSeqAlignEndInsCode = structRefSeq .getPdbxSeqAlignEndInsCode ().get (rowIndex );
1013+ if (pdbxSeqAlignEndInsCode .length () > 0 ) {
1014+ endInsCode = pdbxSeqAlignEndInsCode .charAt (0 );
1015+ }
10151016
1016- if (beginInsCode == '?' ) {
1017- beginInsCode = ' ' ;
1018- }
1019- if (endInsCode == '?' ) {
1020- endInsCode = ' ' ;
1017+ if (beginInsCode == '?' ) {
1018+ beginInsCode = ' ' ;
1019+ }
1020+ if (endInsCode == '?' ) {
1021+ endInsCode = ' ' ;
1022+ }
1023+ } else {
1024+ seqBegin = structRefSeq .getSeqAlignBeg ().get (rowIndex );
1025+ seqEnd = structRefSeq .getSeqAlignEnd ().get (rowIndex );
10211026 }
10221027
10231028 dbRef .setSeqBegin (seqBegin );
0 commit comments