def get_start_atom(tors, rank):
    """
    |
    :Description: Get the number of atoms inside the core
    and the start atom of the core,
    which is the first atom of the cluster with no torsions.

    :Input:
      - tors: all atom with torsions
      - rank: Rank: list of numbers for each 
      grup of atoms or cluster in assign which will show which atoms are closer to the group.

    :Output:
      - start_atom: First atom of the cluster 
      (group of atoms bonded together) that doesn not have torsions.
      
      - num_core: number of atoms inside the cluster.

    e.g. --> tors: [[1, 3], [8, 9]]
    
    rank: [0, 0, 0, 2, 3]
    
    The core has 3 atoms and the strating atom
    is the number 2 because it does not have torsions.
    """
    num_core = 0
    start_atom = -100
    for i in range(len(rank)):
        if (rank[i] == 0):
            num_core = num_core + 1
    for i in range(len(rank)):
        if (rank[i] == 0):
            in_tors = 0
            for t in tors:
                if (t[0] == i or t[1] == i):
                    in_tors = 1
            if (in_tors == 0):
                start_atom = i
                break
    return start_atom, num_core