Skip to main content

organic-chemistry

Organic chemistry fundamentals including functional groups, reaction mechanisms, stereochemistry, synthesis planning, and molecular structure for chemistry applications.

インストールへ移動

ソース情報

リポジトリ
NeuralBlitz/Agent-Gateway
ソースの最終更新活動
2026年4月9日 10:58
検出された SKILL.md の言語
英語
スター
1
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
Organic Chemistry
description
Organic chemistry fundamentals including functional groups, reaction mechanisms, stereochemistry, synthesis planning, and molecular structure for chemistry applications.
license
MIT
compatibility
python>=3.8
audience
chemists, biochemists, pharmaceutical-scientists, researchers
category
chemistry
# Organic Chemistry ## What I Do I provide comprehensive organic chemistry tools including functional group analysis, reaction mechanism prediction, stereochemistry, molecular orbital theory, synthesis planning, and spectroscopic interpretation for chemistry applications. ## When to Use Me - Reaction mechanism analysis - Synthesis pathway design - Stereochemical analysis - Molecular property prediction - Spectroscopy interpretation - Drug design and QSAR ## Core Concepts - **Functional Groups**: Alcohols, carbonyls, amines, aromatics - **Reaction Mechanisms**: SN1, SN2, E1, E2, addition, elimination - **Stereochemistry**: Enantiomers, diastereomers, R/S notation - **Molecular Orbital Theory**: HOMO/LUMO, aromaticity - **Resonance Structures**: Delocalization, electron pushing - **Acid-Base Chemistry**: pKa, Lewis/Brønsted theory - **Synthesis Planning**: Retrosynthetic analysis - **Spectroscopy**: IR, NMR, MS interpretation ## Code Examples ### Functional Group Detection ```python import re FUNCTIONAL_GROUPS = { 'alcohol': r'C\([A-Z][a-z]?\)?\([A-Z][a-z]?\)?O[H]', 'carbonyl': r'C(=O)', 'amine': r'N[H2]|[NHR]|[NR2]', 'ether': r'C-O-C', 'alkene': r'C=C', 'alkyne': r'C≡C', 'aromatic': r'c1ccccc1|c1ccccc1', 'carboxylic_acid': r'C(=O)O[H]', 'ester': r'C(=O)O[C]', 'amide': r'C(=O)N' } def detect_functional_groups(smiles): detected = {} for group, pattern in FUNCTIONAL_GROUPS.items(): if re.search(pattern, smiles): detected[group] = True return detected smiles = "CC(=O)O" print(f"Functional groups in {smiles}: {detect_functional_groups(smiles)}") ``` ### pKa Prediction ```python import numpy as np PKA_DATA = { 'carboxylic_acid': 4.76, 'alcohol': 15.9, 'phenol': 10.0, 'amine': 9.25, 'amide': 15.0, 'water': 14.0 } def estimate_pKa(functional_group, substituents=None): base_pKa = PKA_DATA.get(functional_group, 14.0) if substituents and 'electron_withdrawing' in substituents: base_pKa -= substituents['electron_withdrawing'] * 0.5 if substituents and 'electron_donating' in substituents: base_pKa += substituents['electron_donating'] * 0.5 return base_pKa print(f"Acetic acid pKa: {estimate_pKa('carboxylic_acid')}") print(f"Chloroacetic acid pKa: {estimate_pKa('carboxylic_acid', {'electron_withdrawing': 2})}") ``` ### Stereochemistry Analysis ```python from itertools import permutations def count_stereoisomers(n_chiral_centers, meso_possible=False): total = 2**n_chiral_centers if meso_possible and n_chiral_centers > 1: meso_count = n_chiral_centers // 2 return total - meso_count return total def r_s_configuration(priorities, hydrogen_position): clockwise = [1, 2, 3] counter_clockwise = [1, 3, 2] if hydrogen_position in ['back', 'dashed']: return 'R' if priorities == clockwise else 'S' return 'S' if priorities == clockwise else 'R' n_centers = 3 print(f"Max stereoisomers for {n_centers} chiral centers: {count_stereoisomers(n_centers)}") ``` ### Reaction Mechanism Classification ```python REACTION_TYPES = { 'SN1': {'mechanism': 'unimolecular_nucleophilic_substitution', 'rate_limiting': 'carbocation_formation', 'stereochemistry': 'racemization'}, 'SN2': {'mechanism': 'bimolecular_nucleophilic_substitution', 'rate_limiting': 'single_step', 'stereochemistry': 'inversion'}, 'E1': {'mechanism': 'unimolecular_elimination', 'rate_limiting': 'carbocation_formation', 'stereochemistry': 'Zaitsev'}, 'E2': {'mechanism': 'bimolecular_elimination', 'rate_limiting': 'single_step', 'stereochemistry': 'anti_periplanar'} } def classify_reaction(substrate, nucleophile, solvent, temperature): if 'tertiary' in substrate and 'weak' in nucleophile: return 'E1' elif 'primary' in substrate and 'strong' in nucleophile: return 'SN2' return 'unknown' print(f"Reaction type: {classify_reaction('tertiary', 'weak', 'polar_protic', 298)}") ``` ### SMILES to Molecular Formula ```python from collections import Counter ELEMENT_WEIGHTS = { 'H': 1.008, 'C': 12.011, 'N': 14.007, 'O': 15.999, 'F': 18.998, 'Cl': 35.45, 'Br': 79.904, 'S': 32.06 } def parse_smiles_to_formula(smiles): elements = re.findall(r'[A-Z][a-z]?', smiles) counts = Counter(elements) formula = '' for element in ['C', 'H', 'N', 'O', 'F', 'Cl', 'Br', 'S', 'P']: if element in counts: count = counts[element] formula += element if count > 1: formula += str(count) del counts[element] for element in sorted(counts.keys()): formula += element if counts[element] > 1: formula += str(counts[element]) return formula def calculate_molecular_weight(formula): weight = 0 pattern = r'([A-Z][a-z]?)(\d*)' matches = re.findall(pattern, formula) for element, count in matches: count = int(count) if count else 1 weight += ELEMENT_WEIGHTS.get(element, 0) * count return weight print(f"C6H12O6 formula: {parse_smiles_to_formula('C(C1C(C(C(C(O1)O)O)O)O)O')}") ``` ## Best Practices 1. **Resonance**: Consider all resonance structures 2. **Steric Effects**: Account for 3D geometry 3. **Electronic Effects**: Inductive and resonance effects 4. **Solvent Effects**: Polar protic vs aprotic solvents 5. **Thermodynamics vs Kinetics**: Rate vs equilibrium ## Common Patterns ```python # IUPAC naming helper def iupac_stem(alkane_length): stems = {1:'meth', 2:'eth', 3:'prop', 4:'but', 5:'pent', 6:'hex', 7:'hept', 8:'oct', 9:'non', 10:'dec'} return stems.get(alkane_length, f'{alkane_length}') # Degree of unsaturation def degree_of_unsaturation(c, h, halogens=0, nitrogens=0): return (2*c + 2 - h - halogens + nitrogens) / 2 ``` ## Core Competencies 1. Functional group recognition 2. Reaction mechanism prediction 3. Stereochemical analysis 4. Molecular orbital concepts 5. Retrosynthetic planning
GitHubで見る