Title: ETH_Sem6 / DC / W03_DataCuration

Q: Where to find well-curated chemical data
A: Source | Type | Availability | Size | Comment
PubChem | Molecules | Open | 112 M | Also bioassay data
SciFinder/CAS | Molecules/reactions | Commercial | 150 M |
Protein Data Bank | Biomolecules | Open | 200 K | Structures
Reaxys | Molecules/reactions | Commercial | 57 M |
SpringerMaterials | Materials | Commercial | 290 K |
Materials Project | Materials | Open | 154 K + 173 K | Simulated
ChEMBL | Bioactive molecules | Open | 2.4 M |
ZINC20 | Molecules | Open | 230 M | Simulated structures
CSD | Molecules | Commercial | 1.25 M | Crystal structures
COD | Molecules | Open | 511 K | Crystal structures
USPTO reactions | Reactions | Open | 1.7 M | Curated forms sold

Q: Types of databases and most common in chemistry
A: In chemistry mostly relational databases are used.
Relational database: Structured across multiple tables which can be joined together via a primary/foreign key. For example, imagine a company maintains a database table with customer information, which contains company data at the account level. There may also be a different table, which describes all the individual transactions that align to that account. Together, these tables can provide information about the different industries that purchase a specific software product.

Q: ReactionDataExtractor?
A: Deep learning model for reaction extraction from images
1. Identify arrows
2. Identify arrow labels
3. Identify chemical diagrams
4. Identify compound labels

Q: How do you drop empty values in a pandas dataframe?
A: df = df.dropna(subset=<column_names>)
or (modify the df)
df.dropna(subset=<column_names>, inplace=True)

Q: How would you check if a molecule contains no metal?
A: # A function that returns whether the molecule contains no metal
def no_metal(mol):
    # Define the SMARTS pattern for metals
    metal_smarts = "[!#1;!B;!C;!O;!N;!S;!P;!F;!Cl;!Br;!I;!c;!o;!n;!s;!p]"
    metal_query = Chem.MolFromSmarts(metal_smarts)
    # Return True if no metal is found, False otherwise
    return not mol.HasSubstructMatch(metal_query)

Difference Keculized and Non-Kekulized SMILES

Q: Alternatives to canonical SMILES for checking molecular equality
A: MolHash or InChIKey

Q: FAIR data
A: - Findable Easy to find for both humans and computer
- Accessible Getting access to the data to use it
- Interoperable Easy to use with analysis tools & combine with other data
- Reusable Metadata of what data is, how it was created. Reuse license

Q: Zenodo
A: Free data storage (<50 GB) guaranteed for CERN lifetime