Repository: snap-stanford/ogb
Issue: Issues with DGL version of `ogbg-molpcba`
Root cause: Documentation Deficiency

Hi @weihua916 and team, thanks for the cool work! I was playing around with graph classification on the molecular datasets, and encountered an error with `ogbg-molpcba` where the label provided with each graph is not a single value but a tensor instead (and has multiple nan values). Here is simple code to reproduce and demonstrate the differences between the DGL and PyG variants of the dataset:

(P.S. for comparison, I provide code to show that DGL and PyG variants of `ogbg-molhiv` are working as intended.)
```python
import ogb
from ogb.graphproppred import PygGraphPropPredDataset, DglGraphPropPredDataset

# molhiv
dgl_dataset = DglGraphPropPredDataset(name = 'ogbg-molhiv')
pyg_dataset = PygGraphPropPredDataset(name = 'ogbg-molhiv')
print(dgl_dataset[0])
print(pyg_dataset[0])

# molpcba
dgl_dataset = DglGraphPropPredDataset(name = 'ogbg-molpcba')
pyg_dataset = PygGraphPropPredDataset(name = 'ogbg-molpcba')
print(dgl_dataset[0])
print(pyg_dataset[0])
```
For `molhiv`, the outputs are: 
```
(DGLGraph(num_nodes=19, num_edges=40,
          ndata_schemes={'feat': Scheme(shape=(9,), dtype=torch.int64)}
          edata_schemes={'feat': Scheme(shape=(3,), dtype=torch.int64)}),
 tensor([0]))

Data(edge_attr=[40, 3], edge_index=[2, 40], x=[19, 9], y=[1, 1])
```
For `molpcba`, the outputs are: 
```
(DGLGraph(num_nodes=20, num_edges=44,
          ndata_schemes={'feat': Scheme(shape=(9,), dtype=torch.int64)}
          edata_schemes={'feat': Scheme(shape=(3,), dtype=torch.int64)}),
 tensor([0., 0., nan, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., nan, 0.,
         0., 0., nan, 0., 0., 0., 0., 0., 0., 0., 0., 0., nan, 0., 0., 0., 0., 0.,
         0., 0., 0., 0., 0., nan, 0., 0., 0., nan, 0., nan, 0., 0., nan, 0., 0., 0.,
         0., 0., 0., 0., nan, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
         0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., nan, 0., 0., 0., nan, 0., 0.,
         0., 0., 1., nan, 0., 0., nan, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
         nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
         nan, nan], dtype=torch.float64))

Data(edge_attr=[40, 3], edge_index=[2, 40], x=[19, 9], y=[1, 1])
```

Note that I am using the latest version of obg (1.1.1).

Hi!
This is to be expected because `ogbg-molpcba` has 128 tasks, and `nan` simply indicates "unlabeled" (Not all molecules are assigned all 128 labels). Please see [here](https://github.com/snap-stanford/ogb/blob/master/examples/graphproppred/mol/main_pyg.py#L30) for how I handle `nan` values.

P.S.
For `ogbg-molpcba`, I expect to see `Data(edge_attr=[44, 3], edge_index=[2, 44], x=[20, 9], y=[1, 128])` for PyG. You can double-check to see if this is the case.

The website is updated [here](https://ogb.stanford.edu/docs/graphprop/#ogbg-mol) to explain `nan` in prediction target. Hope this clarifies your concern.

I understand the issue with `nan` values; thanks for clarifying. I double checked my code and I indeed see `Data(edge_attr=[44, 3], edge_index=[2, 44], x=[20, 9], y=[1, 128])` for PyG's `ogbg-molpcba`, too. Thanks!