Off[General::spell]
Off[General::spell1]

Clear["Global`*"];

Replace  path with your specific  path:
(Or, if you are in a hurry, just open up the file loadCTEQ5.m  and execute the initialization.)

<<"loadCTEQ5.m"

pdf[x__]=cteq5pdf[x]

Define LogLogPlot

Needs["Graphics`Graphics`"]

Defined functions

?cteq5pdf

??name

parton[-3]

{pdf[1,0,.1,10.],pdf[51,0,.1,10.]}

Examine pdf vs. x

iset=1;
iparton=1;
q0=2;

Plot[x pdf[iset,iparton,x,q0] //Evaluate
 ,{x,0.01,1}
 ,PlotLabel->parton[iparton]
 ];

( Table[{i,pdf[i,1,0.1,3]} ,{i,1,3}] 
    //N[#,15]& 
    //TableForm
  )

Examine pdf vs. Q

x0=0.1;

Plot[x0 pdf[iset,iparton,x0,q] //Evaluate
 ,{q,2,1000}
 ,PlotLabel->parton[iparton]
 ];

Examine Evolution in Q

LogLogPlot[ 
  { x pdf[iset,iparton,x,2]
   ,x pdf[iset,iparton,x,10^2]
   ,x pdf[iset,iparton,x,10^4]
   } //Evaluate
 ,{x,0.01,0.3}
 ,PlotLabel->parton[iparton]
];

Compute Momentum Fraction

mom= Table[
  NIntegrate[ x pdf[iset,ipart,x,q0]  
  ,{x,0,1}]
  ,{ipart,-6,6}]

{Table[parton[i], {i, -6, 6}], 100* mom}  // Transpose  // 
      TableForm

Check Total Momentum Fraction

Plus @@ mom

Compute 2S/(U-bar + D-bar)

2 mom[[4]]/(mom[[5]]+mom[[6]])

Loop over Flavors:

iset=1;
iparton=1;
q0=2;

Do[ 
Plot[x pdf[iset,ipart,x,q0] //Evaluate
 ,{x,0.01,1}
 ,PlotLabel->parton[ipart]
 ];
 ,{ipart,-2,6}];

Table[{parton[i],pdf[1,i,0.1,5.]} ,{i,-6,6,1}]  //TableForm

Check Momentum Sum Rule:
WARNING: This takes a long time!!!!!!!!!

q0list = {1.6, 3, 10, 30, 100, 300, 
          1000};
isetList = {1, 3};
Do[q0 = q0list[[iq]]; 
iset = 
        isetList[[is]]; 
temp = 
        NIntegrate[
          Sum[x pdf[iset, ipart, x, q0], {ipart, -6, 6}], {x, 0, 
            1}]; 
check[iq, is] = {iset, q0, 
          temp}; 
Print[check[iq, is]];, {iq, 1, 
        Length[q0list]}, {is, 1, Length[isetList]}]