code: function() {
      // check if we have at least one atom, if not return null
      if (this._currChain === null) {
        return null;
      }
      var chain = null;
      var i;
      for (i = 0; i < this._sheets.length; ++i) {
        var sheet = this._sheets[i];
        chain = this._structure.chain(sheet.chainName);
        if (chain) {
          chain.assignSS(sheet.first, sheet.last, 'E');
        }
      }
      for (i = 0; i < this._helices.length; ++i) {
        var helix = this._helices[i];
        chain = this._structure.chain(helix.chainName);
        if (chain) {
          chain.assignSS(helix.first, helix.last, 'H');
        }
      }
      this._structure.setAssemblies(this._remark350Reader.assemblies());
      if (this._options.conectRecords) {
        this._assignBondsFromConectRecords(this._structure);
      }
      this._structure.deriveConnectivity();
      console.log('imported', this._structure.chains().length, 'chain(s),',
                  this._structure.residueCount(), 'residue(s)');
      var result = this._structure;
      this._structure = new mol.Mol();
      this._currChain =  null;
      this._currRes = null;
      this._currAtom = null;
      this._rosettaMode = false;
      return result;
    }
docs: called after parsing to perform any work that requires the complete structure to be present: (a) assigns the secondary structure information found in the helix sheet records, (b) derives connectivity and (c) assigns assembly information.