public static GraphicalModel.Factor ReadFromProto(GraphicalModelProto.Factor proto)
 {
     GraphicalModel.Factor factor = new GraphicalModel.Factor();
     factor.featuresTable  = ConcatVectorTable.ReadFromProto(proto.GetFeaturesTable());
     factor.metaData       = GraphicalModel.ReadMetaDataFromProto(proto.GetMetaData());
     factor.neigborIndices = new int[proto.GetNeighborCount()];
     for (int i = 0; i < factor.neigborIndices.Length; i++)
     {
         factor.neigborIndices[i] = proto.GetNeighbor(i);
     }
     return(factor);
 }