code: private BitSet buildB(BitSet sourceBitSet, BitSet targetBitSet) throws CDKException {
          this.setSourceBitSet(sourceBitSet);
          this.setTargetBitSet(targetBitSet);
  
          BitSet bistSet = new BitSet();
  
          // only nodes that fulfill the initial constrains
          // are allowed in the initial extension set : targetBitSet
          for (Iterator<CDKRNode> i = getGraph().iterator(); i.hasNext();) {
              CDKRNode rNode = i.next();
  
              checkTimeOut();
  
              if ((sourceBitSet.get(rNode.getRMap().getId1()) || sourceBitSet.isEmpty())
                      && (targetBitSet.get(rNode.getRMap().getId2()) || targetBitSet.isEmpty())) {
                  bistSet.set(getGraph().indexOf(rNode));
              }
          }
          return bistSet;
      }
docs: Builds the initial extension set. This is the
  set of node that may be used as seed for the
  CDKRGraph parsing. This set depends on the constrains
  defined by the user.
  @param  sourceBitSet  constraint in the graph G1
  @param  targetBitSet  constraint in the graph G2
  @return