To better organize the tree with map sets, use commands like add/edit/delete map set tree nodes. A map set is assigned to its place in the map set tree by map set tree node. A node can contain a map set or can be just an empty node purely for providing the necessary hierarchy. If a node does not have an associated map set, its own name is displayed, otherwise, the map set name is shown as the name of the node.

The map set tree nodes can be created explicitly by the command 'add mapsettreenode <path>' or implicitly via specifying the location of the new map set when adding sequences.

Adding a new node using an instruction in the INI file

This is the most straightforward way of adding nodes in the map set tree. 

The section [MapSetTree] of the INI file used for loading new map sets contains an instruction RootNodeName. You can specify a single node 

RootNodeName="Zea mays" 

or provide a path with several levels:

RootNodeName="/Zea mays/NAM lines"

The RootNodeName specifies the location of the map set being loaded. So, if you are adding a map set called 'Genome1', the full path in the map set tree for the new map set would be '/Zea mays/NAM lines/Zm-B73. Please note that behind the scene there are three nodes in this path: ''/Zea mays', 'NAM lines' and a node that contains the map set 'Zm-B73'. You can see the structure of the path if you list the map set tree using the long format (-l):

PS> list mapsettree -l
Arabidopsis thaliana (NodeId:1)
  Physical:TAIR10 (NodeId:2, MapSetId:1)
Oryza sativa (NodeId:3)
  Physical:MSU_osa1r7 (NodeId:4, MapSetId:2)
Oryza sativa indica (NodeId:5)
  Physical:Indica ASM465v1 (NodeId:6, MapSetId:3)
Zea mays (NodeId:15)
  NAM lines (NodeId:16)
    Physical:Zm-B73 (NodeId:17, MapSetId:6)

See the three nodes with ID 15, 16, and 17. So, if you decide to relocate the genome Zm-B73 to some other place in the map set tree, you will need to edit the map set tree node with Id:17 and change its parentId.

edit mapsettreenode 17


Adding a new node using command 'add mapsettreenode'

A typical use case for this command is reorganizing the map set tree after the map sets have been loaded.

In case you want to have more levels in the map set tree with nodes nested under the root-level nodes, add the new node(s) with the command

add mapsettreenode <newPath> [-t]

For example, to partition the data under a root node, you could create a few nested nodes like this:

PS> add mapsettreenode "/Zea mays/NAM lines"
Do you want to add the node /Zea mays/NAM lines to the map set tree? (Y/N) Y

- MapSetTreeNode /Zea mays/NAM lines have been successfully created.

If the root-level node does not exist, the command will create two nodes: "Zea mays" and "NAM lines" as its child. To see the NodeId of the newly added empty node, list the map set tree using the long format (-l):

PS> list mapsettree -l
Arabidopsis thaliana (NodeId:1)
  Physical:TAIR10 (NodeId:2, MapSetId:1)
Oryza sativa (NodeId:3)
  Physical:MSU_osa1r7 (NodeId:4, MapSetId:2)
Oryza sativa indica (NodeId:5)
  Physical:Indica ASM465v1 (NodeId:6, MapSetId:3)
Zea mays (NodeId:15)
  NAM lines (NodeId:16)

Typically, this command is followed by the command to move a loaded map set to the new location. For example, if you have the map set 'Zm-B73' loaded at the NodeId:50, you would run the edit command

edit mapsettreenode 50

and change its ParentId to the node that we just created (NodeId:16):

PS> edit mapsettreenode 50
MapSetId? 6
ParentId? 16
OrderNo? 1
Do you want to edit the mapsettreenode? (Y/N) Y
MapSetTreeNode:50 has been successfully modified.


Note

We would like to discourage changing MapSetId assigned to a node, as it is reserved for advanced scenarios. Changing MapSetId would make the previous MapSetId an "orphan", and it will disappear from the listing of the map set tree. It will still be shown by the command 'list mapset'. Adding a map set to an empty node will hide the node's previous name and replace it with the name of the newly hosted map set.