高通量筛选结构

from pymatgen.ext.matproj import MPRester
a = MPRester('1agzMpqyTNkIiTUX')
structure = a.get_structure_by_material_id("mp-1234")
print(structure)
a.get_database_version()
#data = a.query(criteria={"pretty_formula": "Li2O"}, properties=["spacegroup.symbol"])
#data = a.query(criteria={"pretty_formula": "Li2O"}, properties=["icsd_ids"])
data = a.query(criteria={"pretty_formula": "Li2O"}, properties=["material_id"])
data = a.query(criteria={"pretty_formula": "Li2O"}, properties=["band_gap","structure"])
data = a.query('Li-O',properties=["band_gap","material_id""cif"])) #获取Li-O体系所有化合物和id
data = a.query('Li-O-*-*',properties=["formula","material_id","band_gap"])#获取所有四元Li-O化合物
data = a.query({"elements":{"$in":["Na"], "$all": ["O"]}, "nelements":4, "band_gap": {"$gt": 2}, "e_above_hull": {"$lt": 0.1}},properties=["formula","material_id",])#带隙>2的所有Na-O四元素化合物
print(len(data))
#data = {
     'criteria': {
          'elements': {'$in': ['Li'], '$all': ['O']},
          'nelements': 4,
      },
      'properties': [
        'formula',
        'material_id',
      ]
   }
#r = requests.post('https://materialsproject.org/rest/v2/query',
#   headers={'X-API-KEY': '1agzMpqyTNkIiTUX'},
#   data={k: json.dumps(v) for k,v in data.items()})
#response_content = r.json()
#print(response_content['num_results'])
#stable_mpids = [doc.material_id for doc in docs]
print(m.get_data("Li2O", prop="structure"))
for abc in data:
    print(abc.values())
#    print(abc['formula'])
valulist=[abc.values() for abc in data]
valulist = [abc['material_id'] for abc in data]
valulist = [abc['formula'].keys() for abc in data]#列表每个元素是一个字典,包含两个键,第一个键的值又是一个字典,包含四个键
 #把第一个键的值的键作为列表
peibi = [list(abc['formula'].keys()) for abc in data] #把第一个键的值的键作为列表
id  = [abc['material_id'] for abc in data] 
pidic = dict(zip(id,peibi))
#new1pidic={ka : va for ka, va in pidic.items() if 'H' not in va}
#new1pidic2={ka : va for ka, va in pidic.items() if 'H' in va}
nothopeelement=['V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'H', 'S','F','Cl','Br','I','N', 'Li', 'K', 'Ac', 'Th', 'U','Pa', 'Np', 'Pu', 
'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm', 'Md', 'No', 'Lr', 'Fr', 'Po', 'At', 'Rn', 'Tc','Ra','As','Hg','Be','Tl']
newpidic={ka : va for ka, va in pidic.items() if not any (ha in va for ha in nothopeelement)}
#newpidic2={ka : va for ka, va in pidic.items() if any (ha in va for ha in nothopeelement)}
print(newpidic.values())
id2=list(newpidic.keys())

for ha in id2:
    print(ha)
    structure = a.get_structure_by_material_id(ha)
    speciesna=[Element('Na')]
    stripped = structure.copy()
    stripped.remove_species(speciesna)
    stripped = stripped.get_sorted_structure(reverse=True)
    Vasp_Str = Poscar(stripped)
    Vasp_Str.write_file('%s.vasp'%ha)
     


#去除结构中的某一元素
structure = a.get_structure_by_material_id("mp-6150")
speciesna=[Element('Na')]
stripped = struct.copy()
stripped.remove_species(speciesna)
stripped = stripped.get_sorted_structure(reverse=True)

转载请注明来源 有问题可通过github提交issue