Use this if you are using igraph from R
Determine whether the given vertex degrees (in and outdegrees for directed graphs) can be realized in a graph.
is_graphical( out.deg, in.deg = NULL, allowed.edge.types = c("simple", "loops", "multi", "all") )
out.deg 
Integer vector, the degree sequence for undirected graphs, or the outdegree sequence for directed graphs. 
in.deg 

allowed.edge.types 
The allowed edge types in the graph. ‘simple’ means that neither loop nor multiple edges are allowed (i.e. the graph must be simple). ‘loops’ means that loop edges are allowed but mutiple edges are not. ‘multi’ means that multiple edges are allowed but loop edges are not. ‘all’ means that both loop edges and multiple edges are allowed. 
The classical concept of graphicality assumes simple graphs. This function can perform the check also when selfloops, multiedges, or both are allowed in the graph.
A logical scalar.
Tamas Nepusz ntamas@gmail.com
Hakimi SL: On the realizability of a set of integers as degrees of the vertices of a simple graph. J SIAM Appl Math 10:496506, 1962.
PL Erdos, I Miklos and Z Toroczkai: A simple HavelHakimi type algorithm to realize graphical degree sequences of directed graphs. The Electronic Journal of Combinatorics 17(1):R66, 2010.
Other graphical degree sequences:
is_degseq()
g < sample_gnp(100, 2/100) is_degseq(degree(g)) is_graphical(degree(g))