Grammatiline sugu

Grammatiline sugu ehk sugu on keeleteaduses grammatiline kategooria, mille järgi jaotuvad nimisõnad klassidesse võttes aluseks, milline kuju on nimisõnaga ühilduval sõnal, nagu asesõnal, omadussõnal ja tegusõnal.
Sõna grammatiline sugu ei pruugi kattuda sõna referendi sooga. Selline sõna on näiteks saksa "Mädchen" (eesti keeles "tüdruk"), kus deminutiivne tuletusliide "-chen" määrab, et grammatiliselt on sõna kesksoost, kuigi sõna referent on naissoost.
Soolise kontrasti tüübid.
Mees- ja naissugu.
Keeltes, kus esineb mees-naine kontrast, leidub vaid kaks sugu: meessugu, kuhu kuuluvad meessoost elusolendid (peamiselt inimesed), ja naissugu, kuhu kuuluvad naissoost elusolendid. Muud nimisõnad, mille referendil ei ole sugu, on paigutunud ühe või teise soo alla, kuigi sünkroonses käsitluses võib paigutumine näida suvalisena.
Sellised keeled on näiteks hispaania keel ja paljud muud romaani keeled, balti keeled, keldi keeled, india keeled ja afroaasia keeled. 
Mees-, nais- ja kesksugu.
Keeltes, kus esineb mees-nais-kesksoo kontrast, leidub kolm sugu: meessugu, naissugu ja kesksugu. Kui nimisõna referendi sugu on võimalik eristada, kuulub nimisõna enamasti vastava soo alla. Nimisõnad, mille referendil ei ole sugu, võivad kuuluda kõigi kolme soo alla.
Sellised keeled on näiteks vene keel ja enamik muudest slaavi keeltest, sanskriti keel, mõned germaani keeled, mõned romaani keeled, ladina keel ja kreeka keel.
Üldsugu ja kesksugu.
Keeltes, kus esineb üld- ja kesksoo vastandus, on varem esinenud mees-, nais- ja kesksoo vastandus, kuid aja möödudes on mees- ja naissugu ühinenud üheks sooks, üldsooks. Sõnad, mille referent on inimene, kuuluvad ainult üldsoo alla. Muu referendiga sõnad võivad aga kuuluda nii üldsoo kui ka kesksoo alla.
Sellised keeled on näiteks rootsi ja taani keel, osaliselt ka norra ja hollandi keel.
Elus ja elutu.
Keeltes, kus esineb elusa-elutu vastandus, leidub kaks sugu: elus, kuhu kuuluvad elusolendid, ja elutu, kuhu kuuluvad elutute referentidega nimisõnad.
Sellised keeled on näiteks algonkini keeled.
Sookategooria puudumine.
Sookategooriat ei esine paljudes keeltes. Selliste keelte hulka kuuluvad näiteks kõik soome-ugri keeled.
Muu.
Leidub keeli, kus on kasutusel nii mees-nais-kesksoo vastandus kui ka elusa-elutu vastandus. Selliste keelte hulka kuuluvad näiteks mitmed slaavi keeled, kus see esineb peamiselt meessoost sõnade puhul.
Inimese ja mitte-inimese vastandus leidub näiteks poola keeles ja draviidi keeltes.
Soo ilmingud.
Käänamine.
Sõna sugu võib mõjutada sõna käändelisi esinemisvorme.
Näiteks ladina keel, kus erinevalt mees- ja naissoost sõnadest, lõppevad kesksoost sõnade ainsuse mitmuse vormid "a"-ga ja nende nominatiivse ja akusatiivse käände vormid on identsed.
Ühildumine.
Nimisõna soost sõltub sellega ühilduvate sõnade kuju. Ühilduvate sõnade hulka võivad kuuluda näiteks artiklid, omadussõnad ja verbid.
Hispaania keeles on kaks sugu: mees- ja naissugu. Määravat artiklit "el" kasutatakse meessoost sõnade puhul ja "la" naissoost sõnade puhul.
Nimisõna sugu võib ühilduva sõna vormi mõjutada ka ainult mõnedes vormides. Näiteks vene keeles, kus esineb mees-nais-kesksoo vastandus, määrab alusest nimisõna sugu öeldisest verbi vormi, aga ainult siis, kui verb on minevikus.
Asesõnad.
Keeltes, kus esineb sookategooria, eristatakse sugu ka asesõnade puhul.
Leidub keeli, milles sookategooria esineb ainult isikuliste asesõnade puhul, võttes aluseks referendi soo. Selline keel on näiteks inglise keel, kus 3. isiku ainsuses kasutatakse "he" meessoost isikute kohta, "she" naissoost isikute kohta ja "it" elutute referentide kohta.
Sookategooriata keelte puhul on ka võimalik, et isikuliste asesõnade puhul eristatakse ainult elus-elutu vastandust. Selliste keelte hulka kuulub ka eesti keel, kus 3. isiku puhul on ainsuses "ta" isikute kohta ja "see" kasutusel elutute referentide puhul ning mitmuses vastavalt "nemad" ja "need".
Kuigi osades sookategooriata keeltes kasutatakse asesõnade puhul referendi soost sõltuvaid isikulisi asesõnu, leidub ka sookategooriata keeli, kus sellist eristamist ei esine.