<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def genemania_force_directed(self,curveSteepness=None,defaultEdgeWeight=None,\ 		defaultSpringCoefficient=None,defaultSpringLength=None,EdgeAttribute=None,\ 		ignoreHiddenElements=None,isDeterministic=None,maxNodeMass=None,\ 		maxWeightCutoff=None,midpointEdges=None,minNodeMass=None,minWeightCutoff=None,\ 		network=None,NodeAttribute=None,nodeList=None,numIterations=None,\ 		singlePartition=None,Type=None,verbose=None):
 		""" 		Execute the GeneMANIA Force Directed Layout on a network. 		:param curveSteepness (string, optional):
 		:param defaultEdgeWeight (string, optional):
 The default edge weight to con 			sider, default is 0.5 		:param defaultSpringCoefficient (string, optional):
 		:param defaultSpringLength (string, optional):
 		:param EdgeAttribute (string, optional):
 The name of the edge column contai 			ning numeric values that will be used as weights in the layout algor 			ithm. Only columns containing numeric values are shown 		:param ignoreHiddenElements (string, optional):
 		:param isDeterministic (string, optional):
 		:param maxNodeMass (string, optional):
 		:param maxWeightCutoff (string, optional):
 The maximum edge weight to consi 			der, default to the Double.MAX value 		:param midpointEdges (string, optional):
 		:param minNodeMass (string, optional):
 		:param minWeightCutoff (string, optional):
 The minimum edge weight to consi 			der, numeric values, default is 0 		:param network (string, optional):
 Specifies a network by name, or by SUID 			if the prefix SUID: is used. The keyword CURRENT, or a blank value c 			an also be used to specify the current network. 		:param NodeAttribute (string, optional):
 The name of the node column contai 			ning numeric values that will be used as weights in the layout algor 			ithm. Only columns containing numeric values are shown 		:param nodeList (string, optional):
 Specifies a list of nodes. The keywords 				all, selected, or unselected can be used to specify nodes by their 			selection state. The pattern COLUMN:VALUE sets this parameter to any 				rows that contain the specified column value; if the COLUMN prefix 			is not used, the NAME column is matched by default. A list of COLUMN 			used to match multiple values. 		:param numIterations (string, optional):
 		:param singlePartition (string, optional):
 		:param Type (string, optional):
 How to interpret weight values; must be one 				of Heuristic, -Log(value), 1 - normalized value and normalized valu 			e. Defaults to Heuristic = ['Heuristic', '-Log(value)', '1 - normali 			zed value', 'normalized value'] 		"""

		network=check_network(self,network,verbose=verbose)
		PARAMS=set_param(['curveSteepness','defaultEdgeWeight',\
		'defaultSpringCoefficient','defaultSpringLength','EdgeAttribute',\
		'ignoreHiddenElements','isDeterministic','maxNodeMass','maxWeightCutoff',\
		'midpointEdges','minNodeMass','minWeightCutoff','network','NodeAttribute',\
		'nodeList','numIterations','singlePartition','Type'],[curveSteepness,\
		defaultEdgeWeight,defaultSpringCoefficient,defaultSpringLength,EdgeAttribute,\
		ignoreHiddenElements,isDeterministic,maxNodeMass,maxWeightCutoff,\
		midpointEdges,minNodeMass,minWeightCutoff,network,NodeAttribute,nodeList,\
		numIterations,singlePartition,Type])
		response=api(url=self.__url+"/genemania-force-directed", PARAMS=PARAMS, method="POST", verbose=verbose)
		return response